Последовательности Золотых Ворот Oracle

В Oracle Golden Gate я не могу реплицировать производственную последовательность для репликации базы данных, так как при увеличении последовательности на 1 в производстве количество последовательностей в целевом объекте увеличивается на 2.

Позвольте мне уточнить, предположим, что у меня есть последовательность с currval 190, предположим, после загрузки initail, целевая последовательность также имеет currval 190.

Теперь я забронировал сделку и последовательность no get увеличилась на 1 в производстве, currval составляет 191, но когда я проверил целевую базу данных, последовательность currval показывает 192. Это создает проблему. Нужна помощь в решении этой проблемы…

2 ответа

  1. Вы выполнили следующую процедуру для вашей репликации:
    1. выполнение последовательности.sql в oracle sqlplus.
    2.ALTER TABLE sys.seq$ ADD дополнительные столбцы данных журнала (первичный ключ) ;

  2. Есть несколько сценариев, когда это может произойти.

    Сценарий 1: если настройка репликации является двунаправленной репликацией, то последовательности хранятся в sequnce+1 значение в целевой базе данных. Это делается для того, чтобы просто в случае отработки отказа или переключения должно произойти от источника к целевой базе данных, то не будет необходимости сбросить порядковый номер к более высокому значению. Проверьте с вашим Golden Gate DBA, чтобы получить более подробную информацию о том, как последовательности поддерживаются.

    Сценарий 2: в двунаправленной репликации с обнаружением и разрешением конфликтов-последовательности поддерживаются так, чтобы их можно было однозначно идентифицировать.

    Например:

    Основной сайт будет иметь последовательности, которые всегда нечетные, а резервный сайт всегда будет иметь последовательности с четными номерами. Сделав это, вы сможете четко определить, на какой последовательности базы данных увеличилась.