最近在进行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.