在Oracle Golden Gate中,我无法将生产序列复制到复制数据库,因为在生产中序列增加1,目标中的序列计数增加2.
让我详细说明,假设我有一个currval 190的序列,假设在initail加载后,目标序列也有currval 190.
现在我预订了一笔交易并且序列没有在生产中增加1,currval是191但是当我在目标数据库中检查时,序列currval显示192.这就产生了问题。需要帮助来解决这个问题...
答案 0 :(得分:0)
您是否按照以下程序进行了复制: 1.在oracle sqlplus中运行sequence.sql。 2.ALTER TABLE sys.seq $ ADD SUPPLEMENTAL LOG DATA(PRIMARY KEY)COLUMNS;
答案 1 :(得分:0)
有可能发生这种情况。
场景1:如果复制设置是双向复制,则序列在目标数据库上保持sequnce + 1值。这样做是为了在必须从源数据库到目标数据库进行故障转移或切换的情况下,则不需要将序列号重置为更高的值。请咨询您的Golden Gate DBA以获取有关如何维护序列的更多详细信息。
场景2:在具有冲突检测和解决方案的双向复制中,维护序列以便可以唯一地识别它们。
例如:
主站点将具有始终为ODD的序列,备用站点将始终具有偶数序列。通过这样做,您将能够清楚地识别哪个数据库序列已增加。