Postgresql trips
Перейти к навигации
Перейти к поиску
Сделать дамп базы и сжать с помощью pzstd
pg_dump -h $HOST -p $PORT -Upostgres --clean --if-exists $DATABASE | pzstd -5 > $BACKUP_DIR/$DATABASE.sql.zst
Сделать дамп глобальных данных. Будут сохранены глобальные объекты roles и tablespaces, без баз данных.
pg_dumpall -h $HOST -p $PORT -Upostgres --globals-only | pzstd -5 > $BACKUP_DIR/globals.sql.zst
Восстановить базу из сжатого дампа
pzstd -dc $BACKUP_DIR/$DATABASE.sql.zst | psql -U postgres -h $HOST
Применить изменения в конфигах без перезапуска postgresql (если явно не прописано требование рестарта)
SELECT pg_reload_conf();
Посмотреть права на таблицу
SELECT grantee, privilege_type FROM information_schema.role_table_grants WHERE table_name='table_name';
Проверить версию Postgresql
SELECT version();
Посмотреть все настройки Postgresql
select setting from pg_settings;
Посмотреть актуальные правила доступа pg_hba
table pg_hba_file_rules;
Посмотреть определённую настройку Postgresql
select setting from pg_settings where name ='log_directory';
Удаляем подключения со статусом idle старше 1 часа
for i in $(psql -U postgres -h localhost -p 5432 -c "select pid from pg_stat_activity where state='idle' and state_change<(now() - '1 hour'::interval);" | awk '{print $1}' | grep "^[0-9]" );\ do \ psql -U postgres -h localhost -p 5432 -c "SELECT pg_terminate_backend($i);";\ done
Получить размер всех таблиц в текущей базе
SELECT relname as "Table", pg_size_pretty(pg_total_relation_size(relid)) As "Size", pg_size_pretty(pg_total_relation_size(relid) - pg_relation_size(relid)) as "External Size" FROM pg_catalog.pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC;
Статус репликации
On master:
select * from pg_stat_replication;
On replica (streaming replication in my case):
select * from pg_stat_wal_receiver;