Приложение pg_dumpall
Приложение pg_dumpall
В PostgreSQL также существует приложение pg_dumpall, которое является своего рода «оболочкой» для вызова программы pg_dump. Основная функция этого приложения заключается в одновременной архивации всего кластера баз данных PostgreSQL в системе без вызова pg_dump для всех баз данных по очереди. Синтаксис команды pg_dumpaTl, выводимый с флагом - -help:
pg_dumpall [ -с ] [ -h хост ] [ -р порт ] [ -д ]
Приложение pg_dumpall получает те же параметры подключения, что и приложение pg_dump. Ниже перечислены ключи pg_dumpall.
- -с. Командам SQL, создающим глобальные объекты, должны предшествовать команды удаления этих объектов.
- -h хост, - -host=.roaw. Хост, с которым устанавливается связь вместо хоста local host или хоста, определяемого переменной среды PGHOST. Используется в тех случаях, когда архивируемая база данных находится на другом сервере.
- -р порт, --port=nopm. Порт, по которому должно производиться подключение к серверу, вместо порта по умолчанию (обычно 5432).
- -g, --globals-only. Архивируются только глобальные объекты. Обычно этот режим используется при воссоздании пользователей и групп, а также их дублирования на другом компьютере (архив переносится на другой компьютер и восстанавливается). При установке ключа -д перед выполнением команд CREATE из таблицы pg_shadow автоматически удаляются все пользователи. Будьте внимательны!
ВНИМАНИЕ
Не выполняйте команду pg_dumpall с ключом -?. Это приведет к тому, что ключ будет передан приложению pg_dump для каждой базы и выходные данные займут гораздо больше места, чем можно предположить. Для получения справки о команде pg_dumpall используется ключ --help.
Обратите внимание: в PostgreSQL 7.1.x возможности сценария pg_dumpall несколько ограничены по сравнению с обычным сценарием pg_dump. Например, ключ -и не позволяет передать другое имя пользователя и пароль, а ключ -F не может задать другой формат, кроме простого текста (архивы создаются в текстовом виде независимо от выбранного формата). Отсюда следует, что ключ -Ь тоже не может передаваться программе pg_dumpall, поскольку для него необходимы другие форматы, кроме текстового.
Хотя приложению pg_dump можно передать имя файла при помощи ключа -f, полученный архив будет неполным, поскольку глобальные данные pg_dumpall все
равно направляются в поток stdout. Проблемы с ключом ^решаются перенаправлением вывода pg_dumpall в файл средствами командного интерпретатора (>).
Отсутствие ключа -и компенсируется простым присваиванием переменной среды PGUSER. А если вы подключаетесь к системе, требующей аутентификации с использованием пароля, и не хотите отдельно передавать пароль для каждой архивируемой базы данных, присвойте значение переменной PGPASSWORD.
В листинге 9.22 приведена простая команда bash для определения временной переменной среды PGUSER при вызове клиента PostgreSQL Хотя необходимость в таких переменных возникает редко, это полезный прием, о котором следует помнить в некоторых специфических случаях — например, при работе со сценарием pg_dumpall. В листинге 9.22 переменная PGUSER обеспечивает создание одного архивного файла для всех баз данных.