本篇主要记录以11.2.0.4为基础,单实例条件下Oracle补丁安装过程。
1、补丁包和环境介绍
首先确定数据库版本,笔者以一台全新安装Oracle 11gR2单实例进行安装,具体版本为11.2.0.4。
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE? ? 11.2.0.4.0? ? ? Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 – Production
进行操作的补丁文件如下:
[root@XXX-PROD-DB upload]# cd patch/
[root@XXX-PROD-DB patch]# ls -l
total 282772
-rw-r--r--. 1 root root? ? 407030 Jul 15 09:03 p19852360_112040_Generic.zip
-rw-r--r--. 1 root root? 71580583 Jul 15 09:03 p20299013_112040_Linux-x86-64.zip
-rw-r--r--. 1 root root? 12335412 Jul 15 09:03 p20299015_112040_Linux-x86-64.zip
-rw-r--r--. 1 root root? 40486165 Jul 15 09:03 p20406239_112040_Linux-x86-64.zip
-rw-r--r--. 1 root root 112087303 Jul 15 09:02 p20834611_112040_Linux-x86-64.zip
-rw-r--r--. 1 root root? 52648436 Jul 15 09:02 p6880880_112000_Linux-x86-64.zip
注意:其中p6880880_112000_Linux-x86-64.zip是新版本OPatch,一般而言打补丁都需要更新最新的OPatch。
2、升级OPatch组件
首先需要以覆盖方式升级OPatch组件。
[oracle@XXX-PROD-DB ~]$ cd $ORACLE_HOME
[oracle@XXX-PROD-DB dbhome_1]$ ls -l | grep OPatch
drwxr-xr-x.? 8 oracle oinstall? 4096 Jul 16 10:08 OPatch
备份OPatch目录,并用解压zip文件替换。
[oracle@XXX-PROD-DB dbhome_1]$ cp /upload/patch/p6880880_112000_Linux-x86-64.zip $ORACLE_HOME
[oracle@XXX-PROD-DB dbhome_1]$ ls -l | grep p6880880_112000_Linux-x86-64.zip?
-rw-r--r--.? 1 oracle oinstall 52648436 Aug? 4 08:42 p6880880_112000_Linux-x86-64.zip
[oracle@XXX-PROD-DB dbhome_1]$ mv OPatch OPatch_BK
[oracle@XXX-PROD-DB dbhome_1]$ ls -l | grep OPatch
drwxr-xr-x.? 8 oracle oinstall? ? 4096 Jul 16 10:08 OPatch_BK
解压OPatch文件。
[root@XXX-PROD-DB ~]# cd /u01/app/oracle/product/11.2.0/dbhome_1
[root@XXX-PROD-DB dbhome_1]# ls -l | grep p6880880_112000_Linux-x86-64.zip?
-rw-r--r--.? 1 oracle oinstall 52648436 Aug? 4 08:42 p6880880_112000_Linux-x86-64.zip
[root@XXX-PROD-DB dbhome_1]# unzip p6880880_112000_Linux-x86-64.zip
[root@XXX-PROD-DB dbhome_1]# ls -l | grep OPatch
drwxr-x---. 10 root? root? ? ? ? 4096 Mar 31 17:10 OPatch
drwxr-xr-x.? 8 oracle oinstall? ? 4096 Jul 16 10:08 OPatch_BK
[root@XXX-PROD-DB dbhome_1]# chown -R oracle:oinstall OPatch
[root@XXX-PROD-DB dbhome_1]# ls -l | grep OPatch
drwxr-x---. 10 oracle oinstall? ? 4096 Mar 31 17:10 OPatch
drwxr-xr-x.? 8 oracle oinstall? ? 4096 Jul 16 10:08 OPatch_BK
OPatch是一个命令脚本工具,为方便起见,可以将其加入到PATH环境变量中。
[oracle@XXX-PROD-DB dbhome_1]$ cd ~
[oracle@XXX-PROD-DB ~]$ vi .bash_profile?
(篇幅原因,有省略……)
ORACLE_SID=XXXCDB
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
PATH=$PATH:$ORACLE_HOME/bin:/u01/app/oracle/product/11.2.0/dbhome_1/OPatch
export ORACLE_SID
export ORACLE_BASE
export ORACLE_HOME
export PATH
".bash_profile" 23L, 409C written?
查看OPatch版本。
[oracle@XXX-PROD-DB ~]$ opatch version
OPatch Version: 11.2.0.3.10
OPatch succeeded.
2、补丁19852360_112040
补丁19852360_112040是一个简单的补丁,主要是针对JDBC相关的补丁类型。原则上,不需要进行关库操作。
[root@XXX-PROD-DB patch]# unzip p19852360_112040_Generic.zip?
Archive:? p19852360_112040_Generic.zip
? creating: 19852360/
? inflating: 19852360/README.txt? ? ?
? creating: 19852360/files/
? creating: 19852360/files/jdbc/
(篇幅原因,有省略……)
? inflating: 19852360/etc/xml/GenericActions.xml?
? inflating: 19852360