一、环境描述
系统:Red Hat Enterprise Linux Server release 7.2 (Maipo)
数据库:Oracle Release 12.1.0.2.0
二、安装包下载
p6880880_121010_Linux-x86-64.zip
p25171037_121020_Linux-x86-64.zip
三、PSU安装前校验
-
解压
unzip p25171037_12102_<platform>.zip -
安装前检查
cd 25171037
opatch prereq CheckConflictAgainstOHWithDetail -ph ./
四、打补丁
-
解压p6880880_121010_Linux-x86-64.zip到ORACLE_HOME
-
打补丁
opatch apply
-
启库
-
更新数据字典
cd $ORACLE_HOME/OPatch
./datapatch -verbose
五、验证
-
OPATCH
opatch lsinventory
-
SQL
SELECT PATCH_ID, VERSION, ACTION, STATUS, ACTION_TIME FROM DBA_REGISTRY_SQLPATCH;
六、12c改变——Datapatch
Datapatch 通过匹配一个内部存储库与 patch inventory 来决定所需的应用/回滚操作。 Datapatch 驻留在的 opatch 目录,即 $ORACLE_HOME/OPatch 文件夹。
数据库 12c Datapatch 支持 Oracle 多租户,并且简化并加快了多个数据库打补丁的过程。
哪些补丁工具使用了 Datapatch?
-
Opatchauto
OPatchAuto 自动调用 datapatch 完成安装数据库的二进制补丁并重启后 post patch 的操作。
-
企业管理云控制(Enterprise Manager Cloud Control)
从 12.1 版本开始,EMCC 现在调用 datapatch 来完成任何 12c 或者更高版本的数据库重启之后的 post patch 的操作
-
升级
Catctl.pl 和 DBUA 现在在升级过程中调用 Datapatch
-
OPatch
Datapatch 与 OPatch 的整合是不可能的。因为 OPatch 在数据库关闭时执行,而 datapatch 要求数据库是打开以完成其活动。
SQL 补丁注册表(SQL Patch Registry table)
该表包含了哪些 SQL 补丁已经被应用和/或回滚在给定的数据库的信息。每个数据库都有一个 SQL 补丁注册表,因此,如果在同一个 Oracle 主目录中运行多个数据库,每个数据库都有自己的 SQL 补丁注册表。
要在注册表中检查 datapatch 条目,从 SQL 提示符下键入以下命令:
SELECT PATCH_ID, VERSION, ACTION, STATUS, ACTION_TIME FROM DBA_REGISTRY_SQLPATCH;
数据库 12.1.0.2 功能增强
下列的功能增强是在数据库 12c 补丁集 12.1.0.2 引入:
-
dba_registry_history 不再用作为补丁信息
-
datapatch -rollbackall 选项可用来回滚当前已安装的所有 SQL 补丁
-
Catbundle 被整合到 datapatch
-
Datapatch 支持的补丁类型:
-
"Napply" Patch
-
Composite Patches
-
One-off Patches