кодесурса
«MySQL

PostgreSQL: резервное копирование и восстановление

script1adsense2code
script1adsense3code

Вступление

Резервная копия - это копия данных из вашей базы данных, которую можно использовать для восстановления этих данных. Резервные копии - это резервные копии физических файлов, используемых для хранения и восстановления ваших баз данных, таких как файлы данных, управляющие файлы и другие. Каждая физическая резервная копия - это копия файлов, хранящих информацию базы данных в каком-либо другом месте, будь то на диске или в каком-либо автономном хранилище, например на ленте.

Преимущества резервного копирования:

Имея действительные резервные копии базы данных, вы можете восстановить ваши данные после многих сбоев, таких как:

  • Отказ носителя: Отказ носителя - это сбой чтения или записи файла на диске, необходимого для запуска базы данных, из-за физической проблемы с диском, такой как сбой головки.
  • Аппаратные сбои, например, поврежденный диск.
  • Ошибки пользователя, например, удаление таблицы по ошибке.
  • Стихийные бедствия.

Компонент резервного копирования и восстановления сервера PostgreSQL обеспечивает необходимую защиту для защиты важных данных, хранящихся в базах данных сервера. Чтобы минимизировать риск потери данных, вам необходимо создавать резервные копии ваших баз данных, чтобы регулярно вносить изменения в ваши данные. Хорошо спланированная стратегия резервного копирования и восстановления помогает защитить базы данных от потери данных. Проверьте свою стратегию, восстановив набор резервных копий, а затем восстановив базу данных.

Оглавление

Резервное копирование базы данных PostgreSQL

pg_dump

Восстановить базу данных PostgreSQL

pg_restore

Резервное копирование базы данных PostgreSQL

pg_dump - это утилита для резервного копирования базы данных PostgreSQL. Это делает последовательные резервные копии, даже если база данных используется одновременно. pg_dump не блокирует доступ других пользователей к базе данных (читателей или писателей).

Вы можете использовать программу командной строки pg_dump или phpPgAdmin для резервного копирования базы данных PostgreSQL в файл.

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

Введите следующую команду и нажмите клавишу ВВОД. Замените USERNAME своим именем пользователя, а DBNAME - именем базы данных, которую вы хотите экспортировать:

Синтаксис:

 pg_dump -U ИМЯ ПОЛЬЗОВАТЕЛЯ DBNAME> Mybackup.pgsql 

Введите свой пароль в строке ввода пароля.

Файл Mybackup.pgsql теперь содержит все данные для базы данных DBNAME. Если файл Mybackup.pgsql находится на удаленном компьютере, загрузите файл на локальный компьютер.

Полный синтаксис и другие параметры pg_dump

Синтаксис:

 pg_dump [опция соединения ...] [опция ...] [имя_базы]
вариант Описание
имя_бд Имя базы данных для выгрузки.
-a
--data только
Создает дамп только данных (данные таблиц, большие объекты и значения последовательности), а не схемы (определения данных).
Эта опция похожа, но по историческим причинам не идентична, указав --section = data.
-b
--blobs
Включить большие объекты в дамп (поведение по умолчанию).

--clean
Вывод команд для очистки (отбрасывания) объектов базы данных перед выводом команд для их создания.
Эта опция имеет смысл только для простого текстового формата.

--Создайте
Начните вывод с команды для создания самой базы данных и переподключения к созданной базе данных.
Эта опция имеет смысл только для простого текстового формата.
-Е кодировка
= --encoding кодирование
Создать дамп в указанной кодировке набора символов (по умолчанию, кодировка базы данных).
-f файл
--file = файл
Отправить вывод в указанный файл.
-F формат
--format = формат
Выбирает формат вывода. Формат может быть одним из следующих:
p plain : вывести файл сценария SQL в виде простого текста (по умолчанию).
c custom : вывести архив нестандартного формата, подходящий для ввода в pg_restore.
d directory : Вывести архив в формате каталога, подходящий для ввода в pg_restore.
t tar : Вывести архив в формате tar, подходящий для ввода в pg_restore.
-j njobs
--jobs = njobs
Запустите дамп параллельно, одновременно создавая дамп таблиц njobs.
-n схема
--schema = схема
Дамп только схемы, соответствующие схеме; это выбирает как саму схему, так и все содержащиеся в ней объекты. Если эта опция не указана, все несистемные схемы в целевой базе данных будут выгружены.
-N схема
--exclude-схема схемы =
Не выбрасывайте никакие схемы, соответствующие шаблону схемы.
Когда заданы и -n, и -N, поведение состоит в том, чтобы вывести только схемы, которые соответствуют как минимум одному ключу -n, но не -N. Если -N отображается без -n, то схемы, соответствующие -N, исключаются из того, что в противном случае является обычным дампом.

--oids
Дамп идентификаторов объектов (OID) как часть данных для каждой таблицы.

--no-владелец
Не выводите команды для установки владельца объектов в соответствии с исходной базой данных.
Эта опция имеет смысл только для простого текстового формата. Для форматов архивов вы можете указать эту опцию при вызове pg_restore.

--no-переподключение
Эта опция устарела, но все же принята для обратной совместимости.
-s
--schema только
Дамп только определения объектов (схема), а не данные.
-S имя пользователя
--superuser = имя пользователя
Укажите имя пользователя суперпользователя, которое будет использоваться при отключении триггеров. Это актуально, только если используется --disable-triggers.
стол
--table = таблица
Дамп только таблицы (или представления или последовательности или сторонние таблицы) сопоставления таблицы. Несколько таблиц можно выбрать, написав несколько ключей -t.
Стол
--exclude стол = таблица
Не выбрасывайте таблицы, соответствующие шаблону таблицы.
Когда заданы и -t, и -T, поведение состоит в том, чтобы вывести только таблицы, которые соответствуют хотя бы одному ключу -t, но не -T.
-v
--подробный
Определяет подробный режим. Это приведет к тому, что pg_dump выведет подробные комментарии к объекту и время запуска / остановки в файл дампа, а также сообщение о выполнении к стандартной ошибке.
-V
--версия
Распечатайте версию pg_dump и выйдите.
-Икс
--no-привилегии
--no-ACL
Запретить сброс прав доступа (команды предоставления / отзыва).
-Z 0,9
--compress = 0..9
Укажите уровень сжатия для использования. Ноль означает отсутствие сжатия.
--binary-обновления Эта опция предназначена для использования утилитами обновления на месте.
--column-вставки
--attribute-вставки
Дамп данных как команды INSERT с явными именами столбцов (INSERT INTO таблица (столбец, ...) VALUES ...). Это сделает восстановление очень медленным; это в основном полезно для создания дампов, которые можно загружать в базы данных, отличные от PostgreSQL.
--disable-доллар цитирование Этот параметр отключает использование долларовых кавычек для тел функций и заставляет их заключать в кавычки с использованием стандартного строкового синтаксиса SQL.
--disable-спусковые Эта опция актуальна только при создании дампа только для данных.
Эта опция имеет смысл только для простого текстового формата. Для форматов архивов вы можете указать эту опцию при вызове pg_restore.
--exclude-таблицы данных таблицы = Эта опция полезна, когда вам нужно определение конкретной таблицы, даже если вам не нужны данные в ней.
Чтобы исключить данные для всех таблиц в базе данных, см. --Schema-only.
--Если-существует Используйте условные команды (то есть добавьте предложение IF EXISTS) при очистке объектов базы данных. Этот параметр недействителен, если не указан параметр --clean.
--inserts Дамп данных как команды INSERT (а не COPY).
--lock-ждать тайм-аут = тайм-аут Не ждите вечно, чтобы получить общие блокировки таблиц в начале дампа.
--no-безопасность-этикетка Не сбрасывайте защитные метки.
--no-синхронизированные-снимки Эта опция позволяет запускать pg_dump -j на сервере до 9.2, более подробную информацию смотрите в документации по параметру -j.
--no-табличные Не выводите команды для выбора табличных пространств. С помощью этой опции все объекты будут создаваться в любом табличном пространстве по умолчанию при восстановлении.
Эта опция имеет смысл только для простого текстового формата. Для форматов архивов вы можете указать эту опцию при вызове pg_restore.
--no-Незарег-таблицы данных, Не сбрасывайте содержимое незарегистрированных таблиц.
--quote-все-идентификаторы Принудительное цитирование всех идентификаторов. Это может быть полезно при выгрузке базы данных для переноса в будущую версию, в которой могут быть введены дополнительные ключевые слова.
--section = имя раздела Только дамп именованного раздела (по умолчанию дамп всех разделов).
--serializable-откладываемые Используйте сериализуемую транзакцию для дампа, чтобы гарантировать, что используемый снимок соответствует более поздним состояниям базы данных.
Эта опция не выгодна для дампа, который предназначен только для аварийного восстановления.
--use-SET-сеанса авторизации Выведите стандартные команды SQL SET SESSION AUTHORIZATION вместо команд ALTER OWNER, чтобы определить владение объектом.
-?
--Помогите
Показать справку об аргументах командной строки pg_dump и выйти.

Следующие параметры командной строки управляют параметрами подключения к базе данных

вариант Описание
-d dbname
--dbname = имя_бд
Указывает имя базы данных для подключения.
-х хозяин
--host = хост
Указывает имя хоста компьютера, на котором работает сервер.
порт
--port = порт
Указывает расширение TCP-порта или локального расширения файла сокета домена Unix, на котором сервер ожидает подключения (по умолчанию используется переменная среды PGPORT).
-U имя пользователя
--username = имя пользователя
Имя пользователя.
-w
--no-пароль
Никогда не выдавайте запрос пароля.
-W
--пароль
Принудительно pg_dump запрашивает пароль перед подключением к базе данных.
Эта опция никогда не важна, так как pg_dump автоматически запросит пароль, если сервер требует аутентификацию по паролю.
--role = RoleName Задает имя роли, которая будет использоваться для создания дампа.

Восстановить базу данных PostgreSQL

Текстовые файлы, созданные pg_dump, предназначены для чтения программой psql. Введите следующую команду и нажмите клавишу ВВОД. Замените USERNAME вашим именем пользователя, а DBNAME - именем базы данных, в которую вы хотите восстановить данные.

Синтаксис:

 psql -U ИМЯ ПОЛЬЗОВАТЕЛЯ DBNAME <Mybackup.pgsql 

где Mybackup.pgsql - это файл, выводимый командой pg_dump. Эта команда не будет создавать базу данных dbname, поэтому вы должны создать ее самостоятельно из template0 перед выполнением psql (например, с помощью createb -T template0 dbname). psql поддерживает параметры, аналогичные pg_dump, для указания сервера базы данных, к которому нужно подключиться, и имени пользователя для использования. Дампы нетекстовых файлов восстанавливаются с помощью утилиты pg_restore.

Примечание. Перед восстановлением дампа SQL все пользователи, которым принадлежат объекты или которым были предоставлены разрешения для объектов в выгруженной базе данных, должны уже существовать. Если этого не произойдет, при восстановлении не удастся воссоздать объекты с первоначальным владельцем и / или разрешениями.

pg_restore

pg_restore - это утилита для восстановления базы данных PostgreSQL из архива, созданного pg_dump в одном из текстовых форматов.

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

Синтаксис:

 pg_restore [опция подключения ...] [опция ...] [имя файла]

pg_restore принимает следующие аргументы командной строки в таблицу.

Опции Описание
имя файла Расположение файла архива (или каталога для архива в формате каталога), который необходимо восстановить. Если не указан, используется стандартный ввод.
-a
--data только
Восстановите только данные, а не схему (определения данных).
Эта опция похожа, но по историческим причинам не идентична, указав --section = data.

--clean
Очистите (отбросьте) объекты базы данных перед их воссозданием.

--Создайте
Создайте базу данных перед ее восстановлением. Если также указан параметр --clean, удалите и заново создайте целевую базу данных перед подключением к ней.
Когда используется эта опция, база данных с именем -d используется только для выдачи начальных команд DROP DATABASE и CREATE DATABASE. Все данные восстанавливаются в имени базы данных, которое появляется в архиве.
-d dbname
--dbname = имя_бд
Подключитесь к базе данных dbname и восстановите непосредственно в базе данных.
-e
--exit-на-ошибки
Выйдите, если при отправке команд SQL в базу данных возникла ошибка. По умолчанию это продолжение и отображение количества ошибок в конце восстановления.
-f имя файла
--file = имя_файла
Укажите выходной файл для сгенерированного скрипта или для листинга при использовании с -l. По умолчанию используется стандартный вывод.
-F формат
--format = формат
Укажите формат архива. Нет необходимости указывать формат, так как pg_restore определит формат автоматически. Если указано, это может быть одно из следующих:
c custom: архив находится в пользовательском формате pg_dump.
d directory: архив является каталогом архива.
t tar: архив является архивом tar.
-Я индекс
--index Задает = индекс
Восстановить определение только именованного индекса.
-j количество рабочих мест
--jobs = число-рабочих мест
Запустите самые трудоемкие части pg_restore - те, которые загружают данные, создают индексы или создают ограничения - используя несколько одновременных заданий. Эта опция может значительно сократить время восстановления большой базы данных на сервере, работающем на многопроцессорной машине.
-l
--список
Перечислите содержимое архива.
-L список-файл
--use-список = список-файлы
Восстановите только те элементы архива, которые перечислены в list-file, и восстановите их в порядке их появления в файле.
list-file обычно создается путем редактирования вывода предыдущей операции -l. Строки можно перемещать или удалять, а также закомментировать, поместив точку с запятой (;) в начале строки.
-n пространство имен
--schema = схема
Восстановите только те объекты, которые находятся в именованной схеме. Это можно комбинировать с опцией -t, чтобы восстановить только определенную таблицу.

--no-владелец
Не выводите команды для установки владельца объектов в соответствии с исходной базой данных. По умолчанию pg_restore выдает операторы ALTER OWNER или SET SESSION AUTHORIZATION, чтобы установить владельца созданных элементов схемы.
-P имя-функции (argtype [, ...])
--function = имя-функции (argtype [, ...])
Восстановите только названную функцию.

--no-переподключение
Эта опция устарела, но все же принята для обратной совместимости.
-s
--schema только
Восстанавливайте только схему (определения данных), а не данные, в той степени, в которой записи схемы присутствуют в архиве.
Эта опция является обратной к -data-only.
-S имя пользователя
--superuser = имя пользователя
Укажите имя пользователя суперпользователя, которое будет использоваться при отключении триггеров. Это актуально, только если используется --disable-triggers.
стол
--table = таблица
Восстановить определение и / или данные только именованной таблицы. Это можно сочетать с параметром -n, чтобы указать схему.
-T триггер
--trigger = триггер
Восстановить только названный триггер.
-v
--подробный
Определяет подробный режим.
-V
--версия
Распечатайте версию pg_dump и выйдите.
-Икс
--no-привилегии
--no-ACL
Запретить восстановление прав доступа (команды предоставления / отзыва).
-1
--single-транзакции
Выполните восстановление как одну транзакцию.
--disable-спусковые Эта опция актуальна только при выполнении восстановления только данных.
--no-данные для-неудавшихся столов По умолчанию данные таблицы восстанавливаются, даже если команда создания таблицы не выполнена (например, потому что она уже существует). С этой опцией данные для такой таблицы пропускаются. Это поведение полезно, если целевая база данных уже содержит требуемое содержимое таблицы.
Этот параметр действует только при восстановлении непосредственно в базу данных, но не при выводе сценария SQL.
--no-безопасность-этикетка Не выводите команды для восстановления меток безопасности, даже если их содержит архив.
--no-табличные Не выводите команды для выбора табличных пространств. С помощью этой опции все объекты будут создаваться в любом табличном пространстве по умолчанию при восстановлении.
--section = имя раздела Только восстановить названный раздел.
--use-SET-сеанса авторизации Выведите стандартные команды SQL SET SESSION AUTHORIZATION вместо команд ALTER OWNER, чтобы определить владение объектом.
-?
--Помогите
Показать справку об аргументах командной строки pg_restore и завершиться.

Следующие параметры командной строки управляют параметрами подключения к базе данных

вариант Описание
-х хозяин
--host = хост
Указывает имя хоста компьютера, на котором работает сервер.
порт
--port = порт
Указывает расширение TCP-порта или локального расширения файла сокета домена Unix, на котором сервер ожидает подключения (по умолчанию используется переменная среды PGPORT).
-U имя пользователя
--username = имя пользователя
Имя пользователя.
-w
--no-пароль
Никогда не выдавайте запрос пароля.
-W
--пароль
Принудительно pg_dump запрашивает пароль перед подключением к базе данных.
Эта опция никогда не важна, так как pg_dump автоматически запрашивает пароль, если сервер требует аутентификацию по паролю.
--role = RoleName Задает имя роли, которая будет использоваться для создания дампа.

Предыдущая: Привилегии PostgreSQL
Далее: Введение в PostgreSQL

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code