Postgres pg_dump и pg_restore

Это важно

Автомасштабирование Lakebase — это последняя версия Lakebase с автомасштабированием вычислений, масштабированием до нуля, ветвлением и мгновенным восстановлением. Сведения о поддерживаемых регионах см. в разделе "Доступность регионов". Если вы являетесь пользователем Lakebase Provisioned, см. Lakebase Provisioned.

В этом разделе описывается, как создать резервную копию базы данных Lakebase с помощью служебной программы Postgres pg_dump и как восстановить резервную копию с помощью pg_restore.

Когда следует использовать pg_dump & pg_restore

Используйте pg_dump и pg_restore для требований к аварийному восстановлению и непрерывности бизнес-процессов или при необходимости хранить полные резервные копии за пределами Lakebase. Этот метод обеспечивает полный экспорт базы данных, который можно хранить независимо и восстановить в любой системе, совместимой с Postgres.

Необходимые условия

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

  • pg_dump и pg_restore установлены. Вы можете проверить, выполнив команду pg_dump -V.
  • Вы используете последние версии pg_dump и pg_restore.
  • Версия клиента соответствует версии Postgres проекта Lakebase.
  • Проект Lakebase с настроенной ролью базы данных Postgres

Замечание

Мы рекомендуем использовать собственную проверку подлинности паролей Postgres при использовании pg_dump и pg_restore. Собственные пароли Postgres не истекают ежечасно, как маркеры OAuth, что делает их более подходящими для операций резервного копирования и восстановления. Дополнительные сведения о методах проверки подлинности см. в обзоре проверки подлинности .

Установка pg_dump и pg_restore

Если у вас нет установленных pg_dump программ и pg_restore служебных программ локально, установите их на предпочитаемой платформе.

Windows: Установите PostgreSQL с помощью официального установщика из postgresql.org. pg_dump и утилиты pg_restore устанавливаются по умолчанию и находятся в каталоге bin PostgreSQL.

Macos: Установите PostgreSQL с помощью Homebrew:

brew install postgresql

Linux (Ubuntu/Debian):

sudo apt-get install postgresql-client

Докер: Запустить pg_dump c использованием контейнера Postgres Docker:

docker run --rm postgres:17 pg_dump --version

Создание резервной копии с помощью pg_dump

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

  1. Перейдите к приложению Lakebase, щелкнув переключатель приложений в правом верхнем углу рабочей области.

  2. Выберите проект.

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

  4. Выберите роль Postgres из раскрывающегося списка (рекомендуется использовать собственную роль Postgres с проверкой подлинности паролем).

  5. Скопируйте строку подключения.

    Строка подключения выглядит примерно так:

    postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    
  6. Создайте резервную копию базы данных Lakebase, выполнив следующую pg_dump команду:

    pg_dump -Fc -v -d "<lakebase_database_connection_string>" -f <dump_file_name>
    

    После добавления строки подключения к базе данных Lakebase и имени файла дампа команда выглядит следующим образом:

    pg_dump -Fc -v -d "postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require" -f mydatabase.bak
    

аргументы команд pg_dump

Команда pg_dump включает следующие аргументы:

  • -Fc: отправляет выходные данные в архив пользовательского формата, подходящий для входных данных pg_restore.
  • -v: выполняет pg_dump в подробном режиме, что позволяет отслеживать происходящее во время операции дампа.
  • -d: указывает строку подключения для базы данных Lakebase.
  • -f <dump_file_name>: имя файла дампа. Это может быть любое имя, выбранное (например, mydumpfile.bak).

Восстановление резервной копии с помощью pg_restore

Чтобы восстановить базу данных с помощью pg_restore служебной программы из файла резервной копии, созданного с помощью pg_dump:

  1. Создайте проект Lakebase.

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

  3. Перейдите к приложению Lakebase, щелкнув переключатель приложений в правом верхнем углу рабочей области.

  4. Выберите проект и нажмите кнопку "Подключиться ", чтобы открыть модальное подключение к базе данных.

  5. Выберите роль Postgres из раскрывающегося списка (рекомендуется использовать собственную роль Postgres с проверкой подлинности паролем).

  6. Скопируйте строку подключения.

    Строка подключения выглядит примерно так:

    postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require
    
  7. Восстановите ваши данные в целевой базе в Lakebase с помощью pg_restore:

    pg_restore -v -d "<lakebase_database_connection_string>" <dump_file_name>
    

    После добавления строки подключения к базе данных Lakebase и имени файла дампа команда выглядит следующим образом:

    pg_restore -v -d "postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require" mydatabase.bak
    

аргументы команд pg_restore

Команда pg_restore включает следующие аргументы:

  • -v: запускает pg_restore в подробном режиме, что позволяет следить за процессом восстановления.
  • -d: указывает базу данных Lakebase для подключения. Значением является строка подключения к базе данных Lakebase.
  • <dump_file_name>: имя файла дампа, созданного с помощью pg_dump.

Полный пример

В следующем примере показано, как данные сбрасываются из исходной базы данных с именем databricks_postgres в одном проекте Lakebase и восстанавливаются в databricks_postgres базе данных в другом проекте Lakebase.

Перед выполнением этой процедуры:

  • Новый проект Lakebase был создан для целевой базы данных (которая включает базу данных по умолчанию databricks_postgres )
  • Были собраны строки подключения для исходных и целевых баз данных:
    • Источник:postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    • Назначения:postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require

Процедура резервного копирования и восстановления:

# Create a directory for the dump
mkdir mydump && cd mydump

# Create the backup
pg_dump -Fc -v -d "postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require" -f mydatabase.bak

# Verify the backup file was created
ls
mydatabase.bak

# Restore the backup to the destination database
pg_restore -v -d "postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require" mydatabase.bak