Как определить номер последовательности для генерации уникального значения в 4 центрах обработки данных - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть три датацентра с 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 - ???

Если кто-то может помочь с логикой, которую можно использовать для всех последовательностей, будет очень полезно.

С уважением, ЯЗЫК.

...