Can OGG be used to extract capture from oracle dataguard standby for Multitenant database?
最近在测试oracle to postgreSQL项目中,计划使用oracle standby database做为数据库初始化的静态数据,这没有任何问题, 那是否可以从standby database捕捉变化呢?如配置ogg extract抽取进程。
对于数据同步产品如Debezium(DBZ)和Oracle GoldenGate可以在oracle和postgresql间互相同步数据, 但是Debezium官方明确提示同前还不支持从Oracle standby抽取变化数据, GoldenGate在Oracle 11g database中就可以从standby抽取, 但是从oracle 12c开始引入 Multitenant 多租户架构数据库, 对于Goldengate 抽取有两种模式:class capture经典模式和integrated capture集成模式。 class capture不支持Multitenant,如果Multitenant多租数据库需要使用integrated capture集成模式. 但是integrated capture集成模式又不支持standby database抽取, 所以对于Multitenant多租数据库只能使用integrated capture集成模式从primary database上抽取,或是ogg 的downstream模式数据库中。 否则会提示
OGG-02249: The Extract configuration does not support a physical standby as the source database. Cause: The source database role is PHYSICAL STANDBY, which is not supported with the current Extract configuration.
Goldengate Extract From Physical Standby ADG for Multitenant database? (Doc ID 2231129.1)
1. ADG is on a Oracle 12c Multitenant database.
2. Classic capture in any mode (ADG or Local capture) will not work on a multitenant database.
3. Integrated Extract either directly running on primary database server or on a downstream logminer server can work.
Integrated Extract for ADG standby database (Doc ID 2186503.1)
You can not use Integrated Extract for ADG standby database. It’s only Classic Extract.
Ogg | primary | standby | 多租户 |
典型模式 | Y | Y | N |
集成模式 | Y | N | Y |
另外在使用Debezium 从standby side抽数里可能会遇到报错:
SQL> select dbms_metadata.get_ddl('USER','SYSTEM') from dual; ERROR: ORA-16000: database or pluggable database open for read-only access ORA-06512: at "SYS.DBMS_METADATA", line 6681
可见dbz会使用该package 获取DDL信息, 手动也可以在19c中执行遇到该错误。Range of versions believed to be affected Versions >= 18.1 but BELOW 21.1
Bug 30858671 18c DBMS_METADATA.GET_DDL Reports ORA-16000 in Read Only Mode
对不起,这篇文章暂时关闭评论。