Перейти к основному содержимому
Миграция баз данных PostgreSQL в облачные базы данных
Последнее изменение:

Миграция баз данных PostgreSQL в облачные базы данных

Вы можете перенести данные из своей базы данных PostgreSQL в облачные базы данных Selectel с помощью логического дампа.

к сведению

Перед миграцией создайте принимающий кластер баз данных, версии принимающего и исходного кластеров должны совпадать.

Логический дамп

Создайте дамп (файл с командами для восстановления) базы данных в исходном кластере и восстановите дамп в принимающем кластере.

Вы можете создать SQL-дамп всех баз данных (сохранятся имя, таблицы, индексы и внешние ключи) или дамп в кастомном формате (например, можно восстановить только схему или данные специфичной таблицы).

SQL-дамп

  1. Создайте дамп базы данных в исходном кластере с помощью утилиты pg_dump:

    pg_dump \
    -h <host> \
    -U <user_name> \
    -d <database_name> \
    -f dump.sql

    Укажите:

    • <host> — IP-адрес или DNS-имя мастер-хоста исходного кластера;
    • <user_name> — имя пользователя;
    • <database_name> — имя базы данных.
  2. Восстановите дамп в принимающем кластере с помощью утилиты psql:

    psql \
    -f dump.sql \
    -h <host> \
    -p 5432 \
    -U <user_name> \
    -d <database_name>

    Укажите:

    • <host> — IP-адрес или DNS-имя мастер-хоста принимающего кластера;
    • <user_name> — имя пользователя базы данных;
    • <database_name> — имя базы данных.

Кастомный дамп

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

  1. Создайте дамп базы данных в исходном кластере с помощью утилиты pg_dump:

    pg_dump \
    -Fc -v \
    -h <host> \
    -U <user_name> \
    <database_name> > archive.dump

    Укажите:

    • <host> — IP-адрес или DNS-имя мастер-хоста исходного кластера;
    • <user_name> — имя пользователя базы данных;
    • <database_name> — имя базы данных.
  2. Восстановите дамп в принимающем кластере с помощью утилиты pg_restore:

    pg_restore \
    -v
    -h <host> \
    -U <user_name>
    -d <database_name> archive.dump

    Укажите:

    • <host> — IP-адрес или DNS-имя мастер-хоста принимающего кластера;
    • <user_name> — имя пользователя базы данных;
    • <database_name> — имя базы данных.