Создание резервной копии PostgreSQL - pg_dump
Коллеги всем привет.
В сегодняшней статье мы поговорим о том как с помощью утилиты pg_dump можно создавать резервные копии базы данных в PostgreSQL. pg_dump может создавать копию базы данных даже когда база параллельно используется и она не будет мешать другим пользователям при выполнении каких-то запросов. Утилита pg_dump может выгружать только одну базу данных, она не выгружает глобальные объекты такие как учетные записи и табличные пространства. Для того чтобы выгружались глобальные объекты и учетные записи то нужно использовать другую утилиту под названием pg_dumpall. Об утилите pg_dumpall я буду рассказывать в других статьях.
Содержание статьи:
- Создаем директорию для резервных копий.
- Примеры создания резервной копии базы данных.
1. Создаем директорию для резервных копий.
Моя вам рекомендация всегда создавать резервные копии базы данных PostgreSQL недалеко от самой базы данных. У меня база данных находится по пути /app/postgresql, и по этому я создам директорию для резервных копий рядом и назову директорию postgresql_backup.
$. mkdir -p /app/postgresql_backup
И не забываем сделать владельца директории postgres. ЭТО ВАЖНО!
$. chown -R postgres:postgres /app/postgresql_backup
2. Примеры создания резервной копии базы данных.
2.1. Самый простой вариант создания резервной копии базы данных demo.
$. pg_dump --dbname=demo --file=/app/postgresql_backup/backup_demo.sql
2.2. Создания резервной копии из-под другого пользователя и запрашивать пароль на авторизацию.
$. pg_dump -U postgres -W --dbname=demo --file=/app/postgresql_backup/backup_demo.sql
2.3. Выполнить резервную копию базы данных на удаленном сервере.
$. pg_dump -h 192.168.4.10 --dbname=demo --file=/app/postgresql_backup/backup_demo.sql
2.4. Создать резервную копию в виде архива.
$. pg_dump -Ft --dbname=demo --file=/app/postgresql_backup/backup_demo.tar
2.5. Создать резервную копию только самой структуры базы данных без данных.
$. pg_dump --schema-only --dbname=demo --file=/app/postgresql_backup/backup_demo.sql
2.6. Создать резервную копию только данных без самой структуры.
$. pg_dump --data-only --dbname=demo --file=/app/postgresql_backup/backup_demo.sql
2.7. Включить подробный режим при выполнении резервной копии.
$. pg_dump --verbose --data-only --dbname=demo --file=/app/postgresql_backup/backup_demo.sql
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.