☁️ Как сделать резервную копию вашей базы данных PostgreSQL — Information Security Squad
☁️ Как сделать резервную копию вашей базы данных PostgreSQL
Если вы используете PostgreSQL в производственной среде, важно принять меры предосторожности, дабы гарантировать, что данные ваших пользователей не будут потеряны.
За счет постоянного резервного копирования вашей базы данных и / или автоматизации резервного копирования с помощью задач cron вы сможете быстро восстановить вашу систему в том случае, если ваша база данных «упала» или повредилась.
К счастью, PostgreSQL включает в себя инструменты, которые делают эту задачу простой и легкой.

Перед чем мы начнем

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

Изучите наши руководства по установке СУБД и начале работы с ней:

Шаги в этом руководстве требуют привилегий суперпользователя. Обязательно выполните шаги, показанные ниже от имени пользователя root или с префиксом sudo.

Однократный дамп SQL

Единая база данных

PostgreSQL предоставляет утилиту pg_dump для упрощения резервного копирования одной базы данных.

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

Войдите как пользователь postgres:

su - postgres
Сделайте дамп содержимого базы данных в файл, выполнив следующую команду. Замените dbname на имя базы данных для резервного копирования.
pg_dump dbname > dbname.bak
Полученный файл резервной копии, dbname.bak, может быть передан на другой хост с помощью scp или сохранен локально для дальнейшего использования.
Чтобы продемонстрировать восстановление потерянных данных, удалите пример базы данных и создайте на ее месте пустую базу данных:
dropdb dbname
createdb dbname

Восстановите базу данных, используя psql:

psql test < dbname.bak
Существует несколько вариантов формата резервного копирования:
  • * .bak: сжатый двоичный формат
  • * .sql: дамп открытого текста
  • * .tar: тарбол

Удаленная база данных

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

Используйте флаг -h для указания IP-адреса вашего Linode и -p для определения порта, который прослушивает PostgreSQL:

pg_dump -h 198.51.100.0 -p 5432 dbname > dbname.bak

Все базы данных

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

Для хранения этой информации и одновременного резервного копирования всех ваших баз данных вы можете использовать pg_dumpall.

Создайте файл резервной копии:

pg_dumpall > pg_backup.bak
Восстановите все базы данных из резервной копии:
psql -f pg_backup.bak postgres

Автоматизация резервного копирования с помощью Cron

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

В этом разделе будет показано, как настроить задачу cron, которая будет запускать pg_dump раз в неделю.

Убедитесь, что вы вошли как пользователь postgres:
su - postgres

Создайте каталог для хранения автоматических резервных копий:

mkdir -p ~/postgres/backups

Отредактируйте crontab, чтобы создать новую задачу cron:

crontab -e

Добавьте следующую строку в конец crontab:

0 0 * * 0 pg_dump -U postgres dbname > ~/postgres/backups/dbname.bak
Сохраните и выйдите из редактора.
Резервное копирование вашей базы данных происходит в полночь каждое воскресенье.
Чтобы изменить время или частоту обновлений, ознакомьтесь с нашими руководствами по cron:

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40