goldengate 12c 针对oracle 12c配置的主要变化

由于oracle 12c已经是多租户架构,在使用OGG同步的时候,需要考虑下面一些情况

  • 一个 CDB包含多个PDB,源端部署的一个extract可访问所有pdb redo,理论上不需要每个pdb单独配置extract.
  • 抽取模式只能是integrated(集成)模式,不支持claasic capture传统方式捕获;
  • 因为要使用integrated extract,因此,需要能访问log mining server,而这个只能从cdb$root中访问;
  • 源端要使用common user,即c##ogg这种用户来访问源端DB,这样能访问DB的redo log & all pdbs。
  • 在GGSCI或参数文件中,可以使用pdb.schema.table来访问具体的表或序列;
  • 可以在参数文件 中使用sourceCatalog参数,指定一个PDB,后面的参数中只需要schema.table即可;
  • 目标端每个pdb要有一个replicat进程,即一个replicat进程只能投递到一个PDB,不能投递到多个。
  • 源端OGG用户需要赋权:dbms_goldengate_auth.grant_admin_privilege(‘C##GGADMIN’,container=>‘all’),同时建议将ogg的用户设置赋权为:grant dba to c##ogg container=all;
  • 源端DB除了以前要打开归档, force logging, 最小附加日志,可能还需要打开一个开关:alter system set enable_goldengate_replication=true;

 

extract示例:

EXTRACT ex1 SETENV (ORACLE_SID='oradb') 
userid c##ogg@oradb, password ogg

EXTTRAIL ./dirdat/lt
TABLE pdb1.schema1.table*;
SOURCECATALOG pdb2
TABLE schema2.table*;
TABLE schema3.table*;
SOURCECATALOG pdb3
TABLE schema4.table*;

add extract之后,还需要

register extract ex12c database container(pdb1, pdb2, pdb3)

pump示例:
EXTRACT dp1 
SETENV (ORACLE_SID='oradb')
userid c##ogg@oradb, password ogg
RMTHOST orasql-test, MGRPORT 7809
RMTTRAIL ./dirdat/rt
TABLE pdb1.schema1.table*;
SOURCECATALOG pdb2
TABLE schema2.table*;
TABLE schema3.table*;
SOURCECATALOG pdb3
TABLE schema4.table*;


replicat示例:

REPLICAT rep1

SETENV (ORACLE_SID='condb2')

DBOPTIONS INTEGRATEDPARAMS(parallelism 6)

USERID C##ogg@tgt_pdb1, PASSWORD welcome1

ASSUMETARGETDEFS

MAP pdb1.schema1.table*, target schema1.table*;

MAP pdb3.schema4.table*, target schema1.table*;

sourceCatalog

MAP schema2.table*, target schema1.table*;

MAP schema3.table*, target schema1.table*;




原文地址:https://www.cnblogs.com/margiex/p/4046219.html