Иллюстрированный самоучитель по PostgreSQL

Восстановление базы данных

Многие ключи pg_restore совпадают с аналогичными ключами команды pg_dump. Иногда для достижения желаемой цели один ключ должен передаваться при вызове как pg_dump, так и pg_restore. Например, это относится к ключу – С. Если ключ передается только при вызове pg_dump, то команда CREATE DATABASE будет проигнорирована при восстановлении, несмотря не ее присутствие в архиве.

Ниже приведены более подробные описания всех ключей.

  • – а, --data_only. Все ссылки на структурные объекты базы данных игнорируются, и восстанавливаются только записи данных (команды COPY и INSERT).
  • – с, --clean. Командам SQL, создающим объекты базы данных, должны предшествовать команды удаления этих объектов. Без ключа – с эти команды игнорируются, даже если они присутствуют в файле архива.
  • – С, --create. В процессе восстановления выполняется команда создания базы данных (CREATE DATABASE), если она присутствует в архиве. Без ключа – С команда игнорируется.
  • – d база_данных, --Dname=база_данных. Имя базы данных, к которой следует подключиться перед восстановлением. Если в процессе архивации использовался ключ создания новой базы данных – С, то ключ – d должен ссылаться на базу templatel. Если параметр не указан, команды восстановления базы данных не передаются PostgreSQL, а выводятся в поток stderr.
  • – f файл, --File=файл. Команды SQL, обеспечивающие восстановление базы данных, направляются в заданный файл, вместо передачи postmaster (ключ – d) или вывода в stdout (используется по умолчанию).
  • – F { с | t }, --format { с | t }. Формат входного файла. Значение с означает файл tar, сжатый утилитой gzip (то есть.tar.gz), а значение t соответствует простому файлу.tar. Обычно этот ключ не нужен, поскольку pg_restore автоматически определяет тип файла по данным заголовка.
  • – h хост, --host=хост. Хост, с которым устанавливается связь вместо хоста
  • localhost.
  • – i, --index. Восстанавливаются только индексы. Вследствие ошибки PostgreSQL ключ – i может не работать, но ключ --Index в версии PostgreSQL 7.1.x работает всегда.
  • – l, --list. Приложение pg_restore выводит перечень объектов базы данных, разделенных запятыми. Вывод можно направить в файл при помощи ключа – f или средств командного интерпретатора (>) и позднее использовать с ключом – L для выбора восстанавливаемых объектов базы данных.
  • – L файл, --uselist=файл. Перечень объектов, восстанавливаемых приложением pg_restore, берется из заданного файла. Файл создается с ключом – l. После создания файла удалите строки объектов, которые не нужно восстанавливать, или закомментируйте их, поставив в начало этих строк точку с запятой (;).
  • – N, --orig-order. Восстановление производится в порядке первоначальной архивации объектов приложением pg_dump (дополнительная информация берется из файла в формате tar или gzip). Этот порядок не совпадает с порядком следования команд в файле архива, который определяет последовательность восстановления по умолчанию. Ключ не может использоваться вместе с ключом – о или – г. Если в процессе восстановления объекты базы данных будут воссозданы в неправильном порядке (например, объект, который зависит от другого существующего объекта, будет создан раньше него), можно заново инициализировать базу данных и попробовать восстановить ее с ключом – N.
  • – о, --old-order. Объекты восстанавливаются строго в порядке возрастания OID. Ключ не может использоваться вместе с ключом – N или – г.
  • – 0, --no-owner. Приложение pg_restore игнорирует команды \connect, обеспечивающие сохранение принадлежности объектов.
  • – р порт, --port=порт. Порт, по которому должно производиться подключение к серверу, вместо порта по умолчанию (обычно 5432, хотя при компиляции PostgreSQL можно задать другой порт при помощи флага --with-pgport).
  • – Р, --function. Восстанавливаются только функции. По аналогии с ключом – i, из-за ошибки PostgreSQL ключ – Р может не работать, но ключ --function в версии PostgreSQL 7.1.x работает всегда.
  • – г, --rearrange. Восстановление происходит в порядке, выбранном приложением pg_dump в процессе создания архива. При установке ключа большинство объектов создается в соответствии с порядком OID, хотя команды создания правил и индексов перемещаются в конец файла. Ключ используется по умолчанию.
  • – R, --no-reconnect. Приложение pg_restore игнорирует все команды \connect (а не только те, которые обеспечивают сохранение принадлежности объектов). Не может использоваться с ключом – С, требующим повторного подключения после создания новой базы.
  • – s, --schema-only. Восстанавливаются только структурные объекты базы данных – таблицы, последовательности, индексы и представления. Записи данных не копируются и не вставляются в таблицы, а последовательности инициализируются значениями по умолчанию. Этот ключ может использоваться, например, для создания пустой базы данных, предназначенной для реальной эксплуатации и повторяющей структуру базы данных, применявшейся в процессе разработки.
  • – S имя, --superuser=UMM. Задает имя суперпользователя, которому предоставляется право отключения триггеров и изменения принадлежности объектов базы данных.
  • – t таблица, --t=таблица. Восстанавливается только таблица с заданным именем (вместо всех объектов базы данных). Если ключ --table указан без значения, восстанавливаются все таблицы.
  • – Т триггер, --trigger[триггер]. Восстанавливается только триггер с заданным именем (вместо всех объектов базы данных). Если ключ --trigger указан без значения, восстанавливаются все триггеры.
  • – n, --password. Приложение pg_restore запрашивает имя пользователя и пароль.
  • – v, --verbose. Все выполняемые действия сопровождаются выводом сообщений, которые направляются в поток stderr, а не как обычно в поток stdout!
  • – х, --no-acl. Подавление команд GRANT и REVOKE в восстанавливаемом архиве.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.