本文整理自网络,侵删。
一、 升级前准备工作
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
2、 查询补丁安装信息
SQL> select * from dba_registry_history;
没有任何记录一般是未安装补丁,也可以在环境设置以后用opatch lsinventory opatch 命令查询当前补丁安装情况。
3、 查询数据库失效对象个数,这个数字记下来记为N1
SQL> SELECT sum(OBJECT_NAME)N1 FROM DBA_OBJECTS WHERE STATUS= 'INVALID';
如果存在失效对象最好先编译一遍
Sql >@?/rdbms/admin/utlrp.sql
编译完成后重新执行下下面语句,查看当前的实效对象记为N2
SQL> SELECT sum(OBJECT_NAME)N2 FROM DBA_OBJECTS WHERE STATUS= 'INVALID';
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下的环境变量设置
相关阅读 >>
linuxcentos7安装oracle11g的超完美新手教程
oracle求字符串长度函数length()和hengthb()简介
更多相关阅读请进入《oracle》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。