Настройка резервного копирования Windows postgresql

Обновлено: 21.11.2024

Вывод: в этом руководстве вы узнаете, как создавать резервные копии баз данных PostgreSQL с помощью инструментов pg_dump и pg_dumpall.

Резервное копирование баз данных — одна из самых важных задач администрирования баз данных. Перед резервным копированием баз данных следует рассмотреть следующие типы резервных копий:

  • Полные/частичные базы данных
  • И данные, и структуры, или только структуры
  • Моментальное восстановление
  • Восстановить производительность

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

Для тех, кто хочет увидеть команду для быстрого резервного копирования баз данных, вот она:

В следующем разделе вы шаг за шагом узнаете, как создать резервную копию одной базы данных, всех баз данных и только объектов базы данных.

Как сделать резервную копию одной базы данных

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

Сначала перейдите в папку bin PostgreSQL:

Во-вторых, запустите программу pg_dump и используйте следующие параметры для резервного копирования базы данных dvdrental в файл dvdrental.tar в папке c:\pgbackup\.

Давайте рассмотрим варианты более подробно.

-U postgres: указывает пользователя для подключения к серверу базы данных PostgreSQL. В этом примере мы использовали postgres.

-W : заставляет pg_dump запрашивать пароль перед подключением к серверу базы данных PostgreSQL. После того, как вы нажмете Enter, pg_dump запросит пароль пользователя postgres.

-F : указывает формат выходного файла, который может быть одним из следующих:

  • c : формат файла архива пользовательского формата.
  • d : архив в формате каталога
  • т : смола
  • p : текстовый файл сценария SQL).

В этом примере мы используем -F t, чтобы указать выходной файл как файл tar.

dvdrental: имя базы данных, резервную копию которой вы хотите создать.

> c:\pgbackup\dvdrental.tar — путь к выходному файлу резервной копии.

Как сделать резервную копию всех баз данных

Чтобы создать резервную копию всех баз данных, вы можете последовательно или параллельно запустить отдельную команду pg_dump, указанную выше, если хотите ускорить процесс резервного копирования.

  • Во-первых, из psql используйте команду \list, чтобы вывести список всех доступных баз данных в вашем кластере
  • Во-вторых, создайте резервную копию каждой отдельной базы данных с помощью программы pg_dump, как описано в предыдущем разделе.

Помимо программы pg_dump, PostgreSQL также предоставляет вам инструмент pg_dumpall, который позволяет создавать резервные копии всех баз данных одновременно. Однако использовать этот инструмент не рекомендуется по следующим причинам:

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

Если у вас есть веская причина использовать pg_dumpall для резервного копирования всех баз данных, выполните следующую команду:

Параметры программы pg_dumpall аналогичны параметрам программы pg_dump. В этой команде отсутствует параметр -W, чтобы не вводить пароль для каждой отдельной базы данных.

Как создать резервную копию определений объектов базы данных

Иногда вам нужно создать резервную копию только определений объектов базы данных, а не данных. Это полезно на этапе тестирования, когда вы не хотите перемещать тестовые данные в работающую систему.

Для резервного копирования объектов во всех базах данных, включая роли, табличные пространства, базы данных, схемы, таблицы, индексы, триггеры, функции, ограничения, представления, права собственности и привилегии, используйте следующую команду:

В производственной среде, независимо от того, насколько велика или мала ваша база данных PostgreSQL, регулярный возврат является важным аспектом управления базой данных. В этой статье вы узнаете, как сделать резервную копию и восстановить базу данных PostgreSQL.

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

Приступим…

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

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

Для резервного копирования базы данных PostgreSQL сначала войдите на сервер базы данных, затем переключитесь на учетную запись пользователя Postgres и запустите pg_dump следующим образом (замените tecmintdb на имя базы данных, резервную копию которой вы хотите создать). По умолчанию выходным форматом является простой текстовый файл сценария SQL.

pg_dump поддерживает и другие выходные форматы.Вы можете указать выходной формат с помощью параметра -F, где c означает файл архива пользовательского формата, d означает архив формата каталога, а t означает файл архива формата tar: все форматы подходят для ввода в pg_restore.

Чтобы вывести выходные данные в формате вывода каталога, используйте флаг -f (который используется для указания выходного файла), чтобы указать целевой каталог вместо файла. Каталог, который будет создан pg_dump, не должен существовать.

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

Вы можете восстановить дамп с помощью psql, как показано ниже.

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

Для восстановления базы данных PostgreSQL можно использовать утилиты psql или pg_restore. psql используется для восстановления текстовых файлов, созданных pg_dump, тогда как pg_restore используется для восстановления базы данных PostgreSQL из архива, созданного pg_dump, в одном из форматов, отличных от простого текста (пользовательский, tar или каталог).

Вот пример того, как восстановить дамп обычного текстового файла:

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

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

Если база данных, которую вы создаете резервную копию, велика и вы хотите создать выходной файл довольно меньшего размера, вы можете запустить сжатый дамп, в котором вам нужно отфильтровать вывод pg_dump с помощью инструмента сжатия, такого как gzip, или любой из ваших избранное:

Если база данных очень велика, вы можете создать дамп параллельно, одновременно выгружая таблицы number_of_jobs с помощью флага -j, как показано ниже.

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

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

pg_dump — это обычный клиентский инструмент PostgreSQL, он поддерживает операции на удаленных серверах баз данных. Чтобы указать удаленный сервер базы данных, с которым pg_dump должен связаться, используйте параметры командной строки -h для указания удаленного хоста, а -p указывает удаленный порт, который прослушивает сервер базы данных. Кроме того, используйте флаг -U, чтобы указать имя роли базы данных для подключения.

Не забудьте заменить 10.10.20.10 и 5432 и tecmintdb IP-адресом или именем удаленного хоста, портом базы данных и именем базы данных соответственно.

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

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

Автоматическое резервное копирование базы данных PostgreSQL с помощью задания Cron

Вы можете выполнять резервное копирование через регулярные промежутки времени, используя задания cron. Задания Cron часто используются для планирования выполнения различных задач на сервере.

Вы можете настроить задание cron для автоматического резервного копирования базы данных PostgreSQL следующим образом. Обратите внимание, что вам необходимо выполнить следующие команды от имени суперпользователя PostgreSQL:

Затем выполните следующую команду, чтобы отредактировать crontab и добавить новое задание cron.

Скопируйте и вставьте следующую строку в конец crontab. Вы можете использовать любой из описанных выше форматов дампа.

Сохраните файл и выйдите.

Служба cron автоматически запустит это новое задание без перезапуска. И это задание cron будет запускаться каждый день в полночь, это минимальное решение задачи резервного копирования.

Дополнительную информацию о планировании заданий cron см. в статье Создание заданий Cron и управление ими в Linux

Пока все! Рекомендуется сделать резервное копирование данных частью вашей процедуры управления базой данных. Чтобы связаться с нами по любым вопросам или комментариям, используйте форму обратной связи ниже. Дополнительные сведения см. на справочных страницах pg_dump и pg_restore.

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Postgres предлагает три принципиально разных подхода к резервному копированию данных:

  • Дамп SQL (или логический)
  • Резервное копирование на уровне файловой системы (или физическое)
  • Непрерывное архивирование (или восстановление на определенный момент времени)

В этой статье описывается, как создавать резервные копии баз данных PostgreSQL в Windows. Если вам нужно сделать резервную копию баз данных PostgreSQL в Linux, рекомендуем вам ознакомиться с этой статьей: Как автоматизировать резервное копирование баз данных PostgreSQL в Linux.

Теперь давайте обсудим эти три метода один за другим, но если вы предпочитаете инструменты с графическим интерфейсом, вы можете использовать наше бесплатное приложение для создания резервных копий базы данных, которое, по сути, является мощной оболочкой для pg_dump, которая создает дампы SQL.

Как создать файл дампа PostgreSQL

В Postgres для извлечения базы данных в файл сценария или другой архивный файл используется утилита pg_dump. Важным преимуществом этой утилиты является то, что вы можете восстанавливать ее дампы на более новых версиях PostgreSQL или на машинах с другой архитектурой. Другие методы резервного копирования, такие как резервное копирование на уровне файлов и непрерывное архивирование, привязаны к конкретной версии и архитектуре сервера.

Самое простое использование этой команды:

Эта команда создает файл SQL, содержащий команды, необходимые для воссоздания базы данных в том же состоянии, в котором она была во время резервного копирования.

Если вы получили сообщение об ошибке «pg_dump не распознается как внутренняя или внешняя команда», добавьте путь к каталогу bin PostgreSQL в переменную среды PATH (в моем случае это «C:\Program Files\PostgreSQL\11\bin »). Вариант изменения переменной окружения — запуск команды с полным путем, например:

Эта команда должна быть запущена пользователем с правами на чтение всей информации базы данных. Если у вашего пользователя Windows недостаточно прав на вашу базу данных, вы можете запустить эту команду от пользователя Postgres:

Пакетный запуск pg_dump (автоматический)

Если вы планируете автоматически создавать резервные копии базы данных, вам может потребоваться избавиться от запроса пароля. Это будет полезно, если вы запускаете резервное копирование в пакетном режиме или сценариях, где нет пользователя для ввода пароля. Вы можете сделать это, назначив пароль переменной PGPASSWORD:

В качестве альтернативы, если вы не хотите хранить пароль в пакетном файле, вы можете поместить учетные данные в %APPDATA%\postgresql\pgpass.conf в следующем формате:

Звездочки могут заменять имя хоста и базу данных.

Следующие команды создадут каталог и добавят запись в файл одним пакетом:

Резервное копирование удаленного сервера

Если вам нужно создать резервную копию удаленного сервера, добавьте параметры -h и -p:

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

Резервное копирование одной таблицы

Чтобы создать дамп одной таблицы, используйте параметр -t:

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

В старых (до 8.2) версиях PostgreSQL параметр -t имя_таблицы выводил все таблицы с указанным именем. Современные движки Postgres сбрасывают все видимое в ваш путь поиска по умолчанию. Если вы хотите вернуться к старому поведению, вы можете написать -t «*.table_name».

Кроме того, вы должны написать что-то вроде -t имя_схемы.имя_таблицы, чтобы выбрать таблицу определенной схемы вместо старых параметров, таких как -n имя_схемы -t имя_таблицы.

Сжатие сценария резервного копирования

Если вам нужно сжать выходной файл, вы должны использовать параметр -Z:

Эта команда вызывает сжатие всего выходного файла, как если бы он был передан через gzip с уровнем сжатия, равным 6 (он может варьироваться от 0 до 6).

Еще один способ получить файл резервной копии меньшего размера — использовать пользовательский формат файла для резервной копии.

Как восстановить файл дампа PostgreSQL

Поскольку текстовые файлы, сгенерированные pg_dump, содержат набор команд SQL, их можно передать утилите psql. Сама база данных не будет создана psql, поэтому вы должны сначала создать ее самостоятельно из template0. Итак, общая форма команды для восстановления дампа:

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

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

Если вам нужно восстановить базу данных на удаленном сервере, вы можете подключить к ней psql, используя опции -h и -p:

Возможен дамп базы данных напрямую с одного сервера на другой благодаря возможности pg_dump и psql записывать или читать из каналов, например:

Эта команда создаст дубликат базы данных:

Обработка ошибок

Если возникает ошибка SQL, сценарий psql продолжает выполняться; это по умолчанию.Такое поведение можно изменить, запустив psql с переменной ON_ERROR_STOP, а в случае возникновения ошибки SQL выполнить выход из psql со статусом выхода 3.

В случае ошибки вы получаете частично восстановленную базу данных. Чтобы избежать этого и завершить восстановление, либо полностью успешное, либо с полным откатом, настройте восстановление всего дампа как одну транзакцию. Для этого используйте опцию -1 для psql:

Как сделать резервную копию нескольких баз данных PostgreSQL одновременно

Pg_dump может создавать дамп только одной базы данных за раз, и информация о табличных пространствах или ролях не будет включена в этот дамп. Это происходит потому, что они не для каждой базы данных, а для всего кластера. Существует программа pg_dumpall, поддерживающая удобный сброс всего содержимого кластера базы данных. Он сохраняет определения ролей и табличных пространств (данные всего кластера) и выполняет резервное копирование каждой базы данных в данном кластере. pg_dumpall работает следующим образом: он выдает команды для повторного создания табличных пространств, пустых баз данных и ролей, а затем вызывает pg_dump для каждой базы данных. Хотя каждая база данных будет внутренне непротиворечивой, моментальные снимки разных баз данных могут быть не полностью синхронизированы.

Основные способы использования этой команды следующие:

Psql и параметр -f можно использовать для восстановления полученного дампа:

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

Как сделать резервную копию PostgreSQL в архивный файл произвольного формата

Хотя обычный текстовый формат, созданный pg_dump, является естественным и простым, в то же время он не очень гибкий, поскольку может создавать огромные выходные файлы. В качестве альтернативы PostgreSQL имеет небольшую приятную функцию, которая позволяет пользователям экспортировать так называемый «пользовательский формат», формат, который архивируется по умолчанию (без дополнительных действий) и обеспечивает значительную гибкость, особенно при повторном импорте.

Чтобы создать файл резервной копии в пользовательском формате дампа, необходимо добавить параметр -Fc:

Этот формат файла необходимо использовать с pg_restore для перестроения базы данных. Это позволяет pg_restore выбирать, что восстанавливать, или даже переупорядочивать элементы перед восстановлением. Форматы архивных файлов предназначены для передачи между архитектурами.

Чтобы восстановить пользовательский формат файла, используйте следующую команду:

Используя параметр -j, вы можете значительно сократить время восстановления большой базы данных на сервер, работающий на многопроцессорной машине. Это достигается за счет выполнения самых трудоемких частей pg_restore, а именно тех, которые загружают данные, создают ограничения или создают индексы с помощью нескольких одновременных задач. Каждое задание представляет один поток или один процесс; он использует отдельное соединение с сервером и зависит от операционной системы. Например, эта команда восстановит базу данных в четырех одновременных заданиях:

Используйте следующее, чтобы удалить базу данных и воссоздать ее из дампа:

С параметром -C данные всегда восстанавливаются по имени базы данных, указанному в файле дампа.

Выполните следующее, чтобы перезагрузить дамп в новую базу данных:

Другие форматы резервных копий PostgreSQL

pg_dump поддерживает два других формата выходных файлов: каталог и tar. Оба они восстанавливаются с помощью утилиты pg_restore.

Чтобы создать архив в формате каталога, необходимо использовать параметр -Fd:

Будет создан каталог с одним файлом для каждой таблицы и дампа большого двоичного объекта, а также так называемый файл Table of Contents, описывающий объекты дампа в машиночитаемом формате, который может прочитать pg_restore. Стандартные инструменты Unix могут использоваться для управления архивом в формате каталога; например, инструмент gzip можно использовать для сжатия файлов в несжатом архиве. Этот формат поддерживает параллельные дампы, сжатые по умолчанию.

Формат tar совместим с форматом каталога: действительный архив в формате каталога создается при извлечении архива в формате tar. Однако формат tar не поддерживает сжатие. Кроме того, при использовании формата tar нельзя изменить относительный порядок элементов данных таблицы в процессе восстановления.

Чтобы создать tar-файл, используйте параметр -Ft:

Как создать резервную копию определений объектов базы данных

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

Используйте следующую команду для резервного копирования всех объектов во всех базах данных, включая роли, базы данных, табличные пространства, таблицы, схемы, индексы, функции, триггеры, ограничения, привилегии, представления и права собственности:

Используйте следующую команду для резервного копирования только определения роли:

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

Резервное копирование на уровне файловой системы

Альтернативная стратегия резервного копирования — прямое копирование файлов, которые PostgreSQL использует для хранения данных в базе данных. Можно использовать любой метод резервного копирования файловой системы, например:

Затем вы сможете запустить новый экземпляр сервера с тем же именем выпуска в этой папке (обратите внимание, что вы должны запустить эту команду на уровне администратора):

Этот метод дает вам следующие преимущества:

  • Быстрее, чем логическое резервное копирование (дамп SQL), так же быстро, как простое копирование файлов
  • Резервное копирование всего экземпляра (кластера)
  • Не вызывает конфликтов за блокировку и не зависит от снятия блокировки другими соединениями.
  • Процесс восстановления практически мгновенный — нет необходимости выполнять операторы SQL для возврата данных

и в то же время предполагает некоторые ограничения:

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

Непрерывное архивирование

Метод непрерывного архивирования сочетает резервное копирование на уровне файловой системы с резервным копированием файлов WAL (в котором сохраняются все изменения, внесенные в файлы данных базы данных). Этот способ сложнее в администрировании, чем любой из предыдущих подходов, но он имеет ряд существенных преимуществ:

  • В качестве отправной точки нет необходимости иметь идеально непротиворечивую резервную копию файловой системы. Воспроизведение журнала исправит любое внутреннее несоответствие в резервной копии (это не имеет существенного отличия от того, что происходит во время восстановления после сбоя). Таким образом, вам не нужно создавать снимок файловой системы, достаточно tar или аналогичного средства архивации.
  • Непрерывного резервного копирования можно добиться, просто продолжая архивировать файлы WAL. Это особенно ценно для больших баз данных, где не всегда удобно выполнять полное резервное копирование.
  • Нет необходимости воспроизводить записи WAL до конца. Вы можете остановить воспроизведение в любой момент и получить непротиворечивый снимок существующей базы данных. Таким образом, этот метод поддерживает так называемое «восстановление на момент времени»: базу данных можно восстановить в ее состояние в любое время с момента создания резервной копии базы данных.
  • Если вы постоянно загружаете последовательность файлов WAL на другую машину, на которую был загружен один и тот же файл базовой резервной копии, у вас будет система горячего резерва: вторая машина может быть запущена в любое время с почти текущей копией базу данных.

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

Мы не будем описывать все процессы настройки непрерывного архивирования, так как они исчерпывающе описаны в документации.

Как сделать резервную копию базы данных PostgreSQL с помощью SQLBackupAndFTP

Если вы предпочитаете графический интерфейс для управления резервными копиями, вы можете попробовать нашу бесплатную утилиту под названием SQLBackupAndFTP. Внутреннее использование pg_dump повышает удобство использования и предоставляет множество других полезных функций, таких как:

  • запуск резервного копирования по расписанию
  • уведомлять вас, если что-то пошло не так
  • отправить резервную копию в одну из известных облачных служб хранения (например, Dropbox, Google Drive, Amazon S3 и т. д.)
  • шифрование архива
  • резервное копирование файлов
  • поддержка баз данных SQL Server, My SQL и Azure

Начать работу с SQLBackupAndFTP довольно просто. После загрузки и установки подключите его к своей базе данных PostgreSQL, нажав кнопку «Gear» в разделе «Connect to Database Server». В появившемся всплывающем окне выберите PostgreSQL (TCP/IP) в качестве типа сервера, затем укажите логин/пароль. После этого нажмите «Проверить соединение», чтобы проверить, все ли в порядке, и нажмите «Сохранить и закрыть», чтобы применить все настройки:

Затем вам нужно выбрать базы данных, для которых вы хотите выполнить резервное копирование, нажав на шестеренку в разделе «Выбрать базы данных»:

После этого выберите место назначения, куда будут отправляться резервные копии базы данных PostgreSQL, нажав значок «плюс» в разделе «Хранить резервные копии в выбранных местах назначения».

Вы можете отправить резервную копию в следующие облачные службы хранения: локальная или сетевая папка, FTP-сервер, Amazon S3, Dropbox, Google Диск, OneDrive, Box, хранилище Azure, OneDrive, для бизнеса, Backblaze B2, Яндекс Диск:< /p>

Если вы хотите запускать резервное копирование по расписанию, вам необходимо настроить план резервного копирования. Это можно сделать следующим образом: включите переключатель рядом с заголовком «Расписание резервного копирования» и нажмите кнопку «Шестеренка», чтобы получить доступ к расширенным настройкам расписания резервного копирования:

Это все. Если вам нужно создать резервную копию прямо сейчас, нажмите «Выполнить сейчас»:

При желании, если вам нужно применить некоторые параметры pg_dump, вы можете прокрутить вниз, нажать «Дополнительные настройки…», а затем снова «Дополнительные настройки…» в разделе «Параметры резервного копирования». Это даст вам следующее окно с несколькими быстрыми опциями и возможностью добавить свои собственные:

Как восстановить базу данных PostgreSQL с помощью SQLBackupAndFTP

Существует два способа восстановить ранее созданную резервную копию с помощью SQLBackupAndFTP:

  • Из панели «История и восстановление», если резервная копия была создана с помощью SQLBackupAndFTP, если резервная копия была создана другими средствами, скорее всего, непосредственно с помощью утилиты pg_dump

В первом случае вам нужно найти резервную копию, которую вы хотите восстановить, в разделе «История и восстановление» главного окна, щелкнуть значок с тремя точками и выбрать «Восстановить из резервной копии». Вы увидите всплывающее окно, в котором вам нужно выбрать, какую базу данных из какого места вы хотите восстановить, на следующем снимке экрана есть только один вариант: на последнем шаге у вас будет возможность изменить имя базы данных (если вы не хотите перезаписывать существующую базу данных) и укажите пароль архива (если вы его задали при создании архива):

Как восстановить произвольный дамп SQL с помощью SQLBackupAndFTP

Если у вас есть произвольный дамп резервной копии базы данных PostgreSQL, который вы хотите восстановить на этом компьютере, вы можете воспользоваться «Заданием восстановления», доступным в SQLBackupAndFTP. Это задание берет дамп SQL из облачного хранилища и восстанавливает его в выбранной базе данных. Процедура настройки такого задания аналогична созданию резервных копий.

Создайте «Задание восстановления», нажав «Задание» > «Добавить новое задание восстановления»:

Выберите место, где находится ваша резервная копия:

В разделе «Хранить базы данных для восстановления» выберите резервную копию, которую нужно восстановить:

Подключитесь к серверу PostgreSQL в разделе «Восстановить на сервер базы данных»:

Теперь, когда вся подготовка завершена, восстановите резервную копию, нажав кнопку "Выполнить сейчас":

4 комментария

Гашакамба
19 февраля 2020 г., 4:06

Это утверждение «psql имя_базы_данных Alex
3 марта 2020 г., 2:13

Можно попробовать следующий оператор cmd.exe /c «psql имя_базы_данных Дмитрий
24 декабря 2020 г., 6:13

Есть ли параметр графического интерфейса для использования параметров pg_restore?

Алекс
24 декабря 2020 г., 9:08

Извините, но пока нет возможности это сделать, возможно, эта возможность будет добавлена ​​позже. Не могли бы вы сообщить нам, какие параметры вы хотели бы установить в процессе восстановления?

Сегодня в этом руководстве по PostgreSQL мы узнаем о том, «Как сделать резервную копию базы данных PostgreSQL». Это распространенная проблема, с которой сталкиваются люди. Здесь мы увидим различные способы резервного копирования базы данных PostgreSQL.

  • Как сделать резервную копию базы данных postgresql в Windows
  • Как сделать резервную копию базы данных postgresql в Linux
  • Как сделать резервную копию базы данных postgresql в Ubuntu
  • Как сделать резервную копию базы данных postgresql с помощью pgadmin 4
  • Как сделать резервную копию базы данных postgresql автоматически
  • Как создать резервную копию базы данных postgresql с помощью pg_dump
  • Как сделать резервную копию командной строки базы данных postgresql
  • Как сделать резервную копию базы данных postgresql с помощью pgadmin 3

Иногда наш компьютер выходит из строя, или нам нужно перенести ваши данные с одного компьютера на другой, или, может быть, ваш компьютер поврежден, например, мы хотим переместить базу данных из США в Канаду. Наши важные данные будут потеряны, поэтому, если у нас есть резервная копия, мы можем восстановить эти данные.

Как сделать резервную копию базы данных postgresql в Windows 10

  • В ОС Windows, чтобы получить резервную копию вашей базы данных PostgreSQL, вам нужно знать об утилите в Postgresql, которая называется pg_dump.
  • pg_dump — это утилита, и ее работа заключается в извлечении базы данных в текстовый файл с помощью команд SQL, которые передаются в любую другую версию Postgres или другую конфигурацию компьютеров, чтобы восстановить базу данных в том же состоянии, в котором она была создан.
  • Пришло время поработать над некоторыми примерами.

Мы также можем указать имя пользователя и пароль, как показано ниже:

если вы хотите использовать другой сервер базы данных, используйте параметры командной строки -h (для хоста) и -p (для порта этого хоста) с pd_dump, здесь хостом по умолчанию является локальный хост.

  • pg_dump: утилита для резервного копирования базы данных
  • dbname : имя базы данных, резервную копию которой вы хотите создать.
  • outfile: текстовый/скриптовый файл, созданный программой pg_dump или файлом резервной копии.
  1. В Windows нажмите клавишу Windows + R, введите cmd и нажмите клавишу ввода.
  2. В командной строке введите psql -U имя пользователя. Если будет запрошен пароль, введите его.
  3. Чтобы проверить доступные базы данных, введите \l

как сделать резервную копию базы данных PostgreSQL в Windows 10

<р>4. Предположим, вы хотите сделать резервную копию базы данных dvdrental, введите следующую команду и замените параметр в соответствии с вашим именем пользователя, базой данных и путем.

как сделать резервную копию базы данных PostgreSQL в Windows 10

<р>5. Перейдите в указанный вами каталог для вывода файла резервной копии.

как сделать резервную копию базы данных PostgreSQL в Windows 10

  • Теперь вы успешно создали резервную копию базы данных PostgreSQL.
  • Помните, что вы всегда можете изменить выходной формат файла резервной копии. Здесь у вас есть файл резервной копии в формате SQL.
  • Поэтому, если вам нужна резервная копия в другом формате, все, что вам нужно сделать, это указать параметр -F с c для архивного файла пользовательского формата, d для архива в формате каталога и t для tar из архива.

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

Как сделать резервную копию базы данных postgresql в Ubuntu и Linux

Если вы используете Unbuntu или Linux, выполните следующие действия.

  1. откройте свой терминал и переключитесь на учетную запись, используя данную команду, которую вы создали, например, пользователем по умолчанию является postgres.

Как сделать резервную копию базы данных PostgreSQL в Ubuntu

<р>2. Введите psql, чтобы получить доступ к приглашению Postgresql, отсюда вы можете получить доступ к базам данных и ввести \l, чтобы отобразить доступные базы данных, найти базу данных, для которой вы хотите сделать резервную копию.

Как сделать резервную копию базы данных PostgreSQL в Ubuntu

<р>3. Теперь посмотрите на доступные базы данных. Предположим, вы хотите сделать резервную копию базы данных Postgres из вышеуказанных баз данных.

  • Все, что вам нужно сделать, это ввести текст.
  • Я объяснил эту команду в первом подразделе «Как создать резервную копию базы данных postgresql в Windows 10» этого руководства. Прочтите об этом, а затем вернитесь сюда.
  • Пожалуйста, выйдите из приглашения postgresql, введя exit или войдите в учетную запись postgrsql, используя «sudo -i -u postgres».
  • Создайте резервную копию базы данных postgres и введите команду ls для поиска созданной резервной копии базы данных в текущем каталоге.

Как сделать резервную копию базы данных PostgreSQL в Ubuntu

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

Как сделать резервную копию базы данных postgresql с помощью pgadmin 3 и 4

  • В PostgreSQL легко создать резервную копию с помощью pgadmin. Как я уже говорил ранее, postgresql использует утилиту pg_dump для резервного копирования базы данных в другом формате, независимо от того, используете ли вы командную строку, терминал Linux или графический пользовательский интерфейс pgadmin (GUI). .
  • Во всех отношениях, явно или неявно, он использует pg_dump.

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

  1. откройте pgadmin с помощью панели поиска Windows или Linux.
<р>2. Введите пароль, если он будет запрошен.

Как сделать резервную копию базы данных PostgreSQL с помощью pgadmin 4

<р>3. Выберите базу данных, для которой вы хотите сделать резервную копию, нажмите правую кнопку и выберите опцию «Резервное копирование».

Как сделать резервную копию базы данных PostgreSQL с помощью pgadmin 4

<р>4. Диалоговое окно резервного копирования появляется после выбора параметра резервного копирования на шаге 3 выше.

Как сделать резервную копию базы данных PostgreSQL с помощью pgadmin 4

  • Имя файла: место, где вводятся путь и имя файла.
  • Формат: Postgres поддерживает множество форматов для резервного копирования баз данных, таких как пользовательский формат, формат tar, обычный формат и каталог.

Выберите пользовательский формат и нажмите «Резервное копирование».

Как сделать резервную копию базы данных PostgreSQL с помощью pgadmin 4

<р>5. Перейдите в каталог, где хранятся резервные копии, и вы получите файл в пользовательском формате.

Как сделать резервную копию базы данных PostgreSQL с помощью pgadmin 4

Вы успешно создали резервную копию.

Как сделать резервную копию базы данных postgresql автоматически

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

  • Иногда вы хотите сэкономить время и усилия или не хотите выполнять одну и ту же задачу снова и снова, например, вручную.
  • Чтобы сделать резервную копию автоматически, я объясню два способа.
  • Один из них предназначен для пользователей Windows, а второй, как можно догадаться, для Linux.

Для Windows вам нужно знать две вещи: во-первых, о пакетном сценарии, а если вы знаете о bat-файле, то полезно это знать.

Я собираюсь дать определение пакетного файла из Википедии. «Пакетный файл — это файл сценария в DOS, OS/2 и Microsoft Windows. Он состоит из серии команд, которые должны выполняться интерпретатором командной строки и храниться в текстовом файле».

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

Вторая вещь касается приложения в Windows «Планировщик заданий», и не беспокойтесь об этом, я объясню вам очень просто.

  1. Перейдите в папку, где установлен Postgresql в вашей системе C:\Program Files\PostgreSQL\13

Как сделать резервную копию базы данных PostgreSQL автоматически

<р>2. Создайте пакетный файл с помощью блокнота, откройте блокнот и напишите код, указанный ниже, в файле и сохраните имя файла с помощью postgre.bat.

Как сделать резервную копию базы данных PostgreSQL автоматически

<р>3. Теперь вы выполнили 50 % работы и сделали первый шаг.

  • Здесь я объясню вторую вещь «Планировщик заданий». Итак, «Что это?» Планировщик задач – это инструмент или утилита, которую можно использовать для создания действий или задач, которые будут запускаться автоматически при выполнении определенных условий.
  • Как правило, он используется для целей обслуживания, таких как очистка диска, обновления, резервное копирование и т. д.
  • Итак, мы берем файл postgres.bat и планируем резервное копирование базы данных с помощью планировщика заданий. Если вы хотите выполнять резервное копирование каждое утро, вечер и ночь, вы можете запланировать его в соответствии со своими потребностями.
<р>4. Откройте планировщик заданий, нажмите клавиши Windows + R, введите в поле taskschd.msc и нажмите клавишу ввода. и разверните библиотеку планировщика заданий.

Как сделать резервную копию базы данных PostgreSQL автоматически

<р>5. создайте новую папку в библиотеке планировщика заданий, щелкнув правой кнопкой мыши, и назовите ее «PostgreScript».

Как сделать резервную копию базы данных PostgreSQL автоматически

<р>6. Выберите папку ( A )PostgreScript, перейдите на ( B ) панель действий и нажмите ( C )Create Basic Task…

Как сделать резервную копию базы данных PostgreSQL автоматически

<р>7. Нажмите «Создать базовую задачу» и введите имя действия «Postgre», затем нажмите «Далее».

Как сделать резервную копию базы данных PostgreSQL автоматически

<р>8. Определите триггер задачи «Когда вы хотите запустить задачу», например ежедневно, каждый день, ежемесячно и т. д.

И после определения триггера нажмите кнопку "Далее".

Как сделать резервную копию базы данных PostgreSQL автоматически

<р>9. Если вы выбрали ежедневный триггер, то установите дату и время начала задачи, что означает, что ваша задача начнется в этот день и время.

Как сделать резервную копию базы данных PostgreSQL автоматически

<р>10. Выберите «Действие» или «Какое действие вы хотите выполнить для задачи?»

Затем выберите Запустить программу из указанных действий.

Как сделать резервную копию базы данных PostgreSQL автоматически

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

Как сделать резервную копию базы данных PostgreSQL автоматически

<р>12. Просмотрите сводку запланированной задачи, которую вы определили, если все в порядке, нажмите «Готово», в противном случае внесите изменения в соответствии с вашими потребностями.

как сделать резервную копию базы данных PostgreSQL автоматически

Теперь вы успешно создали задачу, которая будет выполняться ежедневно в 14:50 каждый день для резервного копирования базы данных.

Пользователям Linux необходимо знать о Crontab. С помощью crontab вы можете автоматически создавать резервные копии своих баз данных в определенное время, но «Что такое Crontab?».

  • Crontab — это команда, которая позволяет открыть таблицу cron, содержащую список предопределенных задач, которые нужно запускать через равные промежутки времени.
  • Итак, вы создадите новый файл с помощью crontab, и в этом файле мы собираемся определить задачу как резервное копирование, и этот файл будет выполняться в заданное время каждый день или каждый месяц, независимо от того, какое время вы установите.< /li>

Откройте терминал и введите указанную команду, чтобы создать задачу, и нажмите Enter, чтобы открыть файл crontab для редактирования.

Как сделать резервную копию базы данных PostgreSQL автоматически

  • Вопрос: «Как работает crontab». Команда crontab -e открывает файл crontab, который представляет собой простой текстовый файл, содержащий список предопределенных задач, и эти предопределенные задачи выполняются демоном cron в фоновом режиме в нужное время.< /li>

Синтаксис или формат:

Как сделать резервную копию базы данных PostgreSQL автоматически

  • Сохраните файл, нажав CTRL + O, а затем Enter.
  • Резервное копирование будет выполняться ежедневно в 12:02.

Вам также могут быть интересны следующие статьи.

Итак, в этом руководстве мы рассмотрели и узнали много нового о том, как создавать резервные копии базы данных PostgreSQL в разных средах и разными способами.

Мы рассмотрели следующие темы:

  • Как сделать резервную копию базы данных postgresql в Windows
  • Как сделать резервную копию базы данных postgresql в Linux
  • Как сделать резервную копию базы данных postgresql в Ubuntu
  • Как сделать резервную копию базы данных postgresql с помощью pgadmin 4
  • Как сделать резервную копию базы данных postgresql автоматически
  • Как создать резервную копию базы данных postgresql с помощью pg_dump
  • Как сделать резервную копию командной строки базы данных postgresql
  • Как сделать резервную копию базы данных postgresql с помощью pgadmin 3

За долгие 14 с лишним лет моей профессиональной карьеры я использовал SQL Server во множестве проектов. Наслаждайтесь моими руководствами по SQL Server.

Читайте также: