• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > Oracle数据库opatch补丁操作流程

Oracle数据库opatch补丁操作流程

作者:moscot_wu 字体:[增加 减小] 来源:互联网 时间:2017-05-11

moscot_wu通过本文主要向大家介绍了oracle opatch,opatch,opatch lsinventory,opatch apply,opatch napply等相关知识,希望本文的分享对您有所帮助

一、 升级前准备工作

1、 确认数据库版本

使用dba登陆查询当前数据库的版本

SQL> select * from v$version; 
BANNER 
---------------------------------------------------------------- 
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi 
PL/SQL Release 10.2.0.5.0 - Production 
CORE 10.2.0.5.0 Production 
TNS for 64-bit Windows: Version 10.2.0.5.0 - Production 
NLSRTL Version 10.2.0.5.0 – Production
</div>

2、 查询补丁安装信息

SQL> select * from dba_registry_history;
</div>

没有任何记录一般是未安装补丁,也可以在环境设置以后用opatch lsinventory opatch 命令查询当前补丁安装情况。

3、 查询数据库失效对象个数,这个数字记下来记为N1

SQL> SELECT sum(OBJECT_NAME)N1 FROM DBA_OBJECTS WHERE STATUS= 'INVALID';
</div>

如果存在失效对象最好先编译一遍

Sql >@?/rdbms/admin/utlrp.sql 
</div>

编译完成后重新执行下下面语句,查看当前的实效对象记为N2

SQL> SELECT sum(OBJECT_NAME)N2 FROM DBA_OBJECTS WHERE STATUS= 'INVALID';
</div>

SQL> SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE STATUS= 'INVALID';--将该结果存入excel或者表中,便于补丁完后进行核对。

4、 补丁类型

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

Oracle PSU的全称是Patch Set Update,Oracle对于其产品每个季度发行一次的补丁包,包含了bug的修复。Oracle选取被用户下载数量多,且被验证过具有较低风险的补丁放入到每个季度的PSU中。在每个PSU中不但包含Bug的修复而且还包含了最新的CPU。PSU通常随CPU一起发布。PSU通常是增量的,大部分PSU可以直接安装,但有些PSU则必须要求安装了上一 个版本的PSU之后才能继续安装,要仔细看各个PSU的Readme文档。

Oracle CPU的全称是Critical Patch Update, Oracle对于其产品每个季度发行一次安全补丁包,通常是为了修复产品中的安全隐患。CPU是累积的(Cumulative),即最新的CPU补丁已经包含以往的CPU补丁,所以只要安装最新的CPU补丁即可。
安全漏洞整改时我们要安装的是CPU补丁。

5、 查询补丁信息

登陆oracle官网安全专题http://www.oracle.com/technetwork/topics/security点击learn More,找到Critical Path Update Advisory

打开以后可以看到oracle发布的补丁的列表,里面包含了oracle产品发布的补丁。

6、 补丁下载

例如我们当前的oracle的版本为10.2.0.5,该版本的最后更新补丁为2013年 7月份,点击上图红色链接后可以看到10.2.0.5的数据库补丁。

注:下载使用metalink的账号,依照服务器的类型下载相应版本的补丁即可。如果没有oracle 的metalink账号无法下载补丁。

7、 数据库备份工作

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

所有以上操作做完后我们可以进行补丁安装工作了。

二、 补丁安装操作

1、 阅读补丁安装要求

每个补丁下载后的压缩包均会包含一份README.html 在安装前需要仔细阅读。一般会标明该补丁适用的数据库版本和操作系统版本,修复了哪些BUG等,还会有相关的提示信息。

2、 环境设置

2.1、Windows环境下

进入计算机属性→高级系统设置→系统属性→环境变量


编辑path在path末尾加上%ORACLE_HOME%\OPatch或者在cmd 下set path=%path%;%ORACLE_HOME%\OPatch;

2.2、Linux下的环境变量设置

使用oracle 安装用户,设置ORACLE_HOME以后export PATH=$ORACLE_HOME/OPatch:$PATH。

2.3、OPATCH命令测试

环境变量设置成功后测试OPatch命令是否可用,终端下opatch –help,可以看到相关信息表示环境变量设置成功。

3、 查询补丁安装信息

操作系统下查看当前补丁安装情况opatch lsinventory –patch

4、 停掉监听和oracle服务

4.1、Windows下关闭服务

在服务里关闭Oracle相关服务进程,停掉监听和oracle服务。关闭PLSQL客户端,关闭SQLPLUS界面。

4.2、Linux下关闭服务

shutdown 掉所有实例,关闭监听和oracle 相关进程。如果有安装GI和其他使用Oracle 的应用一并停止,退出SQLPLUS界面。

5、 安装补丁

在补丁目录下执行opatch apply。例如我的补丁解压在E:\13460968,那就先CD到该目录,然后执行opatch apply

注意:windows下有时候会出现所有oracle进程关闭,但是命令执行后依然会出现D:\oracle\product\10.2.0\db_1\bin\oci.dll 占用的错误。

linux下出现进程占用时一般是sqlplus 进程未关闭,可以用fuser查询是什么用户占用,但是强制kill时候数据库启动的时候可能会报错。

去到该目录找到该文件改名,例如改成oci.dllbak,如果执行过补丁回退操作记得改回来,重新执行opatch apply。

选择y,下一步等待补丁安装完毕即可。

6、 启动数据库

Windows先在服务中启动oracle的服务和监听。以sysdba登陆系统。

Linux 下正常启动oracle实例和监听。以sysdba登陆系统。

7、 执行脚本,更新补丁信息到数据库

执行补丁包中的目录下的脚本,等待脚本运行完毕即可。Linux找到补丁目录执行即可。

sql>@E:\13460968\files\Bundle\Patch14\catcpu.sql
</div>

注意:不同补丁集位置可能有所不同,但一般都是有该脚本。

8、 编译失效对象,执行以下语句

Sql >@?/rdbms/admin/utlrp.sql
</div>



注意:大部分失效对象错误是可以忽略的,具体类型可以用如下命令去检查。

SQL> SELECT sum (OBJECT_NAME)N3 FROM DBA_OBJECTS WHERE STATUS='INVALID'; 
</div>

查看N3和第一张第3节的N2比对下,看是否新增失效对象,如果有查看具体的失效对象是什么,利用第一

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Oracle数据库opatch补丁操作流程

相关文章

  • 2017-05-11Oracle 存储过程教程
  • 2017-05-11oracle分页存储过程 oracle存储过程实例
  • 2017-05-11Oracle 数据库优化实战心得总结
  • 2017-05-11Oracle中手动删除数据库教程
  • 2017-05-11日常收集整理oracle trunc 函数处理日期格式(很实用)
  • 2017-05-11CentOS 6.4下安装Oracle 11gR2详细步骤(多图)
  • 2017-05-11基于Oracle的面向对象技术入门基础简析开发者网络Oracle
  • 2017-05-11Oracle date 和 timestamp 区别详解
  • 2017-05-11Oracle数据创建虚拟列和复合触发器的方法
  • 2017-05-11Oracle 使用TOAD实现导入导出Excel数据

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Oracle创建自增字段--ORACLE SEQUENCE的简单使用介绍
    • ORACLE 正则解决初使化数据格式不一致
    • oracle中utl_file包读写文件操作实例学习
    • oracle数据库sql的优化总结
    • MySQL安全性指南 (2)(转)
    • oracle 实际值超过数据库某个字段指定长度报错解决
    • Oracle开发之分析函数(Rank, Dense_rank, row_number)
    • linux oracle数据库删除操作指南
    • Oracle客户端的安装与远程连接配置方法分享
    • Oracle 细粒度审计(FGA)初步认识

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有