Найти в Дзене

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

В статье расскажу, как делать резервные копии баз на PostgreSQL, как восстанавливать базы из резервных копии и поделюсь готовым скриптом по автоматическому резервированию баз с контролем выполнения и удалением старых копий бекапов. Рассматривать пример работы будем на PostgresSQL 11.7 под операционной системой Windows. 1️⃣ Создание резервной копии Для создания резервной копии используется утилита — pg_dump. Пример создания резервной копии: "C:\Program Files\PostgreSQL\11.7-5.1C\bin\pg_dump.exe" --format=custom --verbose --dbname=postgresql://postgres:password@localhost:5432/test --file="D:\BACKUP\file.dump" 2>"D:\BACKUP\file.log" Описание ключей: --format — Указывает формат вывода копии. custom — Выгрузить данные в специальном архивном формате, пригодном для дальнейшего использования утилитой pg_restore (восстановление базы из копии). Вывод в этом формате по умолчанию сжимается; --verbose — Включить подробный режим журнала логов. Будут выводиться в стандартный поток ошибок подробные
Оглавление

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

Рассматривать пример работы будем на PostgresSQL 11.7 под операционной системой Windows.

1️⃣ Создание резервной копии

Для создания резервной копии используется утилита — pg_dump.

Пример создания резервной копии:

"C:\Program Files\PostgreSQL\11.7-5.1C\bin\pg_dump.exe"

--format=custom

--verbose

--dbname=postgresql://postgres:password@localhost:5432/test

--file="D:\BACKUP\file.dump" 2>"D:\BACKUP\file.log"

Описание ключей:

--format Указывает формат вывода копии. custom — Выгрузить данные в специальном архивном формате, пригодном для дальнейшего использования утилитой pg_restore (восстановление базы из копии). Вывод в этом формате по умолчанию сжимается;

--verbose — Включить подробный режим журнала логов. Будут выводиться в стандартный поток ошибок подробные комментарии к объектам, включая время начала и окончания выгрузки, а также сообщения о прогрессе выполнения;

--dbname — Строка подключения к базе данных; Формат: postgresql://[пользователь:пароль@][сервер:порт][/база_данных]

--file — Путь и имя файла резервной копии;

2> — Путь и имя файла журнала логов.

Для запуска команды нужно запустить Командную строку Windows под правами Администратора.

Через поиск вводим команду CMD, далее щелкаем по найденной утилите правой кнопкой мышки и выбираем пункт — Запуск от имени Администратора. Далее в открывшейся консоли вводим нашу команду:

2️⃣ Восстановление из резервной копии

Для создания резервной копии используется утилита — pg_restore.

Пример восстановления из резервной копии:

"C:\Program Files\PostgreSQL\11.7-5.1C\bin\pg_restore.exe"

--dbname=postgresql://postgres:password@localhost:5432/test

"D:\BACKUP\file.dump"

Описание ключей:

--dbname — Строка подключения к базе данных; Формат: postgresql://[пользователь:пароль@][сервер:порт][/база_данных]

Путь и имя файла — Указывает расположение восстанавливаемого файла;

Создание новой базы данных в Postgres

Если база не создана, то ее можно создать через консоль psql. Как работать с консолью смотрите в этой статье.

Команда: CREATE DATABASE ИмяБазыДанных;

3️⃣ Готовый скрипт по созданию резервной копии

Возможности скрипта:

  • Создание файлов бекапов с датой и временем в имени файла;
  • Ограничение хранения копий по времени. Можно задать какое время хранить копии, старые копии будут автоматически удаляться;

Запуск скрипта можно настроить через стандартную утилиту Windows —Планировщик заданий.

Скачать скрипт можно в отдельном посте, только для подписчиков.

#1c #базаданных #резервноекопирование #backup #postgresql #скрипты #автоматизация