|
摘要
如今的软件是越来越复杂,光从版本和补丁管理可以看出软件的流行度。任何企业级软件或开源社区维护的开源软件一般都会隔半年或一年发布新的版本或者补丁。而Oracle作为全球第二大软件开发商,每个季度都会发布关键补丁升级和安全告警公告。 客户在使用软件过程会出现问题,基于提供的问题开发商会找到对应的缺陷进行程序修改,这样就形成了补丁。同样使用Oracle GoldenGate,也会免不了软件升级或者打补丁。本文基于Oracle GoldenGate 12.3的版本下介绍了针对于Oracle和异构数据库的GoldenGate软件的补丁升级。大致总结了下可能两种方式:针对于Oracle数据的用OPatch方式、非Oracle数据库使用软件覆盖方法。当然这种是针对于小版本升级,而对大版本而言,为保证数据安装或考虑回退方案还得采取进程迁移方式。
关于OGG补丁升级
关键补丁更新(CPU)
在介绍GoldenGate补丁升级之前,先来了解下Oracle的CPU。CPU,英文Critical Patch Updates,中文意思关键补丁更新,指的是产品安全补丁的集合,主要提供给具有有效支持合同的客户,针对Oracle软件产品每个季度(1月、4月、7月、10月的第三个星期)会发布一个重大更新。来自 https://www.oracle.com/security-alerts/ 关于关键补丁更新截图如下:
GoldenGate补丁
安装补丁不同于升级到Oracle GoldenGate的新版本,大多数情况下是小版本升级,补丁升级后的软件大部分还是沿用之前的。两张有个最大的区别,安装补丁后软件还是跟之前一样使用,对所运行的进程环境基本没变;而升级后可能会拥有新的软件目录,针对OGG上运行的进程需要迁移到新的环境或目录中。
Oracle GoldenGate的补丁升级主要是针对于Oracle版本和非Oracle版本会有比较大的区别,OGG for Oracle的补丁升级使用的是OPatch来实现的,而OGG for Non-Oracle的补丁升级使用软件直接覆盖的方式。所以在生产级别的补丁升级时需要做好旧版本的备份,以便在补丁升级后碰到问题时进行回退。
补丁安装的步骤大致如下:
- 下载所需要安装的补丁包,一般是.zip文件。如果是针对于Oracle的OGG,确定现有环境下的OPatch版本满足目标补丁集所需的opatch版本,如果不满足请下载对应最低要求的opatch版本。同时将补丁包拷贝到对应的环境中。
- 确定数据流上下游数据同步状态及业务需求后,停止OGG实例下的Extract/Repliace进程及管理进程。
- 备份现有OGG实例软件和相关的数据。
- 执行补丁升级,针对Oracle版本的OGG才有OPatch升级方式,非Oracle版本的OGG直接解压覆盖源文件。
- 启动OGG实例的MGR、Extract和Replicat进程,并逐步确认状态。
- [可选] 基于升级后OGG运行情况后,有必要通过备份进行OGG软件还原操作。
当然在实际某些非Oracle数据库中,可能会有些要特别注意的。比如OGG for SQL Server在停完ER和Manager进程后,还得手动关闭SQL Server服务器上的CDC抓取任务,在升级完后还得先手动启动CDC抓取任务后再去启动OGG上的Manager和ER进程。还有比如针对MySQL启动DDL复制的环境中,需要在元数据中重新运行ddl_install.sh脚本。
接下来分享在生产环境中做的两个GoldenGate 12.3软件补丁升级的例子,其中记录整个操作过程。
OGG 12.3(zOS DB2)补丁升级
现有环境Linux 7上安装GoldenGate 12.3 for DB2 for z/OS远程抽取IBM Mainframe大型机上运行的DB v11数据库,版本12.3.0.1.3 其构建日期为180201,安装目录为ACFS共享文件系统/acfsogg/oggs。现计划将其软件补丁升级到12.3.0.1.191015发布的补丁版本。
12.3.0.1.3 -> 12.3.0.1.191015
# su - grid
$ cd /acfsogg/oggs
$ ./ggsci -V
Oracle GoldenGate Command Interpreter for DB2
Version 12.3.0.1.3 OGGCORE_12.3.0.1.0_PLATFORMS_180201.2000.3
Linux, x64, 64bit (optimized), DB2 UDB 11.1 on Feb 17 2018 11:33:45
Copyright (C) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
--确认当前mgr下的extract进程所设计的trail均在`/acfsogg/oggs`
> info showsubdirs
...
> info <primary_extract> detail
> info <pump_extract>, detail
--确认trail目录
--report/parameter/checkpoint/process file和error日志的目录位置
$ ls -lh /u01/source/p30346468_12301191015_Linux-x86-64.zip
-rw-r--r-- 1 grid oinstall 64M Apr 9 18:00 p30346468_12301191015_Linux-x86-64.zip
$ cd /u01/source
$ unzip p30346468_12301191015_Linux-x86-64.zip
...
$ ls -lh ggs_Linux_x64_UDB111_64bit.tar
-rw-rw-r-- 1 grid oinstall 257M Sep 21 2019 ggs_Linux_x64_UDB111_64bit.tar
$ ./ggsci
> info all
> stop er *
> info all
> stop mgr
> info all
--确保所有进程已停止
$ cd /acfsogg
$ du -sh oggs
--请确保oggs目录的大小,保证有足够的空间大小。
--如果trail文件过大只可备份最新的两个trail文件。
$ tar -cf oggs.tar oggs
...
$ cd /acfsogg/oggs
$ tar -xvf ggs_Linux_x64_UDB111_64bit.tar
...
$ du -sh
--查看版本
$ ./ggsci -V
Oracle GoldenGate Command Interpreter for DB2
Version 12.3.0.1.191015 OGGCORE_12.3.0.1.0OGGBP_PLATFORMS_190920.1011
Linux, x64, 64bit (optimized), DB2 UDB 11.1 on Sep 21 2019 03:21:36
Copyright (C) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
$ ./ggsci
> start mgr
> view report mgr
...
--确认无报错
> start <primary_extract>
> view report <primary_extract>
> info <primary_extract>
--确认上述进程无报错后。启动其他相关进程
> info all
...OGG 12.3(Oracle 12c)补丁升级
现有环境Linux 7上安装GoldenGate 12.3 for Oracle 12c投递数据到Oracle 12.2.0.1数据库,版本12.3.0.1.2 其构建日期为171208,安装目录为ACFS共享文件系统/acfsogg/oggt。现计划将其软件补丁升级到12.3.0.1.191015发布的补丁版本。
12.3.0.1.2 -> 12.3.0.1.191015
- 下载补丁包:Patch 30341565: Oracle GoldenGate 12.3.0.1.191015 for Oracle 12c
- 由于补丁30341565对OPatch的版本要求为12.2.0.1.12,而当前GoldenGate下OPatch版本为12.2.0.1.6,故此需要下载更高级的OPatch软件包。Patch 6880880
# su - grid
$ cd /acfsogg/oggt
$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 12.3.0.1.2 OGGCORE_12.3.0.1.0_PLATFORMS_171208.0005_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Dec 9 2017 00:51:03
Operating system character set identified as UTF-8.
Copyright (C) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
$ ggsci
> stop er *
> stop mgr
> info all
$ cd /acfsogg
$ du -sh oggt
--请确保oggt目录的大小,保证有足够的空间大小。
--如果trail文件过大只可备份最新的两个trail文件。
$ tar -cf oggt.tar oggt
...
- 升级OPatch:通过目录替换的方式进行OPatch软件升级 - 12.2.0.1.6 -> 12.2.0.1.19
$ ls -lh p6880880_122010_Linux-x86-64.zip
-rw-r--r-- 1 grid oinstall 111M Apr 14 18:27 p6880880_122010_Linux-x86-64.zip
$ cd /acfsogg/oggt
$ OPatch/opatch -version
OPatch Version: 12.2.0.1.6
OPatch succeeded.
--移除现有OPatch目录
$ mv OPatch OPatch_bak
$ unzip /home/grid/p6880880_122010_Linux-x86-64.zip
...
$ OPatch/opatch version
OPatch Version: 12.2.0.1.19
OPatch succeeded.
$ export ORACLE_HOME=/acfsogg/oggt
$ OPatch/opatch lspatches
There are no Interim patches installed in this Oracle Home &#34;/acfsogg/oggt&#34;.
OPatch succeeded.
$ cd
$ ls -lh p30341565_12301191015_Linux-x86-64.zip
-rw-r--r-- 1 grid oinstall 51M Apr 14 18:27 p30341565_12301191015_Linux-x86-64.zip
$ export ORACLE_HOME=/acfsogg/oggt
$ unzip p30341565_12301191015_Linux-x86-64.zip
...
inflating: 30341565/files/version4j.jar
inflating: 30341565/files/zlib.txt
inflating: OGG-12.3.0.1-README.txt
inflating: OGGCORE 12.3.0.1.191015.pdf
inflating: README_ora12c.txt
$ cd 30341565/
$ ls
etc files
$ export PATH=$ORACLE_HOME/OPatch:$PATH
$ which opatch
/acfsogg/oggt/OPatch/opatch
$ opatch apply
Oracle Interim Patch Installer version 12.2.0.1.19
Copyright (c) 2020, Oracle Corporation. All rights reserved.
Oracle Home : /acfsogg/oggt
Central Inventory : /u01/app/oraInventory
from : /acfsogg/oggt/oraInst.loc
OPatch version : 12.2.0.1.19
OUI version : 12.2.0.1.4
Log file location : /acfsogg/oggt/cfgtoollogs/opatch/opatch2020-04-14_18-32-30PM_1.log
Verifying environment and performing prerequisite checks...
OPatch continues with these patches: 30341565
Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.
Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = &#39;/acfsogg/oggt&#39;)
Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch &#39;30341565&#39; to OH &#39;/acfsogg/oggt&#39;
Patching component oracle.oggcore.ora12c, 12.3.0.1.2...
Patch 30341565 successfully applied.
Log file location: /acfsogg/oggt/cfgtoollogs/opatch/opatch2020-04-14_18-32-30PM_1.log
OPatch succeeded.
$ opatch lspatches
30341565;
OPatch succeeded.
$ ./ggsci -V
Oracle GoldenGate Command Interpreter for Oracle
Version 12.3.0.1.191015 OGGCORE_12.3.0.1.0OGGBP_PLATFORMS_190920.1011_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Sep 21 2019 10:42:40
Copyright (C) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
注意:碰到问题OGG Replicat Is Abended With OGG-00878 Could Not Execute SQL, Not Logged Onto DataBase (Doc ID 2416186.1)。由于环境变量ORACLE_HOME原因 导致启动的进程无法连接Oracle数据库,重新登录再启动mgr、replicat进程即可恢复正常 $ ggsci
> info all
> start mgr
> start er *
> info all总结
全文对Oracle GoldenGate的补丁升级进行了简单的介绍了,后续分享了两个生产GoldenGate软件补丁的案例,希望读者能了解OGG补丁升级的操作。
参考文档
- Oracle关键补丁更新,安全警报和公告:https://www.oracle.com/security-alerts/
- 关键补丁更新存档:https://www.oracle.com/security-alerts/cpuarchive.html
- 升级Oracle GoldenGate经典版 19.1
- 打补丁Oracle GoldenGate经典版 19.1
|
|