Резервное копирование и восстановление
 
 
 
 
 
| Руководство администратора по PostgreSQL |  
| Предыдущий | 
Глава 11. Управление базой данных | 
Следующий | 
 
 
 
| Предупреждение | 
 
 Для каждой базы данных необходимо делать резервное копирование на регулярной основе. Т.к. Postgres сам управляет своими файлами в файловой системе, то не благоразумно полагаться на системное резервное копирование файловой системы для резервного копирования баз данных; она не гарантирует, что файлы останутся рабочими после восстановления.  | 
 
 
Postgres обеспечивает две утилиты для резервного копирования системы: pg_dump для резервного копирования индивидуальных баз данных и pg_dumpall для резервного копирования установки за один шаг.
 Для отдельной базы данных можно сделать резервную копию с помощью следующей команды:
 
% pg_dump dbname > dbname.pgdump
 
и восстановить с помощью
cat dbname.pgdump | psql dbname
 
Эта техника может быть использована для перемещения базы данных в новое место, и для переименования существующих баз данных.
 
Автор:  Написано Hannu Krosing в 1999-06-19. 
  
 Т.к. Postgres позволяет таблицы больше чем максимальный размер файла в системе, может быть проблематично сбросить таблицу в файл, вероятно, что результирующий файл окажется больше, чем максимальный размер файла, разрешенной в системе.
 Так как pg_dump пишет в stdout, ты можешь использовать стандартные утилиты *nix для работы над этой возможной проблемой:
 
- Используй сжатие при сбросе:
% pg_dump dbname | gzip > filename.dump.gz
 
восстановив с помощью
% createdb dbname
% gunzip -c filename.dump.gz | psql dbname
или
% cat filename.dump.gz | gunzip | psql dbname
 
 -  Используй разбиение:
% pg_dump dbname | split -b 1m - filename.dump.
восстановив с помощью
% createdb dbname
% cat filename.dump.* | pgsql dbname
 
  
Конечно, имя файла (filename) и содержимое вывода pg_dump не нужно сравнивать с именем базы данных. Также, восстановленная база данных может иметь произвольное новое имя, так что этот механизм также подходит для переименования базы данных.
  
 
 |