Порой у наших заказчиков возникают специфические задачи, например перенос базы данных средствами Oracle Golden Gate. Специфичность задачи особенна двумя моментами:
- СУБД - Microsoft SQL SERVER
- Базы данных для переноса находятся в AlwaysOn AG
На самом деле ничего сложного нет, важно системно подойти к задаче.
Важные ограничения:
- Только Full Recovery Model модель восстановления базы данных
- Объекты в базе данных должны быть до 4 КБ.
примечание - возможно и более, но возникают ограничения функционала Golden Gate
- Таблицы с TIMESTAMP колонкой должны имет отдельный Primary Key
- TIMESTAMPы должны быть в интервале 0001/01/03:00:00:00 to 9999/12/31:23:59:59. Если временные отметки уже сконвертированы в локальное время, в результате возможен перенос с некорректным временем.
- При первичной выгрузке не затрагиваются данные из Transaction Log
- Не поддерживаются типы данных SQL_Variant
Я привел наиболее важные ограничения с точки зрения рассматриваемого кейса . Более подробно можно ознакомиться с ограничениями можно в документации Oracle Golden Gate.
Особенности работы с Always ON
Oracle Golden Gate позволяет брать данные со следующих источников
- Primary экземпляра в режиме Read-Only
- Синхронной копии базы данных (Secondary database in synchronous mode)
И синхронизировать в Primary экземпляр на другой системе.
Важно, что если коннекция осуществляется через DSN AlwaysOn Group, то источником может быть только Primary экземпляр базы данных. Синхронная копия базы данных в AG в этом случае не может быть источником. Для использования копии нужно создать отдельный DSN.
Не менее Важно настроить время включая идентичные часовые пояса на системах СУБД на которых/с которыми производится работа Golden Gate.
Ну и самое главное, в случае Failover (переключения на новый Primary экземпляр базы данных) вручную выполнить на новом Primary "Oracle GoldenGate CDC Cleanup job" задачу перед следующей выгрузкой.
В кратце всё, но деталей реализации и конкретиных особенностей кейсов в данной связке достаточно много. Мы оказываем консультаци и обучения по данным технологиям.
Кстати, Как Вы думаете для какой задачи нам потребовалось использование Golden Gate с Microsoft SQL Server?
Предположения прошу оставлять в коментариях.