我正在努力解决如何做到这一点,并希望有人可以提供一些想法。
Oracle Golden Gate - 一般问题。版本不应该是具体的,但是,我目前正在运行:
金门:12.2.0.1.170919
甲骨文数据库:12.1.0.2.0
使用 Golden Gate、集成提取(和复制)。
我已经使用间隔分区(按月)设置了一个测试表。我已经设置了一个 GG 流来捕获该表的数据/行。
这完美地工作,没有问题。
然后我尝试为此表设置/启用 DDL 复制。
我将以下内容添加到提取的 .prm 文件中:
DDL INCLUDE OBJNAME myschema.*
而且效果很好。它捕获所有 ddl ..
ALTER TABLE
TRUNCATE TABLE
CREATE INDEX
... etc.
现在,我想限制 DDL,使其仅捕获:
ALTER TABLE myschema.* DROP PARTITION ...
就是这样...没有截断,没有删除,没有其他 ALTER TABLE
即 ALTER TABLE myschema.mytable MODIFY ( col ....
不想捕获它 - 例如。
我尝试了以下一些..都无济于事:
DDL INCLUDE OBJNAME myschema.* &
INCLUDE OPTYPE DROP &
INCLUDE OBJTYPE 'PARTITION'
这仍然允许所有 DDL
DDL INCLUDE OBJNAME myschema.* &
INCLUDE OPTYPE DROP &
INCLUDE OBJTYPE 'PARTITION' &
EXCLUDE ALL
这根本不允许任何 DDL ..
DDL INCLUDE OBJNAME myschema.* &
INCLUDE OPTYPE DROP &
INCLUDE OBJTYPE 'PARTITION' &
EXCLUDE OPTYPE TRUNCATE &
EXCLUDE OPTYPE CREATE
这可以防止 TRUNCATE 和 CREATE .. 但是,我不能添加“ALTER”或“DROP”.. 因为它开始影响/阻止 DROP PARTITION 子句。
我已经向 Oracle 开了一张票,以从他们那里获得一些反馈。但是,到目前为止,那里的运气并不好。我希望这里有人可能真的知道如何做到这一点?
谢谢!
好的,所以通过 SR 与 Oracle 一起制定了解决方案 .. 想要将解决方案放在这里以确保完整性。
解决方案是使用以下 DDL 命令:
DDL 包括映射的 INSTR 'DROP PARTITION'