b. 数据库必须处于归档模式,建议保留10天的归档日志; c.
不同厂商之间数据同步由双方工程师共同确定所需要复制的表以及划分复制通道。
d. 为GoldenGate防火墙开端口7809,7840-7850(在源和目标端)
3.2 创建运行GoldenGate的用户
1) 在源端采用ORACLE用户运行GoldenGate 2) 创建GG安装位置:/Goldengate 3) 创建GoldenGate数据库用户ggs $ sqlplus / as sysdba
SQL> create user ggs identified by XXXX; SQL> grant connect, resource, dba to ggs; SQL> exit;
4) 检查源端数据库是否为归档模式,若为非归档模式,将其改为归档模式
SQL>archive log list;
5) 检查源端数据库附加日志是否打开
SQL>select supplemental_log_data_min from v$database; a) 将数据库附加日志打开
SQL>alter database add supplemental log data; b) 切换日志以使附加日志生效
--SQL〉Alter system switch logfile; Select * from v$transaction
3.3 安装GoldenGate
通过sftp上传GoldenGate软件包道安装目录,并解压缩
tar -xvf *.tar
在ggsci环境下创建GoldenGate子目录,create subdirs
Shell>ggsci
GGSCI> CREATE SUBDIRS
GGSCI> EXIT
3.4 添加变量
vi .bash_profile
export GG_HOME=/Goldengate export LD_LIBRARY_PATH=$ORACLE_HOME/lib:\\$GG_HOME:\\$LD_LIBRARY_PATH
3.5 增加附加日志
在GGSCI命令行中登陆数据库,为需要复制的数据表添加trandata
a) 执行完毕通过下列sql检查,查看那些表已经添加了附加日志:
Info tradataschema.table
b) 如果发现尚有部分表未添加附加日志,需有手工添加,例:
Ggsci>dbloginuseridggs,password XXXX 如果该表有主键:
Ggsci>add trandataschema.table Ggsci>add trandataschema.table -- Ggsci>add trandata schema.*
3.6 OGG源端配置
现在以一条完整的链路为例,详细演示各进程的配置方法。
3.6.1 MGR进程参数模板
GGSCI>edit param mgr
--Manager使用的端口 port 7809 DYNAMICPORTLIST 7840-7850 --自动启动所有的Extract进程 --AUTOSTART EXTRACT * --自动重启所有的Extract,每隔2分钟重试,重试次数5次 AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 2 --每隔1小时检查延迟报告 --LAGREPORTHOURS 1 --每隔30分钟检查延迟,如果超过延迟阀值,将写入错误日志 --LAGINFOMINUTES 30 --延迟阀值45分钟 --LAGCRITICALMINUTES 45
3.6.2 主Extract进程参数模板
当前源端IP:100.12.XXX.XXX SID:bjscgshx1 为egs_zj9进程配置参数:
GGSCI>edit param egs_zj9
--Extract进程名 EXTRACT egs_zj9 --设置环境变量 SETENV (ORACLE_SID=\SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8) --GoldenGate用户名、密码 useridggs,password XXXX --捕获Truncate操作 GETTRUNCATES REPORT AT 01:59 REPORTROLLOVER AT 02:00 TRANLOGOPTIONS CONVERTUCS2CLOBS EXTTRAIL ./dirdat/xt NUMFILES 3000 EOFDELAYCSECS 30 GETTRUNCATES tranlogoptionsasmusersys@asm, asmpassword XXXX --动态解析表名 DYNAMICRESOLUTION DBOPTIONS ALLOWUNUSEDCOLUMN FETCHOPTIONS NOUSESNAPSHOT FETCHOPTIONS SUPPRESSDUPLICATES FETCHOPTIONS FETCHPKUPDATECOLS WARNLONGTRANS 3H, CHECKINTERVAL 3M TABLE GS_HX.CS_FYKCBZ; TABLE GS_HX.DM_DJ_BGDJXM; ? 添加egs_zj9进程,从数据库日志中抓取有效数据
GGSCI (HYGSDBDQ03) 11> add extract egs_zj9, tranlog, threads 2, begin now
GGSCI (HYGSDBDQ03) 14> add exttrail ./dirdat/ xt,extract egs_zj9,megabytes 100
? 检查配置情况:
GGSCI> INFO EXTTRAIL *
GGSCI> START EXTRACT egs_zj9
GGSCI> VIEW REPORT egs_zj9
3.6.3 Data Pump传输进程参数模板
对应的抽取进程为egs_zj9
为对相应的抽取进程配置相应的传输进程:
GGSCI>edit param pgs_zj9 --Data Pump进程名称 EXTRACT pgs_zj9 --设置环境变量 SETENV (ORACLE_SID=\SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8) REPORT AT 01:59 REPORTROLLOVER AT 02:00 FLUSHCSECS 30 NUMFILES 3000 EOFDELAYCSECS 30 --目标机器IP和端口 RMTHOST 100.12.98.XX,MGRPORT 7809, TCPBUFSIZE 100000, TCPFLUSHBYTES 300000 --队列文件在目标端的存放位置 rmttrail ./dirdat/zf --采用pass-through模式处理表 PASSTHRU --动态解析表名 DYNAMICRESOLUTION