Миграция базы данных PostgreSQL
Мы будем использовать две логические процедуры, а именно: репликацию и дампу.
Для начала необходимо подготовить исходный кластер, выполнив команды в данной последовательности:
•
• Затем откройте
• На этом этапе должна настроиться аутентификация в
• Перезапустите систему управления базами данных с использованием инструкции:
После подготовки кластера можно перенести схему базы данных. При этом должно соблюдаться требование, что схема базы данных в источнике должна быть идентична схеме базы данных в приемники.
Чтобы перенести базу данных, используйте следующие утилиты:
В завершении необходимо создать публикацию в источнике при помощи инструкции
После этого нужно создать подписки в приёмнике, применив инструкцию
В связи с невозможностью репликации последовательностей необходимо произвести восстановление дампа с последовательностями при помощи утилиты
Создать дамп можно при помощи вышеупомянутых утилит:
Мы будем использовать две логические процедуры, а именно: репликацию и дампу.
Для начала необходимо подготовить исходный кластер, выполнив команды в данной последовательности:
•
ALTER ROLE <name> WITH REPLICATION
, в скобках вместо name необходимо указать имя пользователя;• Затем откройте
postgresql.conf
и укажите следующую информацию: wal_level = logical
• На этом этапе должна настроиться аутентификация в
pg_hba.conf
. Где <host>
, укажите IP или DNS приемника:host all all <host> md5
host replication all <host> md5
• Перезапустите систему управления базами данных с использованием инструкции:
systemctl restart postgresql
.После подготовки кластера можно перенести схему базы данных. При этом должно соблюдаться требование, что схема базы данных в источнике должна быть идентична схеме базы данных в приемники.
Чтобы перенести базу данных, используйте следующие утилиты:
pg_dump и pg_restore
.В завершении необходимо создать публикацию в источнике при помощи инструкции
CREATE PUBLICATION <name> FOR ALL TABLES
, указав название публикации. Для создания публикации нужно обладать правами superuser.После этого нужно создать подписки в приёмнике, применив инструкцию
CREATE SUBSCRIPTION <name> CONNECTION
, указав название подписки. Для этого действия нужно иметь доступ администратора dbaas_admin.В связи с невозможностью репликации последовательностей необходимо произвести восстановление дампа с последовательностями при помощи утилиты
psql
. Для этого сбросьте подписку в приемнике, выполнив команду:DROP SUBSCRIPTION.
Создать дамп можно при помощи вышеупомянутых утилит:
pg_dump
и pg_restore
. Дамп базы данных можно создать в кастомном формате (для восстановления отдельных элементов) или в SQL формате.