В статье мы расскажем об инструментах PostgreSQL, которые позволяют сохранить дамп БД и развернуть его.
Что такое PostgreSQL
PostgreSQL — это объектно-реляционная система управления базами данных. Она относится к категории свободно распространяемых и имеет открытый исходный код.
Какие преимущества имеет PostgreSQL относительно других СУБД:
- возможность работать в реляционном и объектном подходе;
- поддержка разных форматов данных: например XML, JSON или NoSQL;
- нет ограничений на объем базы данных и количество записей в ней;
- возможность писать функции на разных языках программирования;
- поддержка составных запросов;
- доступ к базе с нескольких устройств одновременно и другие.
В некоторых случаях могут понадобиться бэкапы баз данных: например, вы планируете перенести информацию на другой сервер или просто хотите обезопасить проект и скопировать важные данные. В этом помогут встроенные мини-программы PostgreSQL, которые называются утилитами.
Как сделать дамп базы данных
Чтобы выполнить резервное копирование данных в PostgreSQL можно использовать разные утилиты:
- pg_dump,
- pg_dumpall,
- pg_basebackup.
Подробнее о каждой из них мы расскажем ниже.
pg_dump
С помощью утилиты pg_dump вы можете создать целостный бэкап одной базы данных PostgreSQL, причем в процессе копирования можно продолжать работу с БД. В готовом дампе будет храниться только база данных — глобальные объекты (роли или табличные пространства) нужно сохранять с помощью других программ.
Чтобы создать бэкап (pg_dump):
- 1 Подключитесь к серверу по SSH.
-
2
Запустите консоль PostgreSQL:
psql
-
3
Выполните команду следующего формата:
pg_dump [connection-option][parameter][db_name]> [catalog_for_backup_postgres_database]
Где:
connection-option — параметры подключения к БД. Их можно выбрать из нескольких вариантов:
- -d [db_name] или --dbname=[db_name] — имя базы данных;
- -h [server_name] или --host=[server_ name] — имя сервера;
- -p [port] или --port=[port] — порт для подключения;
- -U [username] или --username=[username] — имя пользователя;
- parameter — параметры создания резервной копии;
- db_name — имя базы данных;
- catalog_for_backup_postgres_database — путь к каталогу, в который нужно сохранить дамп.
Доступные параметры создания резервной копии для pg_dump
pg_dumpall
pg_dumpall — это утилита, с помощью которой можно выгрузить все базы данных кластера в один файл. Этот файл будет иметь формат скрипта.
Чтобы создать бэкап:
- 1 Подключитесь к серверу по SSH.
-
2
Запустите консоль PostgreSQL:
psql
-
3
Выполните команду следующего формата:
pg_dumpall [connection-option][parameter][db_name]> [catalog_for_dump_postgres_database]
Где:
connection-option — параметры подключения к БД. Их можно выбрать из нескольких вариантов:
- -d [string_name] или --dbname=[string_name] — строка подключения;
- -h [server_name] или --host=[server_ name] — имя сервера;
- -p [port] или --port=[port] — порт для подключения;
- -l [db_name] или --database=[db_name] — имя БД, через которую нужно загрузить глобальные объекты.
- parameter — параметры создания резервной копии;
- db_name — имя базы данных;
- catalog_for_backup_postgres_database — путь к каталогу, в который нужно сохранить дамп.
Доступные параметры создания резервной копии для pg_dumpall
pg_basebackup
pg_basebackup — это утилита PostgreSQL, которая позволяет выгрузить данные из всего кластера. Готовая резервная копия будет представлена в виде файла двоичного формата.
Обратите внимание: чтобы начать резервное копирование с помощью pg_basebackup, пользователь БД должен иметь root-права или привилегию REPLICATION.
Чтобы создать бэкап:
- 1 Подключитесь к серверу по SSH.
-
2
Запустите консоль PostgreSQL:
psql
-
3
Выполните команду следующего формата:
pg_basebackup [connection-option][parameter][db_name]
Где:
connection-option — параметры подключения к БД. Их можно выбрать из нескольких вариантов:
- -d [string_name] или --dbname=[string_name] — строка подключения,
- -h [server_name] или --host=[server_ name] — имя сервера,
- -p [port] или --port=[port] — порт для подключения,
- -U [username] или --username=[username] — имя пользователя.
- parameter — параметры создания резервной копии;
- db_name — имя базы данных.
Доступные параметры создания резервной копии для pg_basebackup
Как восстановить базу данных из дампа
Восстановление базы данных из дампа возможно с помощью утилиты pg_restore. О том, как с ней работать, расскажем ниже.
pg_restore
pg_restore — мини-программа, которая позволяет развернуть базу данных из архива. Перед восстановлением команде можно добавить параметры процесса.
Чтобы восстановить бэкап:
- 1 Подключитесь к серверу по SSH.
-
2
Запустите консоль PostgreSQL:
psql
-
3
Выполните команду следующего формата:
pg_restore [connection-option] [parameter] [dump_name]
Где:
connection-option — параметры подключения к БД. Их можно выбрать из нескольких вариантов:
- -h [server_name] или --host=[server_ name] — имя сервера,
- -p [port] или --port=[port] — порт для подключения,
- -U [username] или --username=[username] — имя пользователя,
- -w или --no-password — отключить запрос пароля,
- -W или --password — включить запрос пароля,
- --role=[username] — задать имя роли пользователя.
- parameter — параметры создания резервной копии;
- dump_name — имя дампа базы данных.
Доступные параметры восстановления резервной копии для pg_restore
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊