一、环境描述

系统: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

SELECTPATCH_ID,VERSION,ACTION,STATUS,ACTION_TIMEFROMDBA_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 提示符下键入以下命令:

SELECTPATCH_ID,VERSION,ACTION,STATUS,ACTION_TIMEFROMDBA_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