Oracle GoldenGate 实施经验分享
   转载原厂的GG实施分享
Oracle GoldenGate 项目实施大致流程
 检查操作系统和数据库是否满足Oracle GoldenGate 要求
 配置数据库及要复制的表, 使其满足Oracle GoldenGate要求
 启动Oracle GoldenGate Extract 进程捕获增量数据
 获取和记录数据库SCN,使用数据库工具完成到目标数据库的数据初始加载
 启动Oracle GoldenGate Replicat 进程,从记录的SCN号起开始同步增量数据

检查操作系统及数据库
Oracle GoldenGate 检查操作系统及数据库
如果操作系统是AIX 5.3,须确保xlC/C++ 的版本是9.0或者以上.
如果源数据库的版本是9iR1或者9iR2,确保参数_log_parallelism或者
log_parallelism 的值为1.
确认源数据库处于归档模式, 可用命令 archive log list查看.
确认源数据库undo_retention的值足够大,undo tablespace的空间足够多.
确认源及目标数据库的open_cursors值足够大.
检查源库redo log的Thread 数目.
支持DDL:如果数据库的版本是10gR1,将_recyclebin设置为false;如果数据库的
版本是10gR2或者以上,将recyclebin设置为off.

设置数据库及复制表
Oracle GoldenGate 数据库及表的设置
在源和目标数据库为Oracle GoldenGate 创建数据库用户:
create user goldengate identified by oracle default tablespace users
temporary tablespace temp;
grant dba, connect, resource to goldengate;
打开源数据库的supplemental log 开关:
alter database add supplemental log data;
alter system switch logfile;
alter system archive log current;
在源端,对于要复制的表(样例):
ggsci> dblogin userid goldengate, password oracle
add trandata dbaccadm.dconmsg
如果复制表没有主键也没有唯一索引,且字段数目超过32个, 则需要手动将表所
有的字段都加入supplemental log.
在目标端disable 复制表的触发器及cascade constraints

 
捕获增量, Extract
Oracle GoldenGate 捕获增量
在数据初始化之前,在源端启动Extract来捕获增量数据
Add extract … Threads …:
将Threads设置为当前数据库真实的redo log Thread 数目, 不论其是否是RAC环境.

数据初始化
Oracle GoldenGate 数据初始化(SCN的意义)
数据初始化手段:
EXP/IMP
DATA PUMP
Transportable Tablespace (TTS)
RMAN
以上方法均可以指定SCN
以上方法均可以不中断业务系统

数据初始化
方法优点/缺点
EXP/IMP 这种方法的好处是, 可以通过管道直接将数据导入到目标
数据库, 这样做不需要额外的磁盘空间来存放导出文件。
缺点:比较慢。
DATA PUMP 优点:导出与导入速度都非常快。
缺点: 在源端及目标端都要有足够的空间来容纳导出文件,
且需要将导出文件传送到目标端。
Transportable Tablespace
(TTS)
优点:导出速度快, 使用RMAN TRANSPORT
TABLESPACE并不需要将表空间置为read only.
缺点:目标端的数据文件大小需要与与源端一致。
RMAN 优点:导出速度快, 适合整库导出.
?缺点:如果数据库的版本是10g一下, 不支持跨平台;源端
与目标端数据库版本一致,目标端只能通过数据库升级来升到
高版本。

Data Pump和Replicat
Oracle GoldenGate Data Pump 和Replicat
Oracle GoldenGate Data Pump 进程也是一个Extract进程.
Data Pump 将Trail 文件送到远端(远端可以不是目标端)
由于Data Pump 的任务较轻,从性能的角度出发, 可以考虑在Data Pump这一侧
做过滤和转换
Replicat: 使用start replicat …., afterscn ….
可以对同一个Trail file启用多个Replicat,但最好别超过四个.
 
关于RAC
Oracle GoldenGate 与RAC相关
GoldenGate只能安装在文件系统上
在RAC环境下,GoldenGate 只能在一个节点上运行
在存储上划分空间, 做成文件系统,使所有的节点都能访问的到(可以考虑使用集
群文件系统)
如何访问Archived LogsCross Instance Archival或者NFS
如何设置Archived Logs的访问路径?TRANLOGOPTIONS
Cross Instance Archival(instance level):
log_archive_dest_2='service=rac2 arch'
TRANLOGOPTIONS:
TRANLOGOPTIONS ALTARCHIVELOGDEST PRIMARY INSTANCE
rac1 /disk1/node1/arch,
ALTARCHIVELOGDEST INSTANCE rac1 /disk2/node1/arch,
ALTARCHIVELOGDEST
INSTANCE rac2 /disk1/node2/arch
 
性能调优
Oracle GoldenGate 性能调优
Extract 仅做抓取
过滤和转换, 尽量由Data Pump完成
在目标端查看表的统计信息, 如果统计信息太旧,别忘了对表做分析

..