ProCloud Yandex
20.06.2023
читать 4 минуты

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

/upload/iblock/5c4/ols6qc07hh9113dcsedyj4w7usnybpwq/postgresql_backup.jpeg.jpg

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

Предварительные требования

Перед началом работы требуется наличие:

  1. Сервера БД для PostgreSQL. В правилах брандмауэра необходимо указать, что доступ к данному серверу разрешен.
  2. Установить в командной строке программы pg_dump (для извлечения БД в файл дампа) и  pg_restore (для восстановления БД из файла архива).

Создание дампа с нужными данными для загрузки

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

pg_dump -Fc -v --host=localhost --username=masterlogin --dbname=<database name> -f testdb.dump

Во втором случае:

pg_dump -Fc -v --host=<host> --username=<name> --dbname=<database name> -f <database>.dump.

Восстановление данных в целевую БД

Когда целевая БД будет создана, можно применить команду pg_restore – восстановление базы из дампа.

pg_restore -v --no-owner --host=<server name> --port=<port> --username=<user-name> --dbname=<target database name> <database>.dump

Если использовать параметр --no-owner, то все объекты, которые были восстановлены, автоматически присваиваются пользователю, который будет отмечен в параметре --username. Более подробную информацию об этом можно найти в открытых источниках или документации PostgreSQL.

Важно. Иногда сервер требует наличие  соединений TLS и SSL, но они на нем отсутствуют по каким-то причинам. Тогда нужно применить переменную PGSSLMODE=require. Иногда утилита работает без данного протокола, но есть высокий риск появления ошибки FATAL. Тогда администратору сети перед выполнением pg_restore нужно выполнить команду

SET PGSSLMODE=require

если у вас операционная система Windows. При использовании ОС Linux нужно будет прописать команду

export PGSSLMODE=require

Рассмотрим еще несколько команд более подробно.

Утилита pg_dumpall

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

Для сжатия бэкапа нужно передавать информацию на архиватор gzip

pg_dumpall | gzip > /tmp/instance.tar.gz

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

Утилита pg_basebackup

Она позволяет выполнять бэкап работающего кластера БД PostgreSQL. Итоговый бинарный файл применяется для восстановления БД в конкретное состояние в прошлом. Отличительная возможность этой утилиты – создание полноценной копии. В данном случае создать  резервные копии отдельных сущностей не получится. Подключение к PostgreSQL происходит с использованием протокола репликации с правами админа или с правом REPLICATION.

С параметром --D, который обозначает директорию, где будет находиться бэкап. Параметры --Ft и --z отвечают за сжатие резервной копии.

Утилита wal-g

С помощью данной утилиты удается сохранять бэкапы на файловой системе или на серверах S3.

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

Утилита pgAdmin

Эта утилита позволяет создавать резервные копии с использованием графического интерфейса. Запустить данное web-приложение можно как на локальном устройстве, так и на сервере. Оно работает на различных операционных системах. Актуальную версию рекомендуется скачивать с официального сайта.

Заключение

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

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

Новости
13 сентября 202413.09.2024
читать 2 минутычитать 2 мин
Дайджест обновлений продуктов
18 апреля 202418.04.2024
читать 2 минутычитать 2 мин
Дайджест обновлений продуктов Q1
5 апреля 202405.04.2024
читать 1 минутучитать 1 мин
ProCloud CPO Диана Беда в рейтинге ИТ-лидеров от Global CIO
Создать учетную
запись ProCloud
arrow
arrow hover
 
Имя, Фамилия*
Номер телефона
Электронный адрес*
Ваше сообщение*
Файл
Файл
Файл
Файл
Файл
Файл
Файл
Файл
Файл
Файл
Тип формы
ID тикета Zendesk
Продукт
IP
 

Создайте бесплатную учетную запись или напишите нам, чтобы узнать больше.

Нажимая «Отправить заявку» вы даете свое согласие на обработку своих персональных данных