Please enable JavaScript.
Coggle requires JavaScript to display documents.
Настройки PostgreSQL 10 - Coggle Diagram
Настройки PostgreSQL 10
postgresql.auto.conf - всегда читается последним, а в Postgres применяется последняя настройка
Изменение настроек PostgreSQL через postgresql.auto.conf
Установить параметр - ALTER SYSTEM SET work_mem TO '16mB';
Удалить параметр - ALTER SYSTEM RESET work_mem;
-
postgresql.conf
-
Увидеть все не закомментированные (которые применятся пре перечитывании конфигурации) строки в файле postgresql.conf
SELECT sourceline, name, setting, applied FROM pg_file_settings WHERE sourcefile LIKE '%postgresql.conf';
-
-
Работа с объектами кластера: настройками, БД, табличными пространствами
Просмотр примененных настроек
SELECT name, setting, unit, boot_val, sourcefile, sourceline, pending_restart, context FROM pg_settings;
Значения полей
name - имя параметра
setting - текущее значение
unit - единица измерения
boot_val - значение по умолчанию
reset_val - значение на который будет сброшен параметр в пределах сеанса
source - источник (default, file)
sourcefile - файл источник параметра
sourceline - строчка параметра в файле
context - кто или что может изменить параметр, ну или не может
Значения поля context
internal - изменять нельзя, задано при установке
postmaster - требуется перезапуск сервера
sighup - требуется перечитать файлы конфигурации
superuser - суперпользователь может изменить для своего сеанса
user - любой пользователь может изменить для своего сеанса
-
Свойства БД
Вывести список БД с дополнительными свойcтвами
SELECT datname, datistemplate, datallowconn, datconnlimit FROM pg_database;
datname - имя БД
datistemplate - БД является шаблоном
datallowconn - разрешено подключение
datconnlimit - ограничение количества соединений, -1 бесконечно
-
-
Размеры всех БД в кластере
SELECT datname AS db_name, pg_size_pretty(pg_database_size(datname)) AS db_size FROM pg_database ORDER BY datname;
Вывести имена и OID каталогов БД
SELECT datname, oid FROM pg_database ORDER BY datname;
Разрешить/запретить подключения к БД
UPDATE pg_database SET datallowconn = 'false' WHERE datname = 'test02_b83_1cf_sthrm_r3_ab04'";
Табличные пространства
pg_global - табличное пространство для глобальных объектов (pg_catalog у БД, объекты кластера и т.п.), всегда размещается в каталоге $PGDATA/global
pg_default - используется по умолчанию для баз данных template1 и template0 (в свою очередь, также является пространством по умолчанию для других баз данных, пока не будет явно указано иное в выражении TABLESPACE команды CREATE DATABASE)., размещается в $PGDATA/base
Изменить расположение pg_global и pg_default нельзя
$PGDATA/pg_tblspc - хранит ссылки на пользовательские табличные пространства
Объекты системного каталога относящиеся к конкретной БД находятся в табличном пространстве по умолчанию этой БД
-
Создание табличного пространства
Создаем каталог для табличного пространства
sudo mkdir path/ts_dir
Назначаем права
sudo chown postgres path/ts_dir
Создаем табличное пространство
CREATE TABLESPACE ts_name LOCATION 'path/ts_dir';
Создать БД в определенном табличном пространстве
CREATE DATABASE db_name TABLESPACE ts_name;
После создания БД это табличное пространство будет являться пространством по умолчанию для этой БД
Cоздать таблицу в табличном пространстве по умолчанию
CREATE TABLE t1 (id serial, name text);
Создать таблицу в определенном табличном пространстве
CREATE TABLE t2 (n numeric) TABLESPACE ts_name;
-
Переместить все таблицы из одного табличного пространства в другое
ALTER TABLE ALL IN TABLESPACE pg_default SET TABLESPACE ts;
Отобразить список таблиц с указанием табличных пространств, табличное пространство по умолчанию не отображается
SELECT tablename, tablespace FROM pg_tables WHERE schemename = 'public'
-
Удалить табличное пространство
DROP TABLESPACE ts_name;
Если табличное пространство не пустое, система заблокирует действие
Запросить список БД использующих конкретное табличное пространство
SELECT OID as tsoid FROM pg_tablespace WHERE spcname = 'ts_name' \gset
SELECT datname FROM pg_database WHERE OID IN (SELECT pg_tablespace_databases(:tsoid));
Отобразить списке таблиц расположенных а табличном пространстве
SELECT relnamespace::regnamespace, relname, relkind FROM pg_class WHERE reltablespace = :tsoid;*
Сменить табличное пространство по умолчанию для БД
ALTER DATABASE db_name SET TABLESPACE pg_default;
Объекты системного каталога БД хранятся в табличном пространстве по умолчанию
-
Команды PSQL
-
\gx - расширенный режим вывода для одного запроса, ставиться вместо ; в конце строки
-
-
-
-
-
\dv information_schema.* - список предствлений опредленной схемы (information_schema - это второе название pg_catalog)
-