Входной файл с ошибкой имеет текстовый формат, загрузите его с помощью psql
Обновлено: 23.11.2024
Резервная копия — это копия данных из вашей базы данных, которую можно использовать для восстановления этих данных. Резервные копии — это резервные копии физических файлов, используемых для хранения и восстановления ваших баз данных, таких как файлы данных, управляющие файлы и другие. Каждая физическая резервная копия представляет собой копию файлов, хранящих информацию базы данных, в другом месте, будь то на диске или в каком-либо автономном хранилище, например на ленте.
Преимущества резервного копирования:
С действительными резервными копиями базы данных вы можете восстановить данные после многих сбоев, таких как:
- Сбой носителя. Сбой носителя – это сбой чтения или записи файла на диске, необходимого для запуска базы данных, из-за физической проблемы с диском, например, из-за поломки головки.
- Сбои оборудования, например, поврежденный диск.
- Ошибки пользователя, например, случайное удаление таблицы.
- Стихийные бедствия.
Компонент резервного копирования и восстановления сервера PostgreSQL обеспечивает необходимую защиту важных данных, хранящихся в базах данных сервера. Чтобы свести к минимуму риск потери данных, вам необходимо регулярно создавать резервные копии ваших баз данных, чтобы сохранять изменения в ваших данных. Хорошо спланированная стратегия резервного копирования и восстановления помогает защитить базы данных от потери данных. Проверьте свою стратегию, восстановив набор резервных копий, а затем восстановив базу данных.
Оглавление
Резервное копирование базы данных PostgreSQL
pg_dump — это утилита для резервного копирования базы данных PostgreSQL. Он делает согласованные резервные копии, даже если база данных используется одновременно. pg_dump не блокирует доступ других пользователей к базе данных (читателей или записывающих устройств).
Вы можете использовать программу командной строки pg_dump или использовать phpPgAdmin для резервного копирования базы данных PostgreSQL в файл.
Откройте командную строку на компьютере, где хранится база данных. Если у вас есть физический доступ к компьютеру, вы можете открыть окно DOS или терминала для доступа к командной строке.
Введите следующую команду и нажмите клавишу ВВОД. Замените USERNAME на ваше имя пользователя, а DBNAME на имя базы данных, которую вы хотите экспортировать:
Синтаксис:
Введите пароль в строке пароля.
Файл Mybackup.pgsql теперь содержит все данные для базы данных DBNAME. Если файл Mybackup.pgsql находится на удаленном компьютере, загрузите его на локальный компьютер.
Полный синтаксис и другие параметры pg_dump
Синтаксис:
Опция | Описание |
---|---|
имя_базы_данных | Имя базы данных для дампа. td> |
-a --data-only | Выгружать только данные (табличные данные, большие объекты и значения последовательности), а не схему ( определения данных) Эта опция аналогична, но по историческим причинам не идентична указанию --section=data. |
-b -- blobs | Включить в дамп большие объекты (поведение по умолчанию). |
-c --clean | Вывод команды для очистки (удаления) объектов базы данных перед выводом команд для их создания. Эта опция имеет смысл только для текстового формата. |
-C --create | Начните вывод с команда для создания самой базы данных и повторного подключения к созданной базе данных. Эта опция имеет значение только для обычного текстового формата. |
-E encoding --encoding=encoding | Создать дамп в указанной кодировке набора символов (по умолчанию, кодировка базы данных). |
-f файл --file=file | Отправить вывод в указанный файл. |
-F format --format=format | Выбирает формат вывода. Формат может быть одним из следующих: p plain: вывод файла сценария SQL в виде обычного текста (по умолчанию). c custom : Вывод архива пользовательского формата, пригодного для ввода в pg_restore. каталог d : вывод архива в формате каталога, подходящего для ввода в pg_restore. t tar : выводит архив в формате tar, подходящий для ввода в pg_restore. |
-j njobs --jobs =njobs | Выполнить дамп параллельно, одновременно выгружая таблицы njobs. |
-n schema --schema=schema | Дамп только схем, соответствующих схеме; это выбирает как саму схему, так и все содержащиеся в ней объекты. Если этот параметр не указан, все несистемные схемы в целевой базе данных будут выгружены. |
-N schema --exclude-schema=schema td> | Не сбрасывайте никакие схемы, соответствующие шаблону схемы. Если заданы и -n, и -N, дамп выполняется только для тех схем, которые соответствуют хотя бы одному ключу -n, но не одному ключу -N. Если -N появляется без -n, то схемы, соответствующие -N, исключаются из обычного дампа. |
-o --oids | Идентификаторы объектов дампа (OID) как часть данных для каждой таблицы. |
-O --no-owner | Не выводить команды для установки прав собственности на объекты в соответствии с исходной базой данных. Эта опция имеет значение только для обычного текстового формата. Для форматов архива можно указать параметр при вызове pg_restore. |
-R --no-reconnect | Этот параметр устарела, но все еще принимается для обратной совместимости. |
-s --schema-only | Выводить только определения объектов (схему), а не data. |
-S username --superuser=username | Укажите имя суперпользователя, которое будет использоваться при отключении триггеров. Это имеет значение, только если используется --disable-triggers. |
-t table --table=table | Дамп только таблиц ( или представления, или последовательности, или сторонние таблицы) соответствующая таблица. Можно выбрать несколько таблиц, написав несколько ключей -t. |
-T table --exclude-table=table | Не создавать дамп любые таблицы, соответствующие шаблону таблицы. Если заданы и -t, и -T, дамп выполняется только для тех таблиц, которые соответствуют хотя бы одному ключу -t, но не соответствуют ключу -T. |
-v --verbose | Указывает подробный режим. Это приведет к тому, что pg_dump выведет подробные комментарии к объекту и время начала/остановки в файл дампа, а также сообщения о ходе выполнения со стандартной ошибкой. |
-V --version< /td> | Распечатайте версию pg_dump и выйдите. |
-x --no-привилегии --no-acl | Предотвратить сброс привилегий доступа (команды предоставления/отзыва). |
-Z 0..9 --compress=0..9 td> | Укажите используемый уровень сжатия. Ноль означает отсутствие сжатия. |
--binary-upgrade | Эта опция предназначена для использования утилитами обновления на месте. |
--column-inserts --attribute-inserts | Выгружать данные в виде команд INSERT с явными именами столбцов (INSERT INTO table (column, . ) VALUES . ). Это сделает восстановление очень медленным; это в основном полезно для создания дампов, которые могут быть загружены в базы данных, отличные от PostgreSQL. |
--disable-dollar-quoting | Эта опция отключает использование долларовых кавычек для тел функций и заставляет их заключать в кавычки с использованием стандартного синтаксиса строк SQL. |
--disable-triggers | Эта опция актуальна только при создании дампа только данных. Эта опция имеет значение только для обычного текстового формата. Для форматов архива вы можете указать опцию при вызове pg_restore. |
--exclude-table-data=table | Эта опция полезна, когда вам нужно определение конкретной таблицы, даже если вам не нужны данные в ней. Чтобы исключить данные для всех таблиц в базе данных, см. --schema-only. |
--if-exists | Используйте условные команды (т.е. добавить предложение IF EXISTS) при очистке объектов базы данных. Эта опция недействительна, если не указан параметр --clean. |
--inserts | Выгружать данные как команды INSERT (а не COPY). td> |
--lock-wait-timeout=timeout | Не ждите целую вечность, чтобы получить общие блокировки таблиц в начале дампа. | tr>
--no-security-labels | Не сбрасывать метки безопасности. |
--no-synchronized-snapshots< /td> | Эта опция позволяет запускать pg_dump -j на сервере до версии 9.2, дополнительные сведения см. в документации по параметру -j. |
--no- tablespaces | Не выводить команды для выбора табличных пространств. С этой опцией все объекты будут созданы в любом табличном пространстве, используемом по умолчанию во время восстановления. Эта опция имеет значение только для обычного текстового формата. Для форматов архива вы можете указать опцию при вызове pg_restore. |
--no-unlogged-table-data | Не выгружать содержимое незарегистрированных таблиц. |
--quote-all-identifiers | Принудительно заключать в кавычки все идентификаторы. Это может быть полезно при создании дампа базы данных для переноса на будущую версию, в которой могут быть введены дополнительные ключевые слова. |
--section = sectionname | Выгружать только именованный раздел (по умолчанию дамп всех разделов). |
--serializable-deferrable | Используйте сериализуемую транзакцию для дампа, чтобы убедиться, что моментальный снимок used согласуется с более поздними состояниями базы данных. Этот вариант не подходит для дампа, предназначенного только для аварийного восстановления. |
--use-set-session-authorization | Выводить стандартные для SQL команды SET SESSION AUTHORIZATION вместо команд ALTER OWNER для определения принадлежности объекта. |
-? --help | Показать справку об аргументах командной строки pg_dump и выйти. |
Следующие параметры командной строки управляют параметрами подключения к базе данных
Опция | Описание |
---|---|
-d dbname --dbname=dbname | Указывает имя базы данных для подключения. |
-h host --host=host | Указывает имя хоста машины, на которой работает сервер. |
-p port --port=port | Указывает TCP-порт или расширение файла сокета локального домена Unix, на котором сервер прослушивает подключения ( по умолчанию используется переменная среды PGPORT). |
-U имя пользователя --username=имя пользователя | Имя пользователя. | tr>
-w --no-password | Никогда не запрашивать пароль. |
-W --password | Заставить pg_dump запрашивать пароль перед подключением к базе данных. Этот параметр никогда не является обязательным, так как pg_dump автоматически запросит пароль, если сервер потребует аутентификации по паролю. |
--role=rolename | Указывает имя роли, которое будет использоваться для создания дампа. |
Восстановить базу данных PostgreSQL
Текстовые файлы, созданные pg_dump, предназначены для чтения программой psql. Введите следующую команду и нажмите клавишу ВВОД. Замените USERNAME на ваше имя пользователя и DBNAME на имя базы данных, в которую вы хотите восстановить данные
Синтаксис:
где Mybackup.pgsql — это файл, выводимый командой pg_dump. Эта команда не будет создавать базу данных dbname, поэтому вы должны создать ее самостоятельно из template0 перед выполнением psql (например, с помощью createdb -T template0 dbname). psql поддерживает параметры, аналогичные pg_dump, для указания сервера базы данных для подключения и используемого имени пользователя. Дампы нетекстовых файлов восстанавливаются с помощью утилиты pg_restore.
Примечание. Перед восстановлением дампа SQL все пользователи, владеющие объектами или получившие права доступа к объектам в базе данных дампа, должны уже существовать. В противном случае при восстановлении не удастся воссоздать объекты с первоначальным владельцем и/или разрешениями.
pg_restore — это утилита для восстановления базы данных PostgreSQL из архива, созданного с помощью pg_dump, в одном из форматов, отличных от простого текста.
pg_restore может работать в двух режимах. Если указано имя базы данных, pg_restore подключается к этой базе данных и восстанавливает содержимое архива непосредственно в базу данных. В противном случае сценарий, содержащий команды SQL, необходимые для перестроения базы данных, создается и записывается в файл или в стандартный вывод. Этот вывод скрипта эквивалентен формату вывода обычного текста pg_dump. Таким образом, некоторые параметры, управляющие выводом, аналогичны параметрам pg_dump.
Синтаксис:
pg_restore принимает в таблицу следующие аргументы командной строки.
Параметры | Описание |
---|---|
имя файла | Расположение файла архива (или директория, для архив в формате каталога) для восстановления. Если не указано, используется стандартный ввод. |
-a --data-only | Восстановить только данные, а не схему (определения данных). Эта опция аналогична, но по историческим причинам не идентична указанию --section=data. |
-c --clean td> | Очистить (удалить) объекты базы данных перед их воссозданием. |
-C --create | Создать базу данных перед восстановлением внутрь. Если также указано --clean, удалите и заново создайте целевую базу данных перед подключением к ней. При использовании этого параметра база данных с параметром -d используется только для выполнения начальных команд DROP DATABASE и CREATE DATABASE. Все данные восстанавливаются в имя базы данных, которое появляется в архиве. |
-d dbname --dbname=dbname | Подключение к базе данных dbname и восстановить непосредственно в базу данных. |
-e --exit-on-error | Выйти, если при отправке возникла ошибка SQL-команды к базе данных. По умолчанию следует продолжить и отобразить количество ошибок в конце восстановления. |
-f имя_файла --file=имя_файла | < td>Укажите выходной файл для сгенерированного скрипта или для листинга при использовании с -l. По умолчанию используется стандартный вывод. |
-F format --format=format | Укажите формат архива. Нет необходимости указывать формат, так как pg_restore определит формат автоматически. Если указано, может быть одним из следующих: c custom : Архив имеет пользовательский формат pg_dump. каталог d: Архив является архивом каталога. t tar : Архив представляет собой архив tar. |
-I index --index=index | Восстановить определение только именованный индекс. |
-j количество заданий --jobs=число заданий | Выполнять больше всего времени- использование частей pg_restore — тех, которые загружают данные, создают индексы или создают ограничения — с использованием нескольких параллельных заданий. Этот параметр может значительно сократить время восстановления большой базы данных на сервер, работающий на многопроцессорной машине. |
-l --list td> | Перечислите содержимое архива. |
-L list-file --use-list=list-file | Восстанавливать только те элементы архива, которые перечислены в list- файл и восстановить их в том порядке, в котором они появляются в файле. файл-список обычно создается путем редактирования вывода предыдущей операции -l. Строки можно перемещать или удалять, а также можно закомментировать, поставив точку с запятой (;) в начале строки. |
-n namespace -- schema=schema | Восстановить только объекты, находящиеся в именованной схеме. Это можно комбинировать с опцией -t для восстановления только определенной таблицы. |
-O --no-owner | Не команды вывода, чтобы установить право собственности на объекты в соответствии с исходной базой данных. По умолчанию pg_restore выдает операторы ALTER OWNER или SET SESSION AUTHORIZATION, чтобы установить владельца созданных элементов схемы. |
-P имя-функции(argtype [, . ]) --function=function-name(argtype [, . ]) | Восстановить только названную функцию. |
-R --no -reconnect | Эта опция устарела, но по-прежнему принимается для обратной совместимости. |
-s --schema-only | < td>Восстановить только схему (определения данных), а не данные, в той степени, в которой записи схемы присутствуют в архиве. |
-S username --superuser=username | Указать имя суперпользователя, используемое при отключении триггеров. Это имеет значение, только если используется --disable-triggers. |
-t table --table=table | Восстановить определение и/ или данные только именованной таблицы. Это можно комбинировать с параметром -n для указания схемы. |
-T trigger --trigger=trigger | Восстановить только именованный триггер. |
-v --verbose | Указывает подробный режим. |
-V --version | Распечатать версию pg_dump и выйти. |
-x --no -привилегии --no-acl | Запретить восстановление прав доступа (команды предоставления/отзыва). |
-1 --single-transaction | Выполнить восстановление как единую транзакцию. |
--disable-triggers | Этот параметр актуально при выполнении восстановления только данных. |
--no-data-for-failed-tables | По умолчанию данные таблицы восстанавливаются, даже если команда создания для таблица не удалась (например, потому что она уже существует). С этой опцией данные для такой таблицы пропускаются. Такое поведение полезно, если целевая база данных уже содержит требуемое содержимое таблицы. Эта опция эффективна только при восстановлении непосредственно в базу данных, а не при создании вывода сценария SQL. |
--no-security-labels | Не выводить команды для восстановления меток безопасности, даже если они есть в архиве. |
--no-tablespaces | Не выводить команды для выбора табличных пространств . С этой опцией все объекты будут созданы в любом табличном пространстве, используемом по умолчанию во время восстановления. |
--section=sectionname | Восстанавливать только именованный раздел. |
--use-set-session-authorization | Выводить стандартные для SQL команды SET SESSION AUTHORIZATION вместо команд ALTER OWNER для определения принадлежности объекта. тд> | Показать справку об аргументах командной строки pg_restore и выйти. |
Следующие параметры командной строки управляют параметрами подключения к базе данных
Текст был успешно обновлен, но возникли следующие ошибки:
прокомментировал serge-rider 13 августа 2018 г.
pg_restore не может импортировать простые файлы SQL. Это работа для psql. Также можно запустить дамп SQL как скрипт в DBeaver.
marcher прокомментировал 13 апреля 2020 г.
почему dbeaver позволяет экспортировать SQL, но не может его импортировать, если это просто вопрос использования psql вместо pg_restore? Мне кажется, это легко исправить !
Каркунов прокомментировал 28 апреля 2020 г.
Прокомментировал MikePryadko 17 августа 2020 г.
swiffer прокомментировал 13 апреля 2021 г.
Это также сбивает с толку - диалоговое окно структурировано таким образом, что кажется совершенно нормальным:
Мессиас прокомментировал 6 октября 2021 г.
Эта проблема все еще существует.
RenatoLopes771 прокомментировал 20 октября 2021 г. •
Мне помогло сделать это на терминале
xmark — имя базы данных, текст после
прокомментировал sjivan 30 декабря 2021 г.
Я столкнулся с той же проблемой здесь.Проблема заключается в том, что экспорт в формате «Обычный» экспортирует его в обычный формат сценария SQL, однако при импорте в формате «Обычный» попытался загрузить сценарий sql с помощью pg_restore, который не поддерживает импорт простого формата файла sql, и поэтому мы видим ошибку " входной файл выглядит как дамп текстового формата. Пожалуйста, используйте psql".
Чтобы восстановить экспорт в формате "Обычный", необходимо использовать опцию Инструменты --> Выполнить скрипт и указать на экспортированный файл SQL.
Определенно сбивает с толку тот факт, что экспорт DBeaver «Обычный» не может быть загружен с использованием параметра импорта «Обычный». Он должен внутренне использовать «psql» при попытке импорта в обычном формате.
Прокомментировал KBSchmidt 11 января 2022 г.
В связи с этим возникает вопрос, что вообще делает "обычный" импорт, если он не импортирует "обычные" дампы sql?
Вы не можете выполнить это действие в данный момент.
Вы вошли в другую вкладку или окно. Перезагрузите, чтобы обновить сеанс. Вы вышли на другой вкладке или в другом окне. Перезагрузите, чтобы обновить сеанс.
pgAdmin использует утилиту pg_dump, чтобы обеспечить простой способ создания резервной копии в текстовом или архивном формате. Затем вы можете использовать клиентское приложение (например, psql или Инструмент запросов) для восстановления файла резервной копии в виде простого текста или использовать pg_restore в Postgres. утилита для восстановления архивной резервной копии. Утилита pg_dump должна иметь доступ для чтения ко всем объектам базы данных, резервные копии которых вы хотите создать.
Вы можете создать резервную копию отдельной таблицы, схемы или всей базы данных. Выберите имя источника резервного копирования в древовидном элементе управления pgAdmin, щелкните правой кнопкой мыши, чтобы открыть контекстное меню, и выберите Резервное копирование…, чтобы открыть Резервное копирование. диалог. Имя выбранного объекта появится в строке заголовка диалогового окна.
Используйте поля на вкладке Общие, чтобы указать параметры резервного копирования:
Введите имя файла резервной копии в поле Имя файла. При необходимости выберите значок Браузер (…) справа, чтобы перейти в каталог и выбрать файл, который будет содержать архив.
Используйте раскрывающийся список в поле Формат, чтобы выбрать формат, который лучше всего подходит для вашего приложения. У каждого формата есть свои преимущества и недостатки:
Выберите Пользовательский, чтобы создать собственный файл архива, который можно использовать с pg_restore для создания копии базы данных. Пользовательские форматы файлов архивов необходимо восстанавливать с помощью pg_restore. Этот формат дает возможность выбрать, какие объекты базы данных восстанавливать из файла резервной копии. Пользовательский формат архива рекомендуется для средних и больших баз данных, поскольку по умолчанию он сжат.
Выберите Tar, чтобы создать файл архива tar, который можно восстановить с помощью pg_restore. Формат tar не поддерживает сжатие.
Выберите Обычный, чтобы создать текстовый файл сценария. Простой текстовый файл сценария содержит операторы SQL и команды, которые можно выполнять в командной строке psql для повторного создания объектов базы данных и загрузки данных таблицы. При желании текстовый файл резервной копии можно отредактировать в текстовом редакторе перед использованием программы psql для восстановления объектов базы данных. Формат Обычный обычно рекомендуется для небольших баз данных; дампы скриптов не рекомендуются для больших двоичных объектов. Команды SQL в сценарии реконструируют базу данных до последнего сохраненного состояния базы данных. Простой текстовый скрипт можно использовать для реконструкции базы данных на другом компьютере или (с изменениями) на других архитектурах.
Выберите Каталог, чтобы создать архив в формате каталога, подходящий для использования с pg_restore. Этот формат файла создает каталог с одним файлом для каждой таблицы и BLOB-объекта, который выгружается, а также файл Table of Contents, описывающий выгруженные объекты в машиночитаемом формате, который может использовать pg_restore. читать. По умолчанию этот формат сжат.
Используйте поле Коэффициент сжатия, чтобы выбрать уровень сжатия резервной копии. Укажите нулевое значение, чтобы не использовать сжатие; укажите максимальное значение сжатия 9. Обратите внимание, что tar-архивы не поддерживают сжатие.
Используйте раскрывающийся список Кодировка, чтобы выбрать метод кодировки символов, который следует использовать для архива.
Используйте поле Количество заданий (если применимо), чтобы указать количество таблиц, которые будут создаваться одновременно в параллельном резервном копировании.
Используйте раскрывающийся список рядом с Имя роли, чтобы указать роль, которой принадлежит резервная копия.
Перейдите на вкладку Данные/объекты, чтобы продолжить. Используйте поля на вкладке Данные/объекты, чтобы указать параметры, связанные с данными или объектами pgAdmin, которые соответствуют pg_dump.
Переместите переключатели в поле "Разделы", чтобы выбрать часть объекта, для которой будет создана резервная копия.
Переместите переключатель рядом с Предварительные данные вправо, чтобы включить все элементы определения данных, не включенные в списки элементов данных или пост-данных.
Переместите переключатель рядом с Данные вправо, чтобы создать резервную копию фактических данных таблицы, содержимого больших объектов и значений последовательности.
Переместите переключатель рядом с Post-data вправо, чтобы включить определения индексов, триггеров, правил и ограничений, отличных от проверенных проверочных ограничений.
Переместите переключатели в поле Тип объектов, чтобы указать сведения о типе объектов, для которых будет выполняться резервное копирование.
Переместите переключатель рядом с пунктом Только данные вправо, чтобы ограничить резервное копирование данными.
Переместите переключатель рядом с Только схема, чтобы ограничить резервное копирование объектами базы данных на уровне схемы.
Переместите переключатель рядом с Blobs влево, чтобы исключить большие объекты из резервной копии.
Переместите переключатели в поле Не сохранять, чтобы выбрать объекты, которые не будут включены в резервную копию.
Переместите переключатель рядом с элементом Владелец вправо, чтобы исключить команды, устанавливающие права собственности на объект.
Переместите переключатель рядом с Привилегии вправо, чтобы исключить команды, создающие права доступа.
Переместите переключатель рядом с Табличное пространство вправо, чтобы исключить табличные пространства.
Переместите переключатель рядом с пунктом Незарегистрированные данные таблицы вправо, чтобы исключить содержимое незарегистрированных таблиц.
Переместите переключатель рядом с Комментарии вправо, чтобы исключить команды, устанавливающие комментарии. Примечание. Этот параметр отображается только для сервера базы данных, номер которого больше или равен 11.
Перейдите на вкладку Параметры, чтобы продолжить. Используйте эти дополнительные поля, чтобы указать такие параметры, как включение операторов ddl, подробное сообщение или использование авторизации сеанса, соответствующей параметрам pg_dump.
Переместите переключатели в поле "Запросы", чтобы указать тип операторов, которые должны быть включены в резервную копию.
Переместите переключатель рядом с Использовать вставки столбцов вправо, чтобы вывести данные в виде операторов INSERT и включить явные имена столбцов. Обратите внимание: это может замедлить восстановление из резервной копии.
Переместите переключатель рядом с пунктом Использовать команды вставки вправо, чтобы вывести данные в виде операторов INSERT, а не с помощью команды COPY. Обратите внимание: это может замедлить восстановление из резервной копии.
Переместите переключатель рядом с Включить инструкцию CREATE DATABASE вправо, чтобы включить в резервную копию команду, которая создает новую базу данных при восстановлении резервной копии.
Переместите переключатель рядом с Включить инструкцию DROP DATABASE в правильное положение, чтобы включить в резервную копию команду, которая удалит любой существующий объект базы данных с таким же именем перед повторным созданием объекта во время резервного копирования. .
Переместите переключатель рядом с Загрузить через корень раздела в правильное положение, чтобы при выводе инструкции COPY или INSERT для секционированной таблицы ориентироваться на корень иерархии секционирования, который ее содержит. чем сам раздел. Примечание. Этот параметр отображается только для сервера базы данных, номер которого больше или равен 11.
Переместите переключатели в поле "Отключить", чтобы указать тип операторов, которые следует исключить из резервной копии.
Переместите переключатель рядом с Триггер (активен при создании резервной копии только данных) вправо, чтобы включить команды, отключающие триггеры в целевой таблице во время загрузки данных.
Переместите переключатель рядом с $ quoting в правое положение, чтобы включить долларовое цитирование в телах функций; если отключено, тело функции будет заключено в кавычки с использованием стандартного строкового синтаксиса SQL.
Переместите переключатели в поле "Разное", чтобы указать различные параметры резервного копирования.
Переместите переключатель рядом с пунктом С OID вправо, чтобы включить идентификаторы объектов как часть табличных данных для каждой таблицы.
Переместите переключатель рядом с пунктом Подробные сообщения влево, чтобы указать pg_dump исключить подробные сообщения.
Переместите переключатель рядом с пунктом Заключать идентификаторы в двойные кавычки вправо, чтобы принудительно заключать в кавычки все идентификаторы.
Переместите переключатель рядом с Использовать SET SESSION AUTHORIZATION вправо, чтобы включить оператор, который будет использовать команду SET SESSION AUTHORIZATION для определения принадлежности объекта (вместо команды ALTER OWNER).
Когда вы указали детали, которые будут включены в команду pg_dump:
Нажмите кнопку Резервное копирование, чтобы создать и выполнить команду, которая создаст резервную копию на основе параметров, выбранных в диалоговом окне Резервное копирование.
Нажмите кнопку Отмена, чтобы выйти без сохранения работы.
Используйте кнопку "Остановить процесс", чтобы остановить процесс резервного копирования.
Если резервное копирование выполнено успешно, всплывающее окно подтвердит успех. Нажмите Подробнее во всплывающем окне, чтобы запустить Process Watcher. Наблюдатель за процессами регистрирует все действия, связанные с резервным копированием, и предоставляет дополнительную информацию для устранения неполадок.
Если резервное копирование завершилось неудачно, вы можете просмотреть сообщения об ошибках, возвращаемые командой резервного копирования, в Process Watcher.
Если вы используете pgAdmin в режиме сервера, вы можете щелкнуть значок в окне наблюдателя за процессами, чтобы открыть расположение файла в диспетчере хранилища. Вы можете использовать Storage Manager для загрузки файла резервной копии на клиентский компьютер.
Резервное копирование и восстановление базы данных PostgreSQL — важная задача любого системного администратора. К счастью, существуют встроенные утилиты pg_dump и pg_restore, облегчающие выполнение этих задач.
Ищете простой сервис для управления резервными копиями PostgreSQL?
→ Попробуйте SimpleBackups бесплатно
Оглавление
С помощью этих утилит администраторы могут создавать полную, добавочную или непрерывную резервную копию локально или удаленно.
PostgreSQL – это широко используемая система реляционных баз данных. Система с открытым исходным кодом предлагает широкий набор инструментов для быстрого выполнения задач.
Чтобы помочь вам лучше понять эти процессы, мы расскажем, что они из себя представляют, и рассмотрим несколько примеров.
Важно отметить, что выполнение этих команд предполагает, что у вас уже есть сервер, работающий под управлением операционной системы Linux, и установлен PostgreSQL. На вашем сервере также должен быть установлен пароль root.
Не хотите поддерживать сценарии резервного копирования?
Попробовать SimpleBackups сейчас →
Команда pg_dump
Команда pg_dump извлекает базу данных PostgreSQL в файл сценария или другой архивный файл. Эта утилита предназначена для резервного копирования баз данных. Утилита делает согласованные резервные копии, даже если база данных используется одновременно. Читатели, писатели и другие пользователи не будут заблокированы в использовании базы данных при использовании pg_dump .
Будет создан дамп только одной базы данных. Если необходимо создать дамп кластера баз данных, прокрутите вниз до команды pg_dumpall.
Вывод pg _ dump
Выходными файлами являются либо сценарии, либо архивные файлы. Дамп скрипта — это обычный текстовый файл, содержащий команды SQL, которые могут восстановить базу данных до точного состояния, в котором она была при сохранении. Передача файла в psql восстановит эти сценарии. Файлы сценариев работают с другими базами данных и могут использоваться на разных машинах и архитектурах.
Несколько изменений в параметрах даже позволяют использовать этот тип файлов с другими продуктами баз данных SQL.
Форматы архивных файлов не столь универсальны и должны использоваться pg_restore для возврата базы данных. Хотя этот формат и не является общим, он позволяет пользователю выбирать, что восстанавливать. Пользователь может даже изменить порядок элементов перед их восстановлением, что делает этот формат идеальным для переноса базы данных между архитектурами.
Существует также гибкость, когда речь идет об архивировании и передаче информации. Использование формата архива с помощью pg_dump и возврат его с помощью pg_restore позволяет выполнять более конкретное восстановление. pg_dump создаст резервную копию всей базы данных, затем pg_restore выберет, какие части базы данных следует архивировать или восстанавливать.
Использование форматов выходных файлов, таких как "пользовательский" и "каталог", обеспечивает наибольшую гибкость. Эти форматы поддерживают переупорядочивание архивных элементов, параллельное восстановление и автоматическое сжатие. Если вы хотите запускать параллельные дампы, то единственным выбором будет формат "directory".
Сборщик статистики PostgreSQL
Если программа pg_dump была запущена, обязательно просмотрите вывод любых стандартных ошибок, которые будут напечатаны.
Запущенный pg_dump будет внутренне выполнять операторы " select ". Вы должны будете иметь возможность выбирать информацию из базы данных с помощью psql, чтобы операции работали правильно. Любые внешние переменные библиотеки, такие как libpq, будут по-прежнему включены при запуске утилиты.
Сборщик статистики отвечает за сбор данных об активности базы данных для pg_dump . Если вы не хотите использовать это, вы можете использовать команду «изменить пользователя» или перейти к «pgoptions» и изменить параметр track _ counts.
Стандартная команда будет иметь следующий формат:
Postgresql имеет онлайн-документацию, в которой описаны все параметры, доступные для pg_dump, в том числе способы их написания и назначение этих параметров.
См. пример дампа pg_
Создание дампа базы данных с именемhazarddbв файл SQL:
Резервное копирование опасной базы данных в формате tar:
При сохранении опасной базы данных в формате каталога выполняется следующая команда:
Большие базы данных, которым нужны файлы меньшего формата, могут использовать утилиту с инструментом сжатия, например gzip, при выполнении резервного копирования.
Перезагрузка скрипта во вновь созданную базу данных с именем nowdb :
Сброс выбранных таблиц путем ввода условий. Здесь команда выведет все таблицы, начинающиеся с «sam» в схеме «ple», но исключит таблицу «samson».
Краткое описание команды pg _ restore
Команда pg_restore берет архивный файл, созданный командой pg_dump, и восстанавливает выбранную базу данных PostgreSQL.
Когда pg_dump используется с одним из непростых текстовых форматов, команда восстановления восстановит базу данных. Утилита знает, как выдавать команды в правильном порядке, чтобы убедиться, что база данных восстановлена в точном состоянии, в котором она находилась на момент сохранения.
Поскольку этот формат предполагается переносимым между архитектурами, пользователь может выбрать, что восстанавливать и в каком порядке.
Варианты того, что можно сделать с данными, зависят от того, как был сгенерирован исходный файл. Команда не может регенерировать данные, которых нет, и не может изменить характер команд, используемых для создания файла.
pg _ режимы восстановления
Утилита использует два режима. Если пользователь указывает имя базы данных, pg_restore подключается к этой базе данных и восстанавливает содержимое непосредственно в ней. Если имя не указано, процесс создает сценарий с командами SQL для перестроения базы данных.
Для второго варианта результатом будет файл со стандартным выводом, который будет похож на стандартный текстовый скрипт, который сгенерирует pg_dump.
Структура и формат команды
Команда будет иметь следующий формат:
Полный список параметров для этих команд можно найти в документации PostgreSQL.
См. пример восстановления pg_
Восстановление резервной копии с именем файла .tar требует, чтобы пользователь учитывал, существует ли уже база данных и каков формат резервной копии.
Если база данных dbcooper уже существует, следующая команда восстановит ее:
Если база данных еще не существует, изменение команды, как показано ниже, восстановит ее:
Следующая команда восстановит резервную копию из файла резервной копии, т. е. имени: back_it_on_up.sql
Краткое описание команды pg _ dumpall
Утилита PostgreSQL извлекает кластер базы данных в файл сценария
С помощью pg_dumpall одна команда позволяет пользователю создать резервную копию всего кластера баз данных и вывести их в один файл сценария. Этот файл работает так же, как и команда pg_dump, то есть сценарий будет использовать команды SQL для восстановления всех баз данных.
Фактически эта команда вызовет pg_dump для каждой базы данных в кластере. Некоторые части архитектуры, такие как глобальные объекты, также сохраняются. Роли базы данных, табличные пространства и любая информация, общая для всех баз данных, будет сохранена с помощью pg_dumpall , чего pg_dump никогда не коснется.
Использование pg_dumpall
Чтобы эффективно использовать этот инструмент, вам, скорее всего, придется войти в базу данных как суперпользователь, чтобы получить полный дамп. Права суперпользователя также будут полезны для выполнения сохраненного сценария, чтобы вы могли добавлять роли и создавать базы данных.
В конечном файле будет использоваться стандартный вывод сценария SQL. Запуск этой утилиты потребует подключения к серверу PostgreSQL один раз для каждой базы данных при выполнении дампа. Если вы используете аутентификацию по паролю, вам придется указать пароль для каждой базы данных в кластере.
Многие всплывающие сообщения об ошибках относятся к pg_dump, поскольку эта утилита запускается внутри команды. Какие-то ошибки неизбежно всплывут, но ничего не значат. Сценарий "создаст роли" для каждой роли, существующей в используемом вами кластере.
Роли, такие как суперпользователь начальной загрузки, скорее всего, получат сообщение об ошибке "роль уже существует".
Использование параметра --clean
Базы данных сохранят все предыдущее содержимое и свойства уровня базы данных. Если вы хотите быть уверены, что базы данных будут восстановлены в том виде, в каком они есть, может оказаться полезным использование параметра --clean.
Эта опция разрешает сценарию воссоздавать встроенные базы данных и гарантирует, что каждая база данных будет иметь те же свойства, что и ранее в кластере. Использование этого параметра отбрасывает некоторые ошибки о несуществующих объектах, но эти ошибки можно игнорировать.
Использование параметра --if-exists
Добавление параметра --if-exists устраняет эти ошибки, если они слишком отвлекают внимание.
Выполнение "анализа" для каждой базы данных даст оптимизатору полезную статистику, позволяющую определить, как прошло восстановление.
Структура и формат команды
Команда утилиты pg_dumpall будет иметь следующую структуру:
pg_dumpall [опция-подключения…] [опция…]
PostgreSQL имеет обширную документацию, которая охватывает все варианты использования этого инструмента, если вы ищете что-то конкретное.
См. пример pg _ dumpall
Следующая команда создаст дамп всех баз данных:
Эта команда перезагрузит базы данных из файла:
Эта команда создаст дамп всех файлов и создаст один файл с именем back_it_on_up.sql
С помощью этих утилит многие функции резервного копирования для PostgreSQL могут быть реализованы без особых усилий.
Правильная команда зависит от того, хочет ли пользователь создать дамп или восстановить файл и хочет ли он создать резервную копию всего или только одной базы данных. Добавление параметров, доступных для системы базы данных, позволяет пользователю настроить процесс резервного копирования и внешний вид конечного результата.
Автоматизированное резервное копирование PostgreSQL как услуга
SimpleBackups – это инструмент автоматизации резервного копирования баз данных и веб-сайтов, который разгружает все задачи резервного копирования.
Он автоматизирует резервное копирование PostgreSQL и отправляет их в выбранное вами облачное хранилище.
SimpleBackups поможет вам убедиться, что ваши резервные копии работают правильно, вовремя, безопасно и со всеми прибамбасами.
Читайте также: