Приложение pg_dump
Приложение pg_dump
Приложение pg_dump запускается в режиме командной строки и строит серию команд SQL. Выполнение этих команд в указанном порядке позволяет полностью воссоздать базу данных.
Синтаксис приложения pg_dump:
pg_dump [ параметры ]база_данных
Параметр база_данных определяет имя базы данных, для которой генерируются команды SQL. Строка параметров имеет такой же формат, как у других утилит управления базами данных (например, createdb). В ней чаще всего передается ключ - f для определения файла, в котором сохраняются сгенерированные команды.
Примечание 1
Примечание 1
Если флаг -f не указан, сгенерированные команды SQL вместо записи в файл выводятся в поток stdout.
Ниже приведен полный список ключей приложения pg_dump.
- -а, - -data_only. Приложение генерирует только команды SQLCOPY и INSERT(B зависимости от того, установлен ли ключ -d). В результате архивируются только данные, хранящиеся в базе, но не объекты базы данных. Если ключ -а указывается без ключа -d, сгенерированные команды COPY копируют все данные из stdi n (то есть записи буквально сохраняются в выходном файле). В противном случае записи представляются последовательными командами INSERT.
- -b, --blobs. Большие двоичные объекты архивируются наряду с обычными данными. Также должен быть установлен ключ - F с форматом t или с. По умолчанию данные больших двоичных объектов не архивируются.
- -с, - -clean. Командам SQL, создающим объекты базы данных, должны предшествовать команды удаления этих объектов. Ключ обычно используется при повторной инициализации существующей базы данных (вместо ее удаления и создания на пустом месте).
- -С, --create. В выходные данные включается команда SQL для создания базы данных (CREATE DATABASE).
- -d, --inserts. Для записей генерируются команды INSERT вместо используемых по умолчанию команд COPY. Этот вариант безопаснее, так как одна поврежденная запись приводит к сбою всей команды COPY, но процесс восстановления занимает гораздо больше времени.
- -D, - -attribute_inserts. Ключ -D, как и -d, генерирует команды INSERT, но в каждую команду INSERT перед секцией VALUES включается список полей в круглых скобках.
- -f файл, --т"11е=0айл. Результаты работы pg_dump направляются в заданный файл вместо потока stdout. Пользователь, запускающий pg_dump, должен иметь системные права записи в этот файл.
- -F { с | t р }, --format { с | t | p }. Формат выходного файла (приложение pg_restore обычно используется для работы с файлами, созданными в форматах с или t — соответственно gzip или tar):
- с (сжатие gzip) — файл .tar, сжатый утилитой gzip (то есть .tar.gz); о t — файл .tar;
- р (простой текст) — выходной файл генерируется в простом текстовом формате (режим используется по умолчанию).
По умолчанию приложение pg_dump может запускаться любым системным пользователем, но пользователь, подключающийся к PostgreSQL, должен обладать правом выборки для всех объектов в архивируемой базе данных. В листинге 9.20 приведен пример использования программы pg_dump пользователем manager для базы данных booktown. Ключ -С включает в архив команду CREATE DATABASE. Эта команда включается не всегда, поскольку в некоторых случаях база данных создается заранее в нестандартной конфигурации.