将补丁注册到数据字典中:
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
执行成功后,查看:
SQL> select * from dba_registry_history;
no rows selected
没有记录,查阅资料显示12C改为查看:
SQL> select patch_id,action,status from dba_registry_sqlpatch;
no rows selected
同样没有记录,后面从网上查到12C的补丁注册改成了用datapatch工具。
改为datapatch执行操作:
csssit@msuu335:cd $ORACLE_HOME/OPatch
csssit@msuu335:~/12.1.0/OPatch$ ./datapatch -verbose
SQL Patching tool version 12.1.0.2.0 on Tue Sep 13 08:51:19 2016
Copyright (c) 2016, Oracle. All rights reserved.
Log file for this invocation: /csssitapp/oracsssit/cfgtoollogs/sqlpatch/sqlpatch_21004_2016_09_13_08_51_19/sqlpatch_invocation.log
Connecting to database...OK
Bootstrapping registry and package to current versions...done
Determining current state...done
Current state of SQL patches:
Bundle series PSU:
ID 160719 in the binary registry and not installed in the SQL registry
Adding patches to installation queue and performing prereq checks...
Installation queue:
Nothing to roll back
The following patches will be applied:
23054246 (Database Patch Set Update : 12.1.0.2.160719 (23054246))
Installing patches...
Patch installation complete. Total patches installed: 1
Validating logfiles...
Patch 23054246 apply: SUCCESS
logfile: /csssitapp/oracsssit/cfgtoollogs/sqlpatch/23054246/20274131/23054246_apply_CSSSIT_2016Sep13_08_52_27.log (no errors)
SQL Patching tool complete on Tue Sep 13 08:52:57 2016
SQL> select patch_id,action,status from dba_registry_sqlpatch;
PATCH_ID ACTION STATUS
---------- --------------- ---------------
23054246 APPLY SUCCESS
SQL> select * from dba_registry_history;
no rows selected
现在通过dba_registry_sqlpatch已查看到了注册的补丁,而通过dba_registry_history依然没有记录。
二.Datapatch工具说明:
数据库 12c Datapatch 是 Oracle 数据库 12c 中的另一个新工具,它可以自动为数据库补丁执行 post-patch SQL 操作。
Datapatch 通过匹配一个内部存储库与 patch inventory 来决定所需的应用/回滚操作。 Datapatch 驻留在的 opatch 目录,即 $ORACLE_HOME/OPatch 文件夹(在 Windows 平台上: %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)