Перейти к основному содержимому Перейти к дополнительному содержимому

Настройка переключения при отказе

Примечание к информации
  • Процедуры, описанные в этом разделе, должен выполнять администратор базы данных PostgreSQL.
  • Требуется Data Movement gateway 2024.11.14 или более поздней версии.

В этом разделе объясняется, как настроить PostgreSQL и Data Movement gateway для поддержки сценария переключения при отказе. Процедура, которую потребуется выполнить, зависит от конкретной конфигурации переключения при отказе, настроенной для PostgreSQL.

Если идентификаторы объекта базы данных для первичной и вторичной баз данных совпадают после переключения при отказе (что обычно и происходит), нужно только обновить файл hosts на машине Data Movement gateway, указав IP-адрес вторичного сервера базы данных. Однако если после переключения при отказе идентификатор объекта вторичной базы данных не совпадает с идентификатором объекта первичной базы данных, потребуется дополнительная настройка. Обычно невозможно заранее узнать, изменится ли идентификатор объекта, но если это известно, выполните описанную ниже процедуру Настройка переключения при отказе, когда идентификаторы объекта для первичной и вторичной баз данных не совпадают. Если неизвестно, изменится ли идентификатор объекта, рекомендуется выполнить более простую процедуру, описанную в разделе Настройка переключения при отказе, когда идентификаторы объекта для первичной и вторичной баз данных совпадают, поскольку идентификатор объекта обычно остается неизменным после переключения при отказе.

Если выполнена более простая настройка и Data Movement gateway не может возобновить работу после переключения при отказе, то необходимо выполнить процедуру Настройка переключения при отказе, когда идентификаторы объекта для первичной и вторичной баз данных не совпадают.

Примечание к информацииВ то время как процедура Настройка переключения при отказе, когда идентификаторы объекта для первичной и вторичной баз данных совпадают поддерживается как в проектах репликации, так и в задачах промежуточного хранения в проектах конвейера данных, процедура Настройка переключения при отказе, когда идентификаторы объекта для первичной и вторичной баз данных не совпадают поддерживается только в проектах репликации.

Настройка переключения при отказе, когда идентификаторы объекта для первичной и вторичной баз данных совпадают

Когда происходит переключение в случае отказа, задача данных сталкивается с ошибкой с исправимой ошибкой и пытается заново подключиться к IP-адресу сервера первичной базы данных. Однако обычно это не удается, поскольку сервер вторичной базы данных (почти всегда) имеет другой IP-адрес.

Если переключение IP-адресов не обрабатывается службой отказоустойчивости DNS, потребуется указать новый IP-адрес в файле hosts на компьютере с Data Movement gateway. Путь к файлу hosts: /etc/hosts. После обновления файла hosts выполнение задачи данных возобновится автоматически.

Настройка переключения при отказе, когда идентификаторы объекта для первичной и вторичной баз данных не совпадают

Примечание к информацииПоддерживается только в проектах репликации.

В стандартном режиме работы задача данных автоматически создает слот при перемещении данных из источника PostgreSQL. Имена слотов включают идентификатор объекта базы данных. В редких случаях идентификаторы объекта первичной и вторичной баз данных не совпадают. В таком случае задача данных завершится ошибкой во время переключения при отказе, поскольку она не сможет найти слот, созданный для первичной базы данных, во вторичной базе данных. В этом случае появится следующая ошибка:

[SOURCE_CAPTURE ]E: Can't resume task after replication slot was dropped. [1020101] (postgres_endpoint_capture.c:445)

Если появилась такая ошибка, выполните следующие действия.

  1. В разделе настроек коннектора Внутренние свойства добавьте внутреннее свойство slotName и задайте значение имени слота.

    Указанное свойство slotName уже должно существовать на первичном сервере PostgreSQL. Можно либо создать новый слот, либо использовать уже существующий.

    Чтобы создать новый слот и получить его LSN, выполните следующий запрос:

    SELECT lsn FROM pg_create_logical_replication_slot ('user_provided_slot_name', 'test_decoding');

    Чтобы получить список доступных слотов и их LSN, выполните следующий запрос:

    SELECT slot_name, restart_lsn FROM pg_replication_slots WHERE slot_type = 'logical';

  2. Введите LSN для указанного slotName в поле Исходная позиция изменения диалогового окна Дополнительные параметры запуска, а затем подготовьте и запустите задачу данных.

    Если произойдет переключение при отказе, вторичный сервер почти сразу же возьмет на себя функции первичного сервера. Переключение при отказе должно осуществляться расширением pg_failover_slots.

  3. Когда происходит переключение при отказе, задача данных сталкивается с исправимой ошибкой и пытается заново подключиться к IP-адресу сервера первичной базы данных. Однако обычно это не удается, поскольку вторичный сервер базы данных (почти всегда) будет иметь другой IP-адрес. Если переключение IP-адресов не осуществляется службой отказоустойчивости DNS, потребуется указать новый IP-адрес в файле hosts на компьютере с Data Movement gateway. Путь к файлу hosts: /etc/hosts. После обновления файла hosts выполнение задачи данных возобновится автоматически.

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!