Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

pg_dumpall

Выгружает все базы данных системы Greengage DB в один файл скрипта или другой архивный файл.

Синтаксис

pg_dumpall [<connection-option> ...] [<dump-option> ...]

pg_dumpall -? | --help

pg_dumpall -V | --version

Описание

pg_dumpall — стандартная утилита PostgreSQL для резервного копирования всех баз данных, которая также поддерживается в Greengage DB. Она создает один (непараллельный) дамп. Для регулярных бэкапов Greengage DB рекомендуется использовать утилиты резервного копирования Greengage DB.

pg_dumpall создает один файл скрипта, содержащий SQL-команды, которые могут использоваться в качестве входных данных для psql при восстановлении баз данных. Это делается путем вызова pg_dump для каждой базы данных. pg_dumpall также выгружает глобальные объекты, общие для всех баз данных. pg_dump не сохраняет эти объекты. Это включает информацию о пользователях и группах базы данных, а также права доступа, применяемые к базам данных в целом.

Поскольку pg_dumpall читает таблицы из всех баз данных, для создания полной выгрузки потребуется подключиться от имени суперпользователя. Также права суперпользователя понадобятся для запуска сохраненного скрипта, чтобы получить возможность добавлять пользователей и группы, а также создавать базы данных.

SQL-скрипт будет выведен в стандартный вывод. Используйте параметр [-f | --file] или операторы оболочки для перенаправления в файл.

pg_dumpall требуется несколько раз подключаться к мастеру Greengage DB (один раз для каждой базы данных). Если вы используете парольную аутентификацию, скорее всего, пароль будет запрошен каждый раз. В таких случаях удобно использовать файл ~/.pgpass.

Параметры

Параметры выгрузки

-a | --data-only

Выгружает только данные без схемы (определений объектов). Этот параметр имеет смысл только для формата обычного текста. Для архивных форматов его можно указать при вызове pg_restore.

-c | --clean

Добавляет команды SQL для удаления баз данных перед командами, создающими их. Этот параметр имеет смысл только для формата обычного текста. Для архивных форматов его можно указать при вызове pg_restore.

-f <filename> | --file=<filename>

Направляет вывод в указанный файл.

-g | --globals-only

Выгружает только глобальные объекты (роли и табличные пространства), базы данных не выгружаются.

-o | --oids

Включает идентификаторы объектов (OID) в данные каждой таблицы при выгрузке. Использование этого параметра не рекомендуется для файлов, которые планируется восстанавливать в Greengage DB.

-O | --no-owner

Не включает команды для установки владельца объектов в соответствии с исходной базой данных. По умолчанию pg_dump добавляет операторы ALTER OWNER или SET SESSION AUTHORIZATION, чтобы установить владельца созданных объектов базы данных. Эти команды вызовут ошибку при запуске скрипта, если он выполняется не суперпользователем или не пользователем, который владеет всеми объектами в скрипте. Чтобы создать скрипт, который может быть восстановлен любым пользователем и при этом назначит этому пользователю владение всеми объектами, используйте -O. Этот параметр имеет смысл только для формата обычного текста. Для архивных форматов его можно указать при вызове pg_restore.

-r | --roles-only

Выгружает только роли, без баз данных и табличных пространств.

-s | --schema-only

Выгружает только определения объектов (схему), без данных.

-S <username> | --superuser=<username>

Задает имя суперпользователя для использования при деактивации триггеров. Актуально только при использовании параметра --disable-triggers. Рекомендуется не указывать этот параметр и вместо этого запускать полученный скрипт от имени суперпользователя.

ПРИМЕЧАНИЕ

Greengage DB не поддерживает пользовательские триггеры.

-t | --tablespaces-only

Выгружает только табличные пространства, без баз данных и ролей.

-v | --verbose

Включает подробный режим вывода. В этом режиме pg_dump выводит детальные комментарии к объектам и время начала/окончания в дампе, а сообщения о ходе выполнения — в стандартный поток ошибок.

-V | --version

Выводит версию pg_dumpall и завершает работу.

-x | --no-privileges | --no-acl

Не включает в выгрузку привилегии доступа (команды GRANT/REVOKE).

--binary-upgrade

Параметр предназначен для использования утилитами обновления на месте. Использование его для других целей не рекомендуется и не поддерживается.

--column-inserts | --attribute-inserts

Выгружает данные в виде команд INSERT с явным указанием имен столбцов (INSERT INTO <table> (<column>, …​) VALUES …​). Это делает восстановление значительно медленнее и в основном полезно для выгрузок, предназначенных для баз данных, несовместимых с PostgreSQL. При этом каждая строка создается отдельной командой, поэтому ошибка при загрузке затронет только эту строку, а не всю таблицу.

--disable-dollar-quoting

Отключает использование долларовых кавычек для тел функций и принудительно применяет обычные строковые литералы SQL.

--disable-triggers

Применяется при создании выгрузки только с данными. Указывает pg_dumpall включить команды для временной деактивации триггеров в целевых таблицах при перезагрузке данных. Используется, если в таблицах есть триггеры, которые не должны срабатывать во время загрузки. Команды для --disable-triggers должны выполняться от имени суперпользователя. Либо укажите имя суперпользователя через -S, либо предпочтительнее запустите скрипт напрямую от имени суперпользователя.

ПРИМЕЧАНИЕ

Greengage DB не поддерживает пользовательские триггеры.

--if-exists

Определяет применение условных команд (например, с добавлением выражения IF EXISTS) при удалении баз данных и других объектов. Может использоваться только совместно с параметром --clean.

--inserts

Выгружает данные в виде команд INSERT вместо COPY. Это делает восстановление медленным, но полезно для выгрузок, которые нужно загрузить в СУБД, не основанные на PostgreSQL. Так как для каждой строки создается отдельная команда, ошибка при восстановлении затронет только эту строку, а не всю таблицу. Обратите внимание: восстановление может полностью не выполниться при изменении порядка столбцов. Параметр --column-inserts безопасен относительно изменения порядка столбцов, но еще медленнее.

--lock-wait-timeout=<timeout>

Задает максимальное время ожидания получения разделяемой блокировки таблиц в начале выгрузки. Если таблица не будет заблокирована в течение указанного тайм-аута, выгрузка завершится с ошибкой. Тайм-аут можно указать в любом формате, принимаемом SET <statement_timeout>. Допустимые значения зависят от версии сервера, из которого выполняется выгрузка, но целое число миллисекунд принимается всеми версиями Greengage DB.

--no-security-labels

Не выгружает метки безопасности.

--no-tablespaces

Не выводит команды для выбора табличных пространств. С этим параметром все объекты будут созданы в том табличном пространстве, которое используется по умолчанию во время восстановления.

--no-unlogged-table-data

Не выгружает данные из нежурналируемых таблиц. Определения таблиц (схема) выгружаются как обычно; содержимое таблиц при этом не экспортируется.

--quote-all-identifiers

Принудительно заключает все идентификаторы в кавычки. Рекомендуется использовать при выгрузке базы данных с сервера, основная версия Greengage DB которого отличается от версии pg_dumpall, или если выгрузка предназначена для загрузки на сервер другой основной версии. По умолчанию pg_dumpall заключает в кавычки только идентификаторы, являющиеся зарезервированными словами в его текущей версии. Это может вызвать проблемы совместимости с серверами других версий, у которых набор зарезервированных слов отличается. Использование --quote-all-identifiers предотвращает такие проблемы, хотя делает скрипт выгрузки менее читаемым.

--resource-queues

Выгружает определения ресурсных очередей.

--resource-groups

Выгружает определения ресурсных групп.

--use-set-session-authorization

Выводит команды SQL-стандарта SET SESSION AUTHORIZATION вместо ALTER OWNER для установки владения объектами. Это повышает совместимость со стандартами, но может привести к некорректному восстановлению в зависимости от истории объектов. Выгрузка с SET SESSION AUTHORIZATION потребует привилегий суперпользователя для корректного восстановления, тогда как ALTER OWNER требует меньших привилегий.

--gp-syntax

Включает синтаксис Greengage DB в операторах CREATE TABLE. Это позволяет экспортировать политику распределения (выражения DISTRIBUTED BY или DISTRIBUTED RANDOMLY) таблиц Greengage DB, что важно при восстановлении в других кластерах Greengage DB.

--no-gp-syntax

Не выводит выражения распределения таблиц в операторах CREATE TABLE.

-? | --help

Отображает справку по аргументам командной строки pg_dumpall и завершает работу.

Параметры подключения

-d <connstr> | --dbname=<connstr>

Указывает параметры для подключения к серверу в виде строки подключения. Дополнительную информацию см. в разделе Connection Strings документации PostgreSQL.

Параметр называется --dbname для согласованности с другими клиентскими приложениями, но поскольку pg_dumpall должен подключаться ко многим базам данных, имя базы данных в строке подключения будет проигнорировано. Используйте параметр -l, чтобы указать имя базы данных, используемой для выгрузки глобальных объектов и обнаружения других баз данных для выгрузки.

-h <host> | --host=<host>

Имя хоста, на котором работает мастер Greengage DB. Если параметр не указан, читается из переменной окружения PGHOST; по умолчанию используется localhost.

-l <dbname> | --database=<dbname>

Указывает имя базы данных для подключения и выгрузки глобальных объектов. Если параметр не указан, используется база данных postgres. Если база данных postgres не существует, используется база данных template1.

-p <port> | --port=<port>

TCP-порт, на котором мастер Greengage DB прослушивает подключения. Если параметр не указан, читается из переменной окружения PGPORT; по умолчанию используется порт 5432.

-U <username> | --username=<username>

Имя роли базы данных для подключения. Если параметр не указан, читается из переменной окружения PGUSER; по умолчанию используется имя текущей системной роли.

-w | --no-password

Никогда не запрашивает пароль. Если сервер требует аутентификацию по паролю, а пароль недоступен другими способами (например, через файл .pgpass), попытка подключения завершится неудачей. Этот параметр удобен для пакетных заданий и скриптов, где нет пользователя для ввода пароля.

-W | --password

Принудительно запрашивает пароль при подключении.

--role=<rolename>

Указывает роль, которая будет использоваться для создания выгрузки. После подключения к базе данных pg_dumpall выполнит команду SET ROLE <rolename>. Это полезно, когда аутентифицированному пользователю (через -U) не хватает прав, необходимых pg_dumpall, но он может переключиться на роль с нужными привилегиями. Некоторые инсталляции ограничивают прямой вход от имени суперпользователя; использование этого параметра позволяет создавать выгрузки, соблюдая политику безопасности.

Примечания

Поскольку pg_dumpall внутренне вызывает pg_dump, некоторые диагностические сообщения будут ссылаться на pg_dump.

После восстановления рекомендуется выполнить ANALYZE для каждой базы данных для обновления статистики планировщика запросов. Также можно выполнить vacuumdb -a -z для очистки и анализа всех баз данных.

pg_dumpall требует, чтобы все необходимые каталоги табличных пространств существовали до восстановления; в противном случае создание баз данных в нестандартных расположениях завершится ошибкой.

Примеры

Выгрузить все базы данных:

$ pg_dumpall > db.out

Восстановить базы данных из этого файла:

$ psql template1 -f db.out

Выгрузить только глобальные объекты (включая ресурсные очереди):

$ pg_dumpall -g --resource-queues

См. также