PostgreSQL
Диагностика, базы, таблицы, дампы и восстановление.
Статус и подключение
Сначала проверить сервис и простое подключение.
systemctl status postgresql --no-pager sudo -u postgres psql -c 'select version();' sudo -u postgres psql -c '\l' psql -d DB_NAME -c 'select now();'
Базы, таблицы, размер
Быстро понять, где данные и сколько они занимают.
psql -d DB_NAME -c '\dt' psql -d DB_NAME -c '\du' psql -d DB_NAME -c 'select pg_size_pretty(pg_database_size(current_database()));' psql -d DB_NAME -c 'select relname, pg_size_pretty(pg_total_relation_size(relid)) from pg_catalog.pg_statio_user_tables order by pg_total_relation_size(relid) desc;'
Дамп
Для обычной переносимой копии удобен custom-формат `-Fc`.
pg_dump -d DB_NAME > db_backup.sql pg_dump -Fc -d DB_NAME -f db_backup.dump pg_dump -Fc -d DB_NAME | gzip > db_backup.dump.gz pg_dumpall > all_databases.sql
Восстановление
Восстанавливать лучше сначала в тестовую базу, если есть сомнения.
createdb DB_RESTORE psql -d DB_RESTORE < db_backup.sql pg_restore -d DB_RESTORE db_backup.dump gzip -dc db_backup.dump.gz | pg_restore -d DB_RESTORE