У меня есть три датацентра с 3 базами данных Oracle, которые реплицируются с использованием Золотых Ворот.Каждая база данных имеет механизм последовательности триггеров для генерации первичных ключей.Мы добавляем еще один дата-центр в архитектуру с БД.
Логика, которую мы используем, чтобы избежать конфликтов, заключается в увеличении значений последовательности на 4 из 3, чтобы не возникало конфликтов при репликации транзакций с использованием Golden gate.
Например,
DB1 - SEQUENCE_1 - START WITH 1 - INCREMENT BY 4 - Next value - 5
DB2 - SEQUENCE_1 - START WITH 2 - INCREMENT BY 4 - Next value - 6
DB3 - SEQUENCE_1 - START WITH 3 - INCREMENT BY 4 - Next value - 7
DB4 - SEQUENCE_1 - START WITH 4 - INCREMENT BY 4 - Next value - 8
Постановка задачи - После клонирования DB4 мне нужно узнать точное число, с которого я должен начать свои последовательности, чтобы значения, сгенерированные в DB4, были уникальными и не генерировалиськонфликты.
Фактические значения в БД для последовательности.
DB1 - SEQUENCE_1 - START WITH 33479805 - INCREMENT BY 4 - Next value - 33479809
DB2 - SEQUENCE_1 - START WITH 33318420 - INCREMENT BY 4 - Next value - 33318424
DB3 - SEQUENCE_1 - START WITH 47020627 - INCREMENT BY 4 - Next value - 47020631
DB4 - SEQUENCE_1 - START WITH ???????? - INCREMENT BY 4 - Next value - ???
Если кто-то может помочь с логикой, которую можно использовать для всех последовательностей, будет очень полезно.
С уважением, ЯЗЫК.