oracle数据库组件不可用,oracle 手动升级后组件状态为INVALID解决办法

After upgrade CATPROC and CATALOG comps are INVALID

报错信息:

oracle 10.2.0.1升级到10.2.0.5

运行catupgrd.sql后

racle Database 10.2 Upgrade Status Utility

racle Database 10.2 Upgrade Status Utility           03-16-2011 09:39:53

.

Component                                              Status         Version  HH:MM:SS

Oracle Database Server                          VALID      10.2.0.5.0  00:07:47

JServer JAVA Virtual Machine                 VALID      10.2.0.5.0  00:02:19

Oracle XDK                                                 VALID      10.2.0.5.0  00:00:40

Oracle Database Java Packages         INVALID      10.2.0.5.0  00:00:54

Oracle Text                                                  VALID      10.2.0.5.0  00:00:33

Oracle XML Database                               VALID      10.2.0.5.0  00:01:35

Oracle Real Application Clusters           VALID      10.2.0.5.0  00:00:02

Oracle Workspace Manager                    VALID      10.2.0.5.0  00:00:04

Oracle Data Mining                                    VALID      10.2.0.5.0  00:00:33

OLAP Analytic Workspace                        VALID      10.2.0.5.0  00:00:19

OLAP Catalog                                             VALID      10.2.0.5.0  00:00:56

Oracle OLAP API                                        VALID      10.2.0.5.0  00:01:45

Oracle interMedia                                      VALID      10.2.0.5.0  00:05:34

Oracle Expression Filter                           VALID      10.2.0.5.0  00:00:54

Spatial                                                          VALID      10.2.0.5.0  00:00:41

Oracle Rule Manager                                VALID      10.2.0.5.0  00:00:05

Oracle Enterprise Manager                      VALID      10.2.0.5.0  00:00:07

查了下metalink文档,有人碰到个这个,原来是FIXED_DATE这个参数设置不正确引起的,将FIXED_DATE设置为none,再次执行

升级脚本就可以了,oracle给出具体步骤为:

1.使用以下脚本验证那些无效对象对数据库组件状态有影响

spool /oracle/admin/obj_list.out

set serveroutput on

declare

start_time date;

end_time date;

object_name varchar(100);

object_id char(10);

c_time date;

s_time date;

m_time date ;

CURSOR C1 IS SELECT obj#,name

FROM obj$

WHERE status > 1 AND

( ctime BETWEEN start_time AND end_time OR

mtime BETWEEN start_time AND end_time OR

stime BETWEEN start_time AND end_time);

begin

SELECT date_loading, date_loaded into start_time, end_time FROM registry$ WHERE cid = 'CATPROC';

open c1;

fetch c1 into object_id, object_name ;

while c1%FOUND loop

dbms_output.put_line('Please compile Invalid object '||object_name||' Object_id '|| object_id);

fetch c1 into object_id,object_name;

end loop;

close c1;

EXCEPTION

WHEN NO_DATA_FOUND THEN dbms_output.put_line('CATPROC can be validated now' );

end;

/

spool off

2.修改fixed_date参数值为none

SQL> ALTER SYSTEM SET FIXED_DATE=NONE SCOPE=BOTH;

3.关闭数据库,然后重新将数据库启动到升级模式

SQL>shutdown immediate

SQL>startup upgrade

4.重新运行升级脚本

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

运行完成后显示所有组件都升级到10.2.0.5,状态都为valid

5.重新启动数据,编译无效对象

SQL>shutdown immediate

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

6.验证升级

SQL> SELECT comp_name, status, substr(version,1,10) as version from dba_registry order by modified;

Component                                                Status      Version

Oracle Database Server                          VALID      10.2.0.5.0

JServer JAVA Virtual Machine                 VALID      10.2.0.5.0

Oracle XDK                                                 VALID      10.2.0.5.0

Oracle Database Java Packages         VALID      10.2.0.5.0

Oracle Text                                                  VALID      10.2.0.5.0

Oracle XML Database                               VALID      10.2.0.5.0

Oracle Real Application Clusters           VALID      10.2.0.5.0

Oracle Workspace Manager                    VALID      10.2.0.5.0

Oracle Data Mining                                    VALID      10.2.0.5.0

OLAP Analytic Workspace                        VALID      10.2.0.5.0

OLAP Catalog                                             VALID      10.2.0.5.0

Oracle OLAP API                                        VALID      10.2.0.5.0

Oracle interMedia                                      VALID      10.2.0.5.0

Oracle Expression Filter                           VALID      10.2.0.5.0

Spatial                                                          VALID      10.2.0.5.0

Oracle Rule Manager                                VALID      10.2.0.5.0

Oracle Enterprise Manager                      VALID      10.2.0.5.0

OK。

metalink 原文:

After upgrade CATPROC and CATALOG comps are INVALID even if only user invalid objects are found [ID 745183.1]

In this Document

Symptoms

Cause

Solution

References

Applies to:

Oracle Server - Enterprise Edition - Version: 9.2.0.1 to 11.1.0.7 - Release: 9.2 to 11.1

Information in this document applies to any platform.

***Checked for relevance on 25-Jul-2010***

Symptoms

After upgrade from 9.2.0.8 to 10.2.0.4 there are invalid components under dba_registry:

Oracle Database 10.2 Upgrade Status Utility 09-17-2008 18:01:00

Component Status Version

Oracle Database Server INVALID 10.2.0.4.0

JServer JAVA Virtual Machine VALID 10.2.0.4.0

Oracle XDK VALID 10.2.0.4.0

Oracle Database Java Packages INVALID 10.2.0.4.0

Oracle XML Database VALID 10.2.0.4.0

Oracle Workspace Manager VALID 10.2.0.4.3

No critical errors have been found in the spool file for the run of the upgrade script.

No SYS/SYSTEM invalid objects have been found.

The select which indicates the invalid objects that caused the invalidation of the CATALOG or CATPROC return

only user invalid objects.

Cause

The parameter FIXED_DATE was set before the upgrade and the upgrade was done with this parameter set.

Because the FIXED_DATE parameter is used the SYSDATE will return only the date fixed by the parameter. During

the upgrade the registry$ table columns 'date_loading' and 'date_loaded' are updated using SYSDATE.

Also after the upgrade, the run of utlrp.sql modifies the 'mtime' column of obj$ and updates it using

SYSDATE.

This issue causes the invalidation of the CATPROC and CATALOG database components, since the user objects

will match the select statement criteria, used to collect the invalid objects, that influence the status of

the CATALOG and CATPROC components.

Solution

To implement the solution, please execute the following steps:

1. use the below script. to verify which invalid objects affect the status of the CATALOG and CATPROC database

components

spool /oracle/admin/obj_list.out

set serveroutput on

declare

start_time date;

end_time date;

object_name varchar(100);

object_id char(10);

c_time date;

s_time date;

m_time date ;

CURSOR C1 IS SELECT obj#,name

FROM obj$

WHERE status > 1 AND

( ctime BETWEEN start_time AND end_time OR

mtime BETWEEN start_time AND end_time OR

stime BETWEEN start_time AND end_time);

begin

SELECT date_loading, date_loaded into start_time, end_time FROM registry$ WHERE cid = 'CATPROC';

open c1;

fetch c1 into object_id, object_name ;

while c1%FOUND loop

dbms_output.put_line('Please compile Invalid object '||object_name||' Object_id '|| object_id);

fetch c1 into object_id,object_name;

end loop;

close c1;

EXCEPTION

WHEN NO_DATA_FOUND THEN dbms_output.put_line('CATPROC can be validated now' );

end;

/

spool off

2. verify and remove the parameter fixed_date from your init.ora file or database:

SQL> ALTER SYSTEM SET FIXED_DATE=NONE SCOPE=BOTH;

3. bounce the database

4. rerun the upgrade script. (catupgrd.sql)

5. validate all the invalid objects using utlrp.sql script

6. verify the status of the dba_registry:

SQL> set pagesize 999

SQL> column status format a15

SQL> column version format a15

SQL> column comp_name format a35

SQL> SELECT comp_name, status, substr(version,1,10) as version from dba_registry order by modified

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24668589/viewspace-689950/,如需转载,请注明出处,否则将追究法律责任。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值