Overview of Oracle GoldenGate (OGG)

Docs

https://docs.oracle.com/en/database/goldengate/core/index.html

Initialize Way

・ RMAN
・ DataPump
・ OGG

Sequence

・ 双向复制时,不能使用序列。
・ 单向复制时,不能使用序列的 cache,否则会造成源和目标不同步(缺省使用 cache=20)。

Trigger

・ 目标库需要删除触发器,或设置禁用。由于触发器可能会造成目标库数据重复插入。

Constraint

・ 目标库需要删除约束,或设置禁用。

Supplemental Log

・ 事先确认附加日志是否有效,没有附加日志会不会丢失数据。

DDL replication

・ 用户默认的表空间不要指定 system 表空间。
・ 关闭数据库回收站功能,并清空回收站。

-- alter system set recyclebin=off scope=spfile;  -- 10g r1/r2
purge dba_recyclebin;

Process Parameters

GLOBALS

-- 设置环境变量
setenv (ORACLE_HOME="/u01/app/oracle/product/11.2.0/db_1")
setenv (ORACLE_SID="orcl")

setenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
setenv (NLS_LANG="AMERICAN_AMERICA.AL32UTF8")

Manager

port 7809    -- 管理进程通信端口
autostart er * -- 自动启动extract/replicat进程
autorestart er *, waitminutes 3, retries 15 -- 自动重启extract/replicat进程,3分钟一次,尝试15次
purgeoldextracts ./dirdat, usecheckpoints, minkeepdays 7 -- 删除extract/replicat进程老的队列文件,使用检查点表,至少保留7天内
userid goldengate@to_target, password goldengate -- 用于登录使用目标库检查点表

Extract Capture

extract capt00    -- 进程名称,不超过8个字符
userid goldengate, password goldengate -- 用户密码
exttrail ./dirdat/capt00/ct -- 捕获进程文件队列路径
tranlogoptions excludeuser goldengate -- 排除OGG用户
tranlogoptions dblogreader -- 读取ASM里的redolog,archivelog
tranlogoptions convertucs2clobs -- 支持大字段,ogg11.2已废弃
warnlongtrans 12h, checkinterval 30m -- 长事务检查告警,ggserr.log,每30分钟检查一次
discardfile ./dirrpt/capt00/capt00.dsc, append, megabytes 200 -- 进程错误输出文件,日志附加,最大200M
table jove.*; -- 捕获对象

Extract Datapump

extract pump00    -- 进程名称,不超过8个字符
passthru -- 投递模式,不与数据库交互
rmthost 192.168.3.152, mgrport 7809 -- 目标端IP,目标端管理进程端口
rmttrail ./dirdat/rept00/rt -- 目标端队列文件存放路径
discardfile ./dirrpt/pump00/pump00.dsc, append, megabytes 200 -- 进程错误输出文件,日志附加,最大200M
table jove.*; -- 投递对象

Replicat

replicat rept00    -- 进程名称,不超过8个字符
userid goldengate, password goldengate -- 用户密码
handlecollisions -- 自动过滤重复时间内的数据冲突,用于非停机初始化
assumetargetdefs -- 两端数据结构一致才用这个参数
discardfile ./dirrpt/rept00/rept00.dsc, append, megabytes 200 -- 进程错误输出文件,日志附加,最大200M
map jove.*, target jove.*; -- 复制对象