一、 升级前准备工作
1、 确认数据库版本
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 PSU的全称是Patch Set Update,Oracle对于其产品每个季度发行一次的补丁包,包含了bug的修复。Oracle选取被用户下载数量多,且被验证过具有较低风险的补丁放入到每个季度的PSU中。在每个PSU中不但包含Bug的修复而且还包含了最新的CPU。PSU通常随CPU一起发布。PSU通常是增量的,大部分PSU可以直接安装,但有些PSU则必须要求安装了上一 个版本的PSU之后才能继续安装,要仔细看各个PSU的Readme文档。
安全漏洞整改时我们要安装的是CPU补丁。
注意:
CPU,是Critical Patch Update的缩写,意为紧急补丁更新。每季度发布一次,是用来修复安全方面的一些补丁,是累积型的。自2012年10月已经更名为Security Patch Update (SPU)
PSU,是Patch Set Update的缩写,意为补丁集更新。Oracle 选取在每个季度用户下载数量最多,并且得到验证具有较低风险的补丁放入到每个季度的PSU中,修复比较严重的一些问题,包含每个季度的CPU,是累积型的。
Interim Patch/One-Off Patch