fbo_ggs_Linux_x64_ora11g_64bit.tar文件是旧版OGG安装时解压出来的tar文件,新版OGG软件unzip解压时,也会生成此文件,当然也可以使用unzip解压时的覆盖替代手工删除
$rm fbo_ggs_Linux_x64_ora11g_64bit.tar
4.3 在原版OGG目录中安装(解压)新版OGG软件
$unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
$tar xvf fbo_ggs_Linux_x64_ora11g_64bit.tar
4.4 验证升级成功情况
$cd $OGG
[oracle@server2 u01]$ cd $OGG
[oracle@server2 ogg]$ ./ggsci
| Oracle GoldenGate Command Interpreter for Oracle Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO Linux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:32:14 ? Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved. ? GGSCI (server2) 1> |
从这里看到,OGG软件版本已经升级至11.2.1.0.1
5、验证升级后replicat的checkpoint是否为一致
5.1 查看升级后replicat的checkpoint是否与升级前一致
| GGSCI (server2) 46> info reptr, detail ? REPLICAT REPTR Last Started 2015-01-30 13:03 Status STOPPED Checkpoint Lag 00:00:00 (updated 00:12:58 ago) Log Read Checkpoint File ./dirdat/tr000003 2015-01-30 13:18:16.296427 RBA 48953996 ? Extract Source Begin End ? ./dirdat/tr000003 * Initialized * 2015-01-30 13:18 ./dirdat/tr000000 * Initialized * First Record ? ? Current directory /u01/ogg ? Report file /u01/ogg/dirrpt/REPTR.rpt Parameter file /u01/ogg/dirprm/reptr.prm Checkpoint file /u01/ogg/dirchk/REPTR.cpr Checkpoint table GOLDENGATE.CHECKPOINT_REPTR_01 Process file /u01/ogg/dirpcs/REPTR.pcr Stdout file /u01/ogg/dirout/REPTR.out Error log /u01/ogg/ggserr.log |
?
Current Checkpoint 跟升级前一样,仍为Sequence #: 3 RBA: 48953996,进一步证明升级成功。
6、验证升级后可正常同步数据场景准备
6.1 先记录下源端、目标端数据量为一致
(生产库环境此步可以跳过,因为生产库的表受业务的操作数据不断发生变化,本案例为创建一张专用用于测试升级的表进行测试)
| 源端 |
目标端 |
| SQL> select count(*) from goldengate.ogg_upg; COUNT(*) ---------- 2150000 |
SQL> select count(*) from goldengate.ogg_upg; COUNT(*) ---------- 2150000 ? |
源端和目标端数据量一致。
6.2 在目标端replicat进程启动前在源端删除部分数据
| SQL> delete goldengate.ogg_upg where rownum <1000001; 1000000 rows deleted. SQL> commit; SQL> select count(*) from goldengate.ogg_upg; COUNT(*) ---------- 1150000 |
7、重建目标端replicat进程
重建replicat进程的原因:ogg_11.1.1.1.2每条replicat进程只有CHECKPOINT一张表,而ogg_11.2.x.x.1每条replicat进程有CHECKPOINT,CHECKPOINT_LOX两张表,所以,如果在升级后,直接启动replicat进程,是无法启动的,会报如下错误:
| ERROR OGG-00665 OCI Error describe for query (status = 942-ORA-00942: table or view does not exist), SQL ? 2015-01-28 05:12:59 ERROR OGG-01668 PROCESS ABENDING. |
提示表不存在,这张表是指:GOLDENGATE.CHECKPOINT_REPTR_01_lox表(CHECKPOINT_LOX表),重建replicat的最终目的是让在重建进程时,自动将两张checkpoint表都自动创建起来。
7.1 删除replicat进程与checkpoint表
GGSCI>dblogin userid goldengate,password goldengate
GGSCI>delete replicat reptr
GGSCI>delete checkpointtable GOLDENGATE.CHECKPOINT_REPTR_01
7.2 重新建立replicat进程
GGSCI>dbloginuserid goldengate, password goldengate
GGSCI>add checkpointtable goldengate.checkpoint_reptr_01
GGSCI>add replicat reptr, exttrail ./dirdat/tr,checkpointtable goldengate.checkpoint_reptr_01
?
到这一步,replicat启动后,还是无法继续应用源端投递过来的trail的,因为源端的datapump进程做过ETROLLOVER了,所以需要手工修改replicat的sequence#和RBA号到与datadump进程的target extract trails中的seqno和RBA一致。
7.3 修改目标端replicat的extseqno和extrba号
根据上面一步,查出的源端的datadump进程的remotetrail file的seqno号和RBA,决定replicat要更改的extseqno和extrba号
GGSCI (server2) 37> Alter replicat reptrEXTSEQNO 4, EXTRBA 0
7.4 查看新建立的replicat进程的SEQ#和RBA号
GGSCI(server2) 27> info reptr, sh