首页 > 数据库 >【转载】Oracle - 数据库打补丁最佳实践

【转载】Oracle - 数据库打补丁最佳实践

时间:2022-11-28 10:13:29浏览次数:51  
标签:orasingle 数据库 opatch 11.2 OPatch oracle 打补丁 Oracle

一、概述

本文将介绍如何给oracle数据库打最新补丁,数据库版本为11.2.0.4单实例,操作系统为redhat6.5

 

二、下载相关升级包

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

1

PSU (Patch Set Update),数据库补丁

 

2. 搜索"Patch 6880880",下载最新opatch

2

opatch是安装补丁的程序,数据库软件安装完成后,就自带了opatch,但是版本太旧了,所以这里下载最新的opatch

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

 

三、升级opatch

opatch的升级比较简单,就是个文件覆盖

3. 查看原始opatch信息

[oracle@orasingle ~]$ cd $ORACLE_HOME/OPatch
[oracle@orasingle OPatch]$ ./opatch version  # 查看版本信息

OPatch Version: 11.2.0.3.4

OPatch succeeded.

 

 

[oracle@orasingle OPatch]$ ./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

[oracle@orasingle ~]$ cd $ORACLE_HOME
[oracle@orasingle db_1]$ mv OPatch OPatch.bak

 

5. 解压新下载的opatch包

将下载的opatch包上传到oracle的家目录
[oracle@orasingle db_1]$ cd ~
[oracle@orasingle ~]$ unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME

 

6. 再来查看opatch信息

[oracle@orasingle ~]$ cd $ORACLE_HOME/OPatch
[oracle@orasingle OPatch]$ ./opatch version  # 查看版本信息

OPatch Version: 11.2.0.3.21

OPatch succeeded.

至此opatch升级完毕

 

四、打数据库补丁

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

[oracle@orasingle ~]$ emctl stop dbconsole  # 如果没有开启em,这步可以跳过

[oracle@orasingle ~]$ lsnrctl stop

[oracle@orasingle ~]$ sqlplus / as sysdba
SQL> shutdown immediate
SQL> exit

 

8. 解压新下载的补丁包

将下载的补丁包上传到oracle的家目录
[oracle@orasingle ~]$ cd ~
[oracle@orasingle ~]$ unzip p29913194_112040_Linux-x86-64.zip

 

9. 校验该补丁包是否与之前的补丁有冲突

[oracle@orasingle ~]$ cd 29913194
[oracle@orasingle 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@orasingle 29913194]$ $ORACLE_HOME/OPatch/opatch apply

3

这里要输入3次y和一次回车,这个是时间耗时比较久的,耐心等待

4

升级完成后报上面的错误,通过查阅mos(ID 2265726.1),可知这个错误可以被忽略

 

11. 再次查看打补丁的情况

[oracle@orasingle 29913194]$ $ORACLE_HOME/OPatch/opatch lsinventory  # 查看打补丁的情况

内容较多,略

 

12. 启动数据库,并运行sql文件

[oracle@orasingle 29913194]$ cd $ORACLE_HOME/rdbms/admin
[oracle@orasingle admin]$ sqlplus / as sysdba
SQL> startup
SQL> @catbundle.sql psu apply
SQL> quit

 

13. 启动监听、em

[oracle@orasingle ~]$ lsnrctl start
[oracle@orasingle ~]$ emctl start dbconsole  # 如果没有开启em,这步可以跳过

至此数据库打补丁已全部完成!

 

五、回退数据库补丁

数据库在做变更时,当然要考虑回退方案了,接下来介绍如何回退数据库补丁

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

[oracle@orasingle ~]$ emctl stop dbconsole  # 如果没有开启em,这步可以跳过

[oracle@orasingle ~]$ lsnrctl stop

[oracle@orasingle ~]$ sqlplus / as sysdba
SQL> shutdown immediate
SQL> exit

 

15. 回退补丁

[oracle@orasingle ~]$ $ORACLE_HOME/OPatch/opatch rollback -id 29913194

5

这里要输入一次y,时间比较久,耐心等待

6

这里提示warning,查阅mos(ID 1448337.1),得知可以忽略

 

16. 启动数据库,并运行sql文件

[oracle@orasingle 29913194]$ cd $ORACLE_HOME/rdbms/admin
[oracle@orasingle admin]$ sqlplus / as sysdba
SQL> startup
SQL> @catbundle_PSU_ORCLTEST_ROLLBACK.sql  # 注意这里可能每个人都不一样,orcltest是我的实例名
SQL> quit

 

17. 再查看打补丁的情况

[oracle@orasingle ~]$ cd $ORACLE_HOME/OPatch
[oracle@orasingle OPatch]$ ./opatch lsinventory  # 查看打补丁的情况

复制代码
OPatch Version: 11.2.0.3.21

OPatch succeeded.
[oracle@orasingle OPatch]$ ./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 

[oracle@orasingle ~]$ lsnrctl start
[oracle@orasingle ~]$ emctl start dbconsole  # 如果没有开启em,这步可以跳过

 

六、总结

本文给大家介绍了最简单的单实例数据库打补丁步骤,仅作参考,实际应以补丁包中的readme为准。

七、附录

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

标签:orasingle,数据库,opatch,11.2,OPatch,oracle,打补丁,Oracle
From: https://www.cnblogs.com/lkj371/p/16931454.html

相关文章

  • 数据库中的锁
    在很多文章中都能见到不少“锁”,下面整理下常见的“锁”1、按照并发策略分类数据库中的并发控制主要分为三种,一是乐观锁,二是悲观锁,三是时间戳乐观锁持有的是一种乐观的......
  • Oracle CloudWorld 2022 - 使用Oracle MAA实现应用程序的连续可用性
    每每谈到OracleMAA,大家条件反射般就会想到Oracle的RAC和ADG等核心选件,当然,这些技术有口皆碑,也的确是MAA的构建基础,但本文我们不再过多谈这些耳熟能详的技术,而是来跟大家探......
  • 网络编程及数据库MySQL总结
    目录网络编程并发知识网络编程知识网络编程软件开发架构计算机网络的相关专业名词OSI七层协议物理连接层数据链路层网络层传输层应用层socket模块黏包现象struct模块并发编......
  • 进入python的世界_day39_数据库——编辑表的补充、SQL数据查询语句
    一、编辑表的SQL语句补充altertable旧表名rename新表名;——改表名altertable表名change旧字段新字段新字段数据类型;——改字段altertable表名add新字......
  • 数据库MySQL
    目录数据库MySQL一、数据库基础知识以及典型数据库MySQL简介1、存储数据的演变史2、数据库软件的应用史3.数据库的本质4.数据库的分类5.MySQL简介6.MySQL基本使用7.制作系......
  • python爬取小说网数据(数据库存储)
    一、BeautifulSoup解析:bs=BeautifulSoup(resp.text,'html.parser')book_img_text=bs.find('div',class_='book-img-text')ul=book_img_text.find('ul')li_list=ul......
  • MySQL数据库之索引
    一、索引的概念索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于c语言的链表通过指针指向数据记录的内存地址)。使用索引后可......
  • MySQL数据库之用户管理
    一、数据库用户管理1.1新建用户 CREATEUSER'用户名'@'来源地址'[IDENTIFIEDBY[PASSWORD]'密码'];复制代码'用户名':指定将创建的用户名。'来源地址':指定新......
  • rac dg活动复制完成后,备库节点1查询数据库状态时报错ORA-00204、ORA-00202,且告警日志
    问题描述:racdg活动复制完成后,备库节点1查询数据库状态时报错ORA-00204、ORA-00202,且告警日志中出现ORA-15025、ORA-27041异常,如下所示:说明:racdg磁盘组采用的是多路径+ud......
  • MySQL数据库基础
    一、数据库的基本概念数据(Data):描述事务的符号记录包括数字、文字、图形、图像、声音、档案记录以”记录“形式按统一的格式进行存储表:将不同的记录组织在一起用......