Oracle GoldenGate版本升级时的注意点


最近在进行Oracle GoldenGate的版本升级,参考的文档为:
How To Upgrade Goldengate From 11.2.1.x to 11.2.1.y for Oracle Database (文档 ID 1601971.1)

该文档中说的很清楚:
2. Stop the OGG processes on the existing OGG v11.2.1.x home including the manager

也就是说:停止ogghome下的所有进程:extract(包括抽取和传输),replicat(复制),server(在目的端的写入trail file的进程),mgr进程
其中,server进程可能容易被忽略掉。因为其他三类的进程(extract和replicat和mgr)都能用命令stop掉。

在本案例中,进行的是OGG目的端的升级,恰恰此时server进程被调度起来,导致tar -xvf ggs_AIX_ppc_ora11g_64bit.tar 报错:

oracle@hosta:/home/oracle/ggs$ tar -xvf ggs_AIX_ppc_ora11g_64bit.tar
x .
x ./mgr, 5176606 bytes, 10111 media blocks.
x ./ggsci, 6273278 bytes, 12253 media blocks.
x ./ggcmd, 3087685 bytes, 6031 media blocks.
x ./ggMessage.dat, 1334816 bytes, 2608 media blocks.
x ./help.txt, 178647 bytes, 349 media blocks.
x ./tcperrs, 759 bytes, 2 media blocks.
x ./bcrypt.txt, 1725 bytes, 4 media blocks.
x ./libxml2.txt, 1668 bytes, 4 media blocks.
x ./zlib.txt, 1476 bytes, 3 media blocks.
x ./freeBSD.txt, 1968 bytes, 4 media blocks.
x ./notices.txt, 213535 bytes, 418 media blocks.
tar: 0511-188 Cannot create ./libxerces-c.a: Cannot open or remove a file containing a running program.
tar: 0511-188 Cannot create ./libicui18n38.a: Cannot open or remove a file containing a running program.
tar: 0511-188 Cannot create ./libicuuc38.a: Cannot open or remove a file containing a running program.
tar: 0511-188 Cannot create ./libicudata38.a: Cannot open or remove a file containing a running program.
tar: 0511-188 Cannot create ./libantlr3c.so: Cannot open or remove a file containing a running program.
tar: 0511-188 Cannot create ./libggrepo.a: Cannot open or remove a file containing a running program.
tar: 0511-188 Cannot create ./libgglog.a: Cannot open or remove a file containing a running program.
x ./dirjar

省略部分

tar: 0511-188 Cannot create ./libdb-5.2.so: Cannot open or remove a file containing a running program.
省略部分
tar: 0511-188 Cannot create ./server: Cannot open or remove a file containing a running program.
省略部分

tar -xvf ggs_AIX_ppc_ora11g_64bit.tar 报错归报错,但是能执行完成,只是OGG的新版本的个别程序文件(binary)无法覆盖,进而导致新版本OGG无法登陆,如下:

oracle@hosta:/home/oracle/ggs$
oracle@hosta:/home/oracle/ggs$
oracle@hosta:/home/oracle/ggs$
oracle@hosta:/home/oracle/ggs$ ggsci
exec(): 0509-036 Cannot load program ggsci because of the following errors:
rtld: 0712-001 Symbol _MSG_ERR_COLUMN_BUFFER_OVERFLOW__FP14CSourceContextiT2Q2_15CMessageFactory18MessageDisposition was referenced
      from module ggsci(), but a runtime definition
      of the symbol was not found.
rtld: 0712-002 fatal error: exiting.
oracle@hosta:/home/oracle/ggs$

基于此种问题,我对How To Upgrade Goldengate From 11.2.1.x to 11.2.1.y for Oracle Database进行了完善,完善后的升级步骤如下:

1. Download the latest OGG v11.2.1.y version provided by OGG Support team.

2. Stop the OGG processes on the existing OGG v11.2.1.x home including the manager,and exit all GGSCI sessions,
  并使用ps -ef | grep ggs 命令确认$OGG_HOME下没有任何进程在运行。(注意:我之所以grep ggs是因为我的$OGG_HOME的路径中包括ggs)--->这是我加的
3. Take a backup of the existing OGG home
4. Unzip and untar the new build on top of the existing OGG home. This will overwrite the binaries,
  确认如下问题:
  4.1 在tar -xvf的输出日志中,不包括任何的“Cannot open or remove a file containing a running program.”                  --->这是我加的
  4.2 进入ggsci命令提示符,确认ggsci能正常进入,并确认$OGG_HOME已经升级到新的ogg版本。                                    --->这是我加的

5-7步省略,请参考该mos文章
以下步骤照抄该mos文章,对以下步骤,我并没有任何的修改。
8. If using DDL replication steps 9 to 14 to needs to be followed. If using only DML replication then skip steps 9 to 14

9. Stop doing DDL changes on the source db and run the ddl_disable script as sysdba to disable the OGG ddl trigger

10. Disconnect all sessions that ever issued DDL. Otherwise the database might generate ORA* errors

11. Run the ddl_setup script as sysdba. You will be prompted for the name of the Oracle GoldenGate
DDL schema.

12. Run the role_setupscript to recreate the Oracle GoldenGate DDL role.

13. Grant the role that you created to all Oracle GoldenGate users under which the
following Oracle GoldenGate processes run:Extract, Replicat, GGSCI, and Manager.
You might need to make multiple grants ifthe processes have different user names.

14. Run the ddl_enable.sqlscript to enable the DDL trigger.

15. Start the OGG process back

16. Resume doing DDL changes to the db.

GoldenGate单向表DML同步

Oracle GoldenGate 系列:Extract 进程的恢复原理

Oracle GoldenGate安装配置

Oracle goldengate的OGG-01004 OGG-1296错误

Oracle GoldenGate快速入门教程:基本概念和配置

搭建一个Oracle到Oracle的GoldenGate双向复制环境

本文永久更新链接地址:

相关内容