一、环境信息:
源;
系统:windows server 2012
数据库:oracle 11g 11.2.0.1.0
OGG:oracle goldengate 11.1.1.1.0
目标:
系统:windows server 2012
数据库:oracle 11g 11.2.0.1.0
OGG:oracle goldengate 11.1.1.1.0
备注:也是为了方便所以选择了相同的环境进行测试,但是在我自己感觉来言的话,只要ogg的版本尽量保持在一致的情况下比较稳妥,若无法保证可以向下继承着走(我也是第一次进行ogg的实验)
二、goldengate须了解的4个必要交互进程
源DB:
- Manager进程:GoldenGate的控制进程,负责启动,监控和管理其他进程
- Extract进程:抽取进程,负责从源数据库中捕获修改的数据,然后保存为本地的tail文件
- Pump进程:传输进程,负责从本地tial文件中传输到目标数据库上
目标DB:
- Manager进程:同样需要配置一个 Manager进程
- Replicat进程:应用进程,负责把解析传输过来的tail文件,把修改应用到本地数据库里面
三、goldengate配置流程
一)配置数据源/目标库(使用源和目标)
1.开启归档日志(若DB非归档日志模式,需使用sqlplus执行以下代码开启日志)
SQL> archive log list
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open
2.开启最小附加日志(补充日志)
SQL>select supplemental_log_data_min from v$database; //若为NO,则执行如下代码
SQL>alter database add supplemental log data; //打开附加日志
SQL〉ALTERSYSTEM ARCHIVE LOG CURRENT; //切换日志以使附加日志生效
3.创建数据源/目标库用户(为了简化我直接授权了dba权限)
SQL>create user ogg identified by ogg;
SQL>grant dba to ogg;
备注:若需要详细的用户权限配置请看本文最下方
二)下载配置goldengate(适用源和目标)
1.下载
•可以从http://edelivery.oracle.com/网站下载
•需注册和登录
•选择Oracle Fusion Middleware程序包和对应平台
•点击Oracle GoldenGate on Oracle Media Pack for 对应平台
•点击相应的操作系统版本及类型旁边的下载链接即可开始下载
•根据平台不同其安装介质一般为zip或gz文件
2.软件安装基本配置
1.为goldengate创建子目录
打开goldengate目录,运行ggsci,执行以下代码:
GGSCI>create subdirs //执行完成后,会为ogg子目录创建若干子目录
备注:详细了解子目录作用请看本文最下方
3.配置MGR(Manager)进程
1.为mgr进程配置参数
GGSCI>edit param mgr
2.这里会打开一个窗口,在其中输入以下内容然后保存退出
PORT 7809
DYNAMICPORTLIST 7810-7820
AUTORESTART ER *, RETRIES 4, WAITMINUTES 4
3.启动mgr进程
GGSCI>start mgr
备注:详细各个进程参数详解看本文最下方
4.为需要同步的表添加表级附加日志(适用源端)
1.进入ggsci,执行一下代码登录DBuser
GGSCI> dblogin userid ogg,password ogg
2.登录成功后执行以下代码
Ggsci>add trandata myschema.mytable1
备注:myschema是你需要同步的用户名,mytable1是你需要同步的表,如果是全部可以使用*通配符来代替。
三)配置源端
Extract(抽取)和Pump(传输)进程(适用源端)
1.添加Extract进程
1)创建名字为:extest的抽取进程配置文件
GGSCI> edit params extest
2)在打开文件中添加以下代码并保存退出
extract extest
userid ogg,password ogg
exttrail D:\OGG\dirdat\et //这个是源端本地存放tail文件的位置()
dynamicresolution
table ogg.* ; //通配符意思是ogg下的所有表,所有的都是一个道理
3)添加Extract进程
GGSCI>add extract extest,tranlog,begin now
4)添加本地tail文件
GGSCI>add exttrail D:\OGG\dirdat\et, extract extest
5)启动Extract进程
GGSCI>start extest
2.添加Pump进程
1)创建名字为:dupump的传输进程配置文件
GGSCI>edit params dpump
2)在打开文件中添加以下代码并保存退出
extract dpump
passthru
userid ogg,password ogg
rmthost 192.168.7.234,mgrport 7809,compress //目标IP和ogg端口
rmttrail E:\ogg\dirdat\et //目标端保存tail文件的位置
table ogg.* ;
3)添加本地PUMP进程tail路径(源tail的路径↓↓↓)注意该路径与上面配置文件中tail路径一致
GGSCI>add extract dpump, exttrailsource D:\ogg\dirdat\et
4)添加远程PUMP进程保存tail路径(目标tail保存的路径)
GGSCI>add rmttrail D:\ogg\dirdat\et ,extract dpump
5)启动PUMP进程
GGSCI>start dpump
四)配置目标端检查点与Replicat应用进程(适用目标端)
首先就是创建dba的用户这个上面有就不说了,在来就是开启附加日志和归档日志,然后就可以看下面咯!
1.添加检查点(用于从异常场景中恢复数据)
GGSCI>edit params ./GLOBALS
2.在打开文件中添加以下代码,然后保存退出
checkpointtable ogg.checkpoint
3.在目标数据库中添加检查点
GGSCI>dblogin userid ogg,password ogg
GGSCI>add checkpointtable ggs.checkpoint
4.
配置目标数据库的Manager进程
这个就不多说了,上面都有,这个进程是每个ogg实例必须有的进程来监控其他进程用的
这个就不多说了,上面都有,这个进程是每个ogg实例必须有的进程来监控其他进程用的
5.配置目标数据库的replicat进程(适用目标端)
1) 创建Replicat进程
1) 创建Replicat进程
GGSCI> add replicat repl,exttrail D:\gg\dirdat\et ,checkpointtable ogg.checkpoint
注意:该地址应为trail文件的地址
2) 创建名字为:repl的Replicat进程的参数文件
GGSCI> edit params repl
3)
在打开的文件里添加以下内容,保存后退出即可
replicat repl
userid ggs,password ggs
assumetargetdefs
reperror default,discard
discardfile D:\gg\dirrpt\repl.dsc,append,megabytes 50
dynamicresolution
MAP ogg.*,TARGET ogg.* ;
4)
启动replicat进程
GGSCI>start repl
测试环节:
1.首先在源端和目标端使用“info all”查询所有进程是否为开启状态
2.在源端插入数据
3.使用stats 进程名查询操作日志,抽取、传输、应用都是1那就是OK了。
4.就可以去你的表中查询数据了