美食家大橙子 发表于 2024-8-17 05:29:17

Oracle - 数据库打补丁实践

原文:https://www.cnblogs.com/ddzj01/p/12097467.html

一、概述

   本文将先容怎样给oracle数据库打最新补丁,数据库版本为11.2.0.4单实例,操作体系为redhat6.5
二、下载相关升级包

1. 登录MOS,查阅(ID 2118136.2),下载最新补丁包

https://img-blog.csdnimg.cn/direct/9da479138aa84aa5af47663fb07f543c.png
   PSU (Patch Set Update),数据库补丁
2. 搜索"Patch 6880880",下载最新opatch

https://img-blog.csdnimg.cn/direct/f2165f4030c2419dafaceca08e6c1619.png
   opatch是安装补丁的程序,数据库软件安装完成后,就自带了opatch,但是版本太旧了,所以这里下载最新的opatch

至此已下载两个文件
p6880880_112000_Linux-x86-64.zip:opatch升级包
p29913194_112040_Linux-x86-64.zip:数据库补丁
三、升级opatch

opatch的升级比较简单,就是个文件覆盖
3. 查看原始opatch信息

3.1.查看版本信息
$ cd $ORACLE_HOME/OPatch
$ ./opatch version# 查看版本信息

OPatch Version: 11.2.0.3.4

OPatch succeeded. 3.2.查看打补丁的情况
$ ./opatch lsinventory# 查看打补丁的情况

Oracle Interim Patch Installer version 11.2.0.3.4
Copyright (c) 2012, Oracle Corporation.All rights reserved.

Oracle Home       : /u01/app/oracle/product/11.2.0/db_1
Central Inventory : /u01/app/oraInventory
   from         : /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch version    : 11.2.0.3.4
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2019-12-25_14-26-47PM_1.log

Lsinventory Output file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2019-12-25_14-26-47PM.txt

--------------------------------------------------------------------------------
Installed Top-level Products (1):
Oracle Database 11g                                                11.2.0.4.0
There are 1 products installed in this Oracle Home.
There are no Interim patches installed in this Oracle Home.
--------------------------------------------------------------------------------

OPatch succeeded. 4. 备份原opatch

$ cd $ORACLE_HOME
$ mv OPatch OPatch.bak 5. 解压新下载的opatch包

将下载的opatch包上传到oracle的家目录
$ cd ~
$ sz
$ ls p6880880_112000_Linux-x86-64.zip
p6880880_112000_Linux-x86-64.zip

# 文件上传成功 解压新下载的opatch包
$ cd ~
$ unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
6. 再来查看opatch信息

$ cd $ORACLE_HOME/OPatch
$ ./opatch version  # 查看版本信息

OPatch Version: 11.2.0.3.21

OPatch succeeded.   至此 opatch 升级完毕
四、打数据库补丁

7. 关闭em、监听、数据库

$ emctl stop dbconsole# 如果没有开启em,这步可以跳过

$ lsnrctl stop

$ sqlplus / as sysdba
SQL> shutdown immediate
SQL> exit 8. 解压新下载的补丁包

将下载的补丁包上传到oracle的家目录
$ cd ~
$ ls p29913194_112040_Linux-x86-64.zip
p29913194_112040_Linux-x86-64.zip

$ unzip p29913194_112040_Linux-x86-64.zip 9. 校验该补丁包是否与之前的补丁有冲突

$ cd 29913194
$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

Oracle Interim Patch Installer version 11.2.0.3.21
Copyright (c) 2019, Oracle Corporation.All rights reserved.

PREREQ session

Oracle Home       : /u01/app/oracle/product/11.2.0/db_1
Central Inventory : /u01/app/oraInventory
   from         : /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch version    : 11.2.0.3.21
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2019-12-25_14-46-26PM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.   由于这个测试库之前并没有打什么补丁,所以这里就不可能有补丁冲突的问题,如果这里显示有冲突,再去mos上查找相关办理方案。
10. 正式升级

$ $ORACLE_HOME/OPatch/opatch apply https://img-blog.csdnimg.cn/direct/622e171c8c1b4546a8262dcea030842d.png
   这里要输入3次y和一次回车,这个是时间耗时比较久的,耐心等候
https://img-blog.csdnimg.cn/direct/db78e9fcca8f4bb88ba69f61c0619b04.png
   升级完成后报上面的错误,通过查阅mos(ID 2265726.1),可知这个错误可以被忽略
11. 再次查看打补丁的情况

$ $ORACLE_HOME/OPatch/opatch lsinventory# 查看打补丁的情况


内容较多,略 12. 启动数据库,并运行sql文件

$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus / as sysdba
SQL> startup
SQL> @catbundle.sql psu apply
SQL> quit 13. 启动监听、em

$ lsnrctl start
$ emctl start dbconsole# 如果没有开启em,这步可以跳过   至此数据库打补丁已全部完成!
五、回退数据库补丁

数据库在做变动时,当然要考虑回退方案了,接下来先容怎样回退数据库补丁
14. 关闭em、监听、数据库

$ emctl stop dbconsole# 如果没有开启em,这步可以跳过

$ lsnrctl stop

$ sqlplus / as sysdba
SQL> shutdown immediate
SQL> exit 15. 回退补丁

$ $ORACLE_HOME/OPatch/opatch rollback -id 29913194 https://img-blog.csdnimg.cn/direct/4700f91ba4494a40826e25ea1bab4fe4.png
   这里要输入一次y,时间比较久,耐心等候
https://img-blog.csdnimg.cn/direct/a4eeb6a4bc4e4f808a4148d1a549a27e.png
   这里提示warning,查阅mos(ID 1448337.1),得知可以忽略
16. 启动数据库,并运行sql文件

$ cd $ORACLE_HOME/OPatch
$ ./opatch lsinventory# 查看打补丁的情况


OPatch Version: 11.2.0.3.21

OPatch succeeded.
$ ./opatch lsinv
Oracle Interim Patch Installer version 11.2.0.3.21
Copyright (c) 2019, Oracle Corporation.All rights reserved.

Oracle Home       : /u01/app/oracle/product/11.2.0/db_1
Central Inventory : /u01/app/oraInventory
   from         : /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch version    : 11.2.0.3.21
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2019-12-25_16-15-41PM_1.log

Lsinventory Output file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2019-12-25_16-15-41PM.txt

--------------------------------------------------------------------------------
Local Machine Information::
Hostname: orasingle
ARU platform id: 226
ARU platform description:: Linux x86-64
Installed Top-level Products (1):
Oracle Database 11g                                                11.2.0.4.0
There are 1 products installed in this Oracle Home.
There are no Interim patches installed in this Oracle Home.
--------------------------------------------------------------------------------

OPatch succeeded.   可以看到补丁都被卸载了
18. 启动监听 和 EM

$ lsnrctl start
$ emctl start dbconsole# 如果没有开启em,这步可以跳过

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Oracle - 数据库打补丁实践