Linux下GoldenGate单机单向同步
一、配置Manager管理程的参数
(1)查看Manager进程状态
GGSCI (localhost) 3> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER STOPPED
GGSCI (localhost) 4>
(2)编辑参数
GGSCI (John-PC) 3> edit params mgr
在新打开的/u01/ogg/dirprm/mrg.prm文件中输入“port 7809”并保存退出。
二、配置抽取进程
GGSCI (localhost) 2> add extract ext1,tranlog, begin now
EXTRACT added.
GGSCI (localhost) 3> add exttrail /u01/ogg/dirdat/st, extract ext1
EXTTRAIL added.
add exttrail /u01/ogg/dirdat/st, extract ext1表示通过ext1进程把数据抽取到本地的/u01/ogg/dirdat/st文件中。
st代表scott,表示本实验是要把scott.test_table中的数据同步到haishu.test_table中。当然也可以起其他名字,不过建议起的有意义一点。
exttrail表示本地。若要抽取到远程服务中,应使用add rmttrail语句。
编辑抽取进程ext1参数
GGSCI (localhost) 4> edit params ext1
在新打开的/u01/ogg/dirprm/ext1.prm中输入以下内容并保存退出
extract ext1
userid ogg,password oracle
rmthost 127.0.0.1,mgrport 7809
rmttrail /u01/ogg/dirdat/st
dynamicresolution
table scott.test_table;
因为这个实验是本机上的单向同步,所以远程IP地址即为本机地址127.0.0.1,当然也可以写为实际的IP地址192.168.6.135
三、添加checkpoint表
复制进程需要用到checkpoint表。
GGSCI (localhost) 5> edit params ./GLOBAL
这里./表示当前目录,即/u01/ogg/
在./GLOBAL文件中输入以下内容,并保存退出。
GGSCHEMA ogg
CHECKPOINTTABLE ogg.checkpoint
添加checkpoint表
GGSCI (localhost) 6> add checkpointtable ogg.checkpoint
Successfully created checkpoint table ogg.checkpoint.
四、配置复制进程
GGSCI (localhost) 5> add replicat rep1,exttrail /u01/ogg/dirdat/st, checkpointtable ogg.checkpoint
REPLICAT added.
这个句子表示从本机的/u01/ogg/dirdat/st中读取数据,并通过rep1进程把这些数据复制到数据库中。ogg.checkpoint是rep1的容器表。
编辑rep1进程参数
GGSCI (John-PC) > edit params rep1
在新打开的/u01/ogg/dirprm/rep1.prm中输入如下内容并保存退出
replicat rep1
userid ogg,password oracle
assumetargetdefs
discardfile /u01/ogg/dirdat/rep1_discard.txt,append
map scott.test_table, target haishu.test_table
RESOLVECONFLICT (UPDATEROWEXISTS, (DEFAULT, OVERWRITE))
RESOLVECONFLICT (INSERTROWEXISTS, (DEFAULT, OVERWRITE))
RESOLVECONFLICT (DELETEROWEXISTS, (DEFAULT, OVERWRITE))
RESOLVECONFLICT (UPDATEROWMISSING, (DEFAULT, IGNORE))
RESOLVECONFLICT (DELETEROWMISSING, (DEFAULT, IGNORE));
五、测试同步结果
1 在sqlplus环境中用sys用户登录数据库sqlplus / as sysdba
解锁scott用户
创建haishu用户并授予grant和connect权限
sys用户下创建scott.test_table表和haishu.scott表
SQL> create table scott.test_table(id varchar(10) primary key);
SQL> create table haishu.test_table(id varchar(10) primary key);
2 在ogg环境中启动ogg的管理进程、抽取进程和复制进程
GGSCI (localhost) 16> start mgr
Manager started.
GGSCI (localhost) 17> start ext1
Sending START request to MANAGER ...
EXTRACT EXT1 starting
GGSCI (localhost) 18> start rep1
Sending START request to MANAGER ...
REPLICAT REP1 starting
GGSCI (localhost) 19> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:00:00 00:16:45
REPLICAT RUNNING REP1 00:00:00 00:00:01
进程状态为running表示正常启动;若为abended或stop表示出错。可用“view report 进程名称”来查看错误信息,比如“view report ext1”。
3 向scott方案中插入一条数据并从haishu方案中检验
SQL> insert into scott.test_table values('scott-001');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from haishu.test_table;
ID
----------
scott-001
4 从scott方案中删除数据并从haishu方案中检验
SQL> delete from scott.test_table;
已删除 1 行。
SQL> commit;
提交完成。
SQL> select * from haishu.test_table;
未选定行
上述实验结果说明成功实现把scott.test_table中的数据同步到haishu.test_table中。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29485627/viewspace-1761123/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29485627/viewspace-1761123/