Postgresql trips: различия между версиями

Материал из Записки на полях
Перейти к навигации Перейти к поиску
 
Строка 27: Строка 27:


Удаляем подключения со статусом idle старше 1 часа
Удаляем подключения со статусом 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
<pre>
  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
</pre>


Получить размер всех таблиц в текущей базе
<pre>
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;
</pre>
Статус репликации
Статус репликации



Текущая версия на 19:22, 2 мая 2024

Сделать дамп базы и сжать с помощью 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;