Evolution
Тема интерфейса

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

Эта статья полезна?

С помощью этого руководства вы создадите дамп базы данных PostgreSQL® через pg_dump, а затем восстановите базу с помощью pg_restore. Восстановить данные можно только в существующую базу данных. За раз вы можете восстановить одну базу данных.

Шаги:

Перед началом работы

  1. Если вы уже зарегистрированы, войдите под своей учетной записью.

1. Разверните необходимые ресурсы в облаке

  1. Создайте виртуальную машину с ОС Ubuntu 24.04 в том же проекте, зоне доступности и подсети, где будет располагаться кластер Managed PostgreSQL®.

2. Создайте дамп базы данных

Внимание

Перенос пользователей через дамп базы данных невозможен.

Вы можете создать пользователей через личный кабинет или API. Не используйте имена dbadmin, postgres, cnpg__pooler__pgbouncer, streaming_replica, а также имена, начинающиеся на pg_, так как эти имена зарезервированы сервисом Managed PostgreSQL®.

Утилита pg_dump — встроенный инструмент для создания резервных копий в PostgreSQL®.

Используйте команду:

pg_dump \
--dbname=<database_name> \
--file=<dump_file_path> \
--format=c \
--inserts \
--disable-triggers \
--clean \
--if-exists \
--username=<database_user_name> \
--host=<database_host> \
--port=<database_port> \
-O \
-x \
-v

Где:

  • <database_name> — имя базы данных.

  • <dump_file_path> — путь до файла дампа.

  • <database_user_name> — имя пользователя базы данных.

  • <database_host> — хост базы данных.

  • <database_port> — порт базы данных.

3. Восстановите базу данных из дампа

Утилита pg_restore восстанавливает данные из резервных копий, которые были созданы с помощью pg_dump.

Внимание

У пользователя dbadmin нет прав на CREATE DATABASE, поэтому восстановление можно выполнить только в существующую базу данных. Вы можете создать базу данных через личный кабинет или API.

pg_restore -O -x \
--dbname=<database_name> \
--username=<database_user_name> \
--host=<database_host> \
--port=<database_port> \
--disable-triggers \
--clean \
--if-exists \
<dump_file_path> \
-v

Где:

  • <database_name> — имя базы данных.

  • <database_user_name> — имя пользователя базы данных.

  • <database_host> — хост базы данных.

  • <database_port> — порт базы данных.

  • <dump_file_path> — путь до файла дампа.

Результат

Вы создали дамп базы данных PostgreSQL® с помощью утилиты pg_dump, а затем восстановили базу с помощью pg_restore.