解决adop prepare过程Dictionary Corrupted 错误

用户在用adop 打补丁的时候,出现数据字典损坏的报错:


Dictionary Corrupted:
Details are as follows:
OWBSYS          HAB_RT_EXEC_PROC_RUN_METRICS                   OWBSYS         WB_RT_VERSION                                  TS mismatch: 16-SEP-10 09:13:44 26-NOV-12 18:48:19

OWBSYS          WB_RTI_OBJECT_CATALOG                          OWBSYS         WB_RT_VERSION                                  TS mismatch: 16-SEP-10 09:13:44 26-NOV-12 18:48:19

OWBSYS          UAB_RT_EXEC_PROCESS                            OWBSYS         WB_RT_VERSION                                  TS mismatch: 16-SEP-10 09:13:44 26-NOV-12 18:48:19

OWBSYS          UAB_RT_EXEC_PROCESS_RUNS                       OWBSYS         WB_RT_VERSION                                  TS mismatch: 16-SEP-10 09:13:44 26-NOV-12 18:48:19

OWBSYS          UAB_RT_EXEC_PROC_RUN_COUNTS                    OWBSYS         WB_RT_VERSION                                  TS mismatch: 16-SEP-10 09:13:44 26-NOV-12 18:48:19

OWBSYS          UAB_RT_EXEC_PROC_RUN_METRICS                   OWBSYS         WB_RT_VERSION                                  TS mismatch: 16-SEP-10 09:13:44 26-NOV-12 18:48:19

PUBLIC          WB_OLAP_AW_PRECOMPUTE                          OWBSYS         WB_OLAP_AW_PRECOMPUTE                          TS mismatch: 23-SEP-10 05:17:34 26-NOV-12 18:48:25

OWBSYS          ALL_RT_INSTALLATIONS                           OWBSYS         WB_RT_VERSION                                  TS mismatch: 16-SEP-10 09:13:44 26-NOV-12 18:48:19

OWBSYS          RAB_RT_INSTALLATIONS                           OWBSYS         WB_RT_VERSION                                  TS mismatch: 16-SEP-10 09:13:44 26-NOV-12 18:48:19

OWBSYS          HAB_RT_EXEC_PROCESS                            OWBSYS         WB_RT_VERSION                                  TS mismatch: 16-SEP-10 09:13:44 26-NOV-12 18:48:19

OWBSYS          HAB_RT_EXEC_PROCESS_RUNS                       OWBSYS         WB_RT_VERSION                                  TS mismatch: 16-SEP-10 09:13:44 26-NOV-12 18:48:19

OWBSYS          HAB_RT_EXEC_PROC_RUN_COUNTS                    OWBSYS         WB_RT_VERSION                                  TS mismatch: 16-SEP-10 09:13:44 26-NOV-12 18:48:19


please contact Oracle Support and request them to open a bug against Oracle Application Install(166), Component Online Patching(OP)
        [ERROR]     Prepare phase completed with errors/warnings. Please check logfiles
        Log file: /erpodpa1/erpapp/fs_ne/EBSapps/log/adop/3/adop_20140306_005850.log


经过网上查找,找到如下解决办法:
Do not follow the document 1576086.1.  I followed it and increased my invalid counts from 1000 to 100,000 and wasted 10 hours to get back to where I started.  Instead follow these instructions:

使用sqlplus dev查询上面出现的对象名称结果如下:

select owner,object_type,object_name
from dba_objects
where object_name in
(
'HAB_RT_EXEC_PROC_RUN_METRICS',
'WB_RTI_OBJECT_CATALOG',
'UAB_RT_EXEC_PROCESS',
'UAB_RT_EXEC_PROCESS_RUNS',
'UAB_RT_EXEC_PROC_RUN_COUNTS',
'UAB_RT_EXEC_PROC_RUN_METRICS',
'WB_OLAP_AW_PRECOMPUTE',
'ALL_RT_INSTALLATIONS',
'RAB_RT_INSTALLATIONS',
'HAB_RT_EXEC_PROCESS',
'HAB_RT_EXEC_PROCESS_RUNS',
'HAB_RT_EXEC_PROC_RUN_COUNTS'
);


Select against a view  fails with following error.

SQL> Select * from . ;

ORA-04023: could not be validated or authorized

This is issue is due to a timestamp inconsistency in the data dictionary. This timestamp inconsistency will lead to the problem when we  populate the relevant cached objects and later try to select from the affected views.

通过utldtchk.sql脚本,查看时间戳不一致的对象:

Run following script to find out the objects which are having timestamp discrepencies.

Connect as / as sysdba

SQL> @?/rdbms/admin/utldtchk.sql

This script is available from 11g onwards.
通过这个脚本,会返回所有时间戳不一致的对象。我们需要重新手工编译这写对象。



Recompile all the objects manually returned by this script.

手工写个脚本,比如名字叫:rp.sql里面的内容如下:

Conn owbsys/owbsys
alter view ALL_RT_INSTALLATIONS compile;
alter view RAB_RT_INSTALLATIONS compile;
alter view HAB_RT_EXEC_PROCESS compile;
alter view HAB_RT_EXEC_PROCESS_RUNS compile;
alter view HAB_RT_EXEC_PROC_RUN_COUNTS compile;
alter view HAB_RT_EXEC_PROC_RUN_METRICS compile;
alter view UAB_RT_EXEC_PROCESS compile;
alter view UAB_RT_EXEC_PROCESS_RUNS compile;
alter view UAB_RT_EXEC_PROC_RUN_COUNTS compile;
alter view UAB_RT_EXEC_PROC_RUN_METRICS compile;
alter function WB_OLAP_AW_PRECOMPUTE compile;
drop public synonym WB_OLAP_AW_PRECOMPUTE;
CREATE PUBLIC SYNONYM WB_OLAP_AW_PRECOMPUTE
FOR OWBSYS.WB_OLAP_AW_PRECOMPUTE;


貌似这个脚本作者少了一句话,我后续自己执行了: alter package WB_RTI_OBJECT_CATALOG complie;

It will remove the timestamp inconsistency in data dictionary and resolve this issue.

Verify by re-running the script, it should return zero rows.

SQL> @?/rdbms/admin/utldtchk.sql

If you still see occurances, bounce the database and rerun the above script.

只要返回0行,就可以重新运行prepare过程了。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值