首页 > 数据库 >Oracle数据库补丁安装

Oracle数据库补丁安装

时间:2022-11-17 09:11:08浏览次数:65  
标签:数据库 补丁 OPatch 11.2 server oracle SQL Oracle


 

 

 

 

1.Oracle数据库的补丁类型及作用    1.1 补丁术语介绍

Interim patch/One-off patch:是我们常说的小补丁,为了修复某(几)个Bug而发布的补丁。这种补丁一般在测试库上测试无误后再安装到生产库上。

Merged patch: 合并补丁。当几个小补丁之间有冲突,不能同时安装的时候,需要提供这种Merged Patch。补丁冲突主要是由于2个或多个补丁修改同一文件,但是修改的内容不同而产生的。

Bundle patch:补丁集,修复多个Bug。 在Windows平台上的Oracle没有小补丁,只有这种Bundle Patch。 这种补丁集会周期性的发布(至少每季一次)。这种补丁集是累积型的(cumulative),也就是每个Bundle patch 会包含之前的所有的Bundle Patch。

Critical Patch Update(CPU):每季度发布一次,用来修复安全方面的一些补丁,是累积型的。目前已经更名位Secuirty Patch Update(SPU).

Patch Set Update(PSU):每季度发布一次,修复比较严重的一些问题,包括每季的CPU,是累积型的。

Patch Set:是再大版本上发布的补丁集,修复较多的Bug。可能会包含一些增强功能。这种补丁集经过了严格的集成测试,也是累积型的,所以推荐安装最新的Patch Set.

Diagnostic patch:诊断补丁。有的时候诊断一个问题的时候,为了获得更多的诊断信息,Oracle的开发部门会提供一个Diagnostic Patch,这种补丁不是为了修复问题,而是诊断问题。

Composite patch:一种新型的补丁包,不同于其他的累积型补丁包,如果第一次安装Composition Patches,那么就会安装Composite patches所包含的全部补丁,后续安装的Composite Patches 只会安装对比前一次Composite Patches 有所变化的部分和新增加的补丁。

Opatch:安装管理补丁而涉及的工具,通过这个工具,DBA可以方便安装、卸载补丁,也可以检测冲突等。

   

1.2 如何查看软件版本及版本说明

SQL> col product for a50
SQL> col version for a15
SQL> col status for a30
SQL> SELECT * FROM PRODUCT_COMPONENT_VERSION  
 

说明:软件版本命名和书写方式是“11.2.0.4.0”,分别代表:

主数据库发布号-数据库维护发布号-应用服务器发布号-组件相关发布号-平台相关发布号

当我们使用oracle补丁包升级后,第4位和第5位数字就会发生改变,其中第4位是补丁集号(patch set),第五位是补丁集更新(PSU)

 

2.Oracle数据库opatch补丁操作流程

 2.0 准备工作  1)  确认数据库版本
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

 2)  查看补丁安装信息

SQL> set lin 150
SQL> col action_time for a30 
SQL> col action for a10
SQL> col namespace for a10
SQL> col version for a15
SQL> col id for 99 
SQL> col bundle_series for a15
SQL> col comments for a20
SQL> select * from dba_registry_history

  

3)  查询数据库失效对象个数
SQL> select sum(OBJECT_NAME) n1 from dba_objects where status='INVALID';

	N1
-------

 如果存在失效对象则先编译一遍,再重新执行查询语句,及当前失效对象为N2;

Sql >@$ORACLE_HOME/rdbms/admin/utlrp.sql
SQL> select sum(OBJECT_NAME) n2 from dba_objects where status='INVALID';

 4)  补丁类型

 Oracle数据库补丁一般分为两种CPU和PSU补丁。

   5)  查询补丁信息并下载    mos如何查找到目前最新的PSU?

  mos中有个文档专门更新 psu 的内容,其文档 id 位 756671.1,oracle recommended patches — oracle database。

  #搜索关键词 756671.1

 

 

 #查看Oracle11.2.0.4的PSU补丁信息

 

 

#选择对应的系统(下面应该选择linux x86-64,否则可能会出现我下面提到的错误)

#下载

#选择下载文件

6)查看OPatch信息并下载OPatch 工具包

方法1:

mos参考文章:OPatch - Where Can I Find the Latest Version of OPatch(6880880)? [Video] (Doc ID 224346.

 

 

 #通过点击文中对应的安装包就可以跳转到下载地址

 

 

 

 

方法2;

下载地址:https://updates.oracle.com/download/6880880.html

#选择对应的数据库版本以及操作系统平台,点击download

提示:根据自己的操作系统选择版本,Linux 是32位的,而通常我们选择linux x86-64.

 7)数据库备份工作

  在补丁升级前做好数据库的备份工作,使用rman或者导出数据文件方式进行数据库的全备。条件允许的情况下操作系统最好也进行一次备份。

 

2.1 Oracle 11.2.0.4 安装PSU

2.1.1 查询Opach信息并下载

#查询当前Opatch版本信息

[oracle@server ~]$ cd $ORACLE_HOME/OPatch
[oracle@server OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.4

OPatch succeeded.

  其他参看信息查看准备工作第6点

2.1.2 查询PSU 补丁信息并下载

  参考准备工作第5点

2.1.3 上传OPatch和PSU补丁安装包

  #自行上传

2.1.4 如若需要,升级Opatch

1)检查版本信息

[oracle@server ~]$ cd $ORACLE_HOME/OPatch
[oracle@server OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.4

OPatch succeeded.

2)备份Opatch,并解压最新的Opatch包

[oracle@server OPatch]$ cd ..
[oracle@server dbhome_1]$ mv OPatch OPatch_2022_bak
[oracle@server dbhome_1]$ unzip  /home/soft/p6880880_190000_LINUX.zip -d ./

3)验证Opatch是否升级到

提示:如果没有报错,下面步骤可跳过。仅作知识拓展。

[oracle@server dbhome_1]$ cd OPatch
[oracle@server OPatch]$ ./opatch version
./opatch: line 839: [: too many arguments
./opatch: line 839: [: too many arguments
Java (1.7) could not be located. OPatch cannot proceed!
OPatch returns with error code = 1

 #报错解决:将Opatch 的jre删除,将$ORACLE_HOME 下的jdk/jre拷贝到Opatch目录下

[oracle@server dbhome_1]$ cd $ORACLE_HOME/OPatch
[oracle@server OPatch]$ rm -rf jre
[oracle@server OPatch]$ cp -r $ORACLE_HOME/jdk/jre $ORACLE_HOME/OPatch/

 2.1.5 解压PSU补丁并用OPatch查看是否起冲突

[oracle@server dbhome_1]$ cd /soft/
[oracle@server soft]$ unzip p31668908_112040_LINUX.zip 
[oracle@server 31668908]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 11.2.0.3.38
Copyright (c) 2022, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/oracle/product/11.2.0/dbhome_1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
OPatch version    : 11.2.0.3.38
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2022-11-16_15-14-53PM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

 2.1.6 关闭监听和数据库

 #关闭监听
[oracle@server 31668908]$ lsnrctl stop

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 16-NOV-2022 15:15:49

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
The command completed successfully

 # 关闭数据库

[oracle@server 31668908]$ sqlplus sys/password as sysdba

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
2.1.7 安装psmisc
  如果没有事先安装psmisc,补丁升级会出现以下错误,提示没有fuser命令。有则跳过。
Verifying environment and performing prerequisite checks...
Prerequisite check "CheckSystemCommandAvailable" failed.
The details are:
Missing command :fuser
UtilSession failed: 

#没psmisc,先安装psmisc

#提示:没仓库建立仓库,没挂载在先挂载

[root@server soft]# mount /dev/cdrom /mnt
[root@server mnt]# vim /etc/yum.repos.d/public-yum-el5.repo 
[oel5]
name = Enterprise Linux 5.6 DVD
baseurl=file:///mnt/
gpgcheck=0
enabled=1
[root@server mnt]#  yum install psmisc

  2.1.8 开始安装补丁

 
[oracle@server soft]$ cd 31668908/
[oracle@server 31668908]$ $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 11.2.0.3.38
...
Do you want to proceed? [y|n]
y
...
Is the local system ready for patching? [y|n]
y
...
Do you want to proceed? [y|n]
y
...
Patch 31668908 successfully applied.
OPatch Session completed with warnings.

 2.1.9 验证安装了哪些补丁

[oracle@server ~]$ $ORACLE_HOME/OPatch/opatch lsinventory -patch
Oracle Interim Patch Installer version 11.2.0.3.38
...
Local Machine Information::
Hostname: server
ARU platform id: 226
ARU platform description:: Linux x86-64

Interim patches (1) :

Patch  31668908     : applied on Wed Nov 16 15:56:03 CST 2022
Unique Patch ID:  23800881
Patch description:  "OJVM PATCH SET UPDATE 11.2.0.4.201020"
   Created on 8 Sep 2020, 03:18:03 hrs PST8PDT
   Bugs fixed:
     23727132, 19554117, 19006757, 14774730, 18933818, 18458318, 18166577
     19231857, 19153980, 19058059, 19007266, 17285560, 17201047, 17056813
     19223010, 19852360, 19909862, 19895326, 19374518, 20408829, 21047766
     21566944, 19176885, 17804361, 17528315, 21811517, 22253904, 19187988
     21911849, 22118835, 22670385, 23265914, 22675136, 24448240, 25067795
     24534298, 25076732, 25494379, 26023002, 19699946, 26637592, 27000663
     25649873, 27461842, 27952577, 27642235, 28502128, 28915933, 29254615
     29774367, 29992392, 29448234, 30160639, 30534664, 30855121, 31306274
     30772207, 31476032, 30561292, 28394726, 26716835, 24817447, 23082876
     31668867
 ...
OPatch succeeded.

  

                                     

 

 

标签:数据库,补丁,OPatch,11.2,server,oracle,SQL,Oracle
From: https://www.cnblogs.com/jzyellow/p/16898263.html

相关文章

  • 数据库安全性
    数据库安全性数据库不安全因素及保护措施1、非授权用户对数据库的恶意存取和破坏——用户身份鉴别,存取控制和视图技术2、数据库中重要或者铭感的数据被泄露——强制存......
  • 第六章 数据库和缓存
    1.常见的关系型数据库和非关系型数据库关系型数据库:mysql非关系型数据库:redis mongodb2.mysql常见的数据库引擎和区别引擎INNODB: 支持事务 支持行锁和表锁 速......
  • 数据库系统
    数据库系统数据库的四个基本概念:1、数据:描述事物的符号记录2、数据库:3、数据库管理系统4、数据库系统数据库系统的特点:数据结构化数据共享性高,冗余度低且易扩充......
  • Oracle查询用户权限
    Oracle查询用户权限--确定角色的权限select*fromrole_tab_privs;包含了授予角色的对象权限select*fromrole_role_privs;包含了授予另......
  • 数据库的操作
    像文件一样,我们可以随时对数据库执行如下操作:1.创建数据库  2.查看数据库 3.选择数据库 4.删除数据库 创建数据库 查看数据库 选择数据库 删除数据......
  • 查看MySQL数据库所有的表名、表注释、字段名称、类型、长度、备注,一键导出生成数据库
    一、先了解下INFORMATION_SCHEMA1、在MySQL中,把INFORMATION_SCHEMA看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据......
  • Spring--数据库资源管理遗留问题
    遗留问题的解决在我们要再试一试其他属性的时候,就出现了一些小问题:定义的情况下,在.xml文件里面调用:却发现输出是这样的:这完全不对等啊!之后发现是系统的值,优先级要高于......
  • C语言《数据结构与数据库/操作系统》实验测试数据集
    C语言《数据结构与数据库/操作系统》实验测试数据集实验二、栈的应用注意需要根据实验内容文件实现相应的数据结构——栈,以及菜单(程序要能循环使用,不要计算一次就必须重......
  • 银河麒麟服务器操作系统安装达梦数据库DM8
    DM8达梦数据库安装(银河麒麟服务器V10)一、准备工作:1、银河麒麟服务器操作系统iso(官方网站申请试用,普通下载地址太慢,建议使用Bt软件下载,不要用迅雷,可能存在数据下载不一致)......
  • 【检查ORACLE阻塞】如果阻塞超过N秒则发短信报警并KILL进程
    检查oracle阻塞,如果阻塞超过N秒则发短信报警阻塞超过分钟后自动kill进程检查oracle分布式事务预留锁,回滚事务/***注意:链接服务器clinicdb要设置RPC和RPCOut为true,否则......