全库导出时报 ORA-39125 ORA-04063 view "SYS.KU$_CLUSTER_VIEW" 有错误

本文详细介绍了在使用Oracle数据库导出过程中遇到SYS.KU$_CLUSTER_VIEW视图无效错误的解决步骤。通过执行特定SQL查询并重新编译无效对象,最终成功解决了导出问题。

点击(此处)折叠或打开

  1. C:\\Documents and Settings\\Administrator>expdp \'/ as sysdba\' directory=dump_dir
  2. full=y dumpfile=fullexp.dmp logfile=fullexp.log parallel=2

  3. Export: Release 10.2.0.1.0 - Production on 星期一, 22 12月, 2014 10:08:15

  4. Copyright (c) 2003, 2005, Oracle. All rights reserved.

  5. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
  6. With the Partitioning, OLAP and Data Mining options
  7. 启动 \"SYS\".\"SYS_EXPORT_FULL_01\": \'/******** AS SYSDBA\' directory=dump_dir full=
  8. y dumpfile=fullexp.dmp logfile=fullexp.log parallel=2
  9. 正在使用 BLOCKS 方法进行估计...
  10. 处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
  11. 使用 BLOCKS 方法的总估计: 1.128 GB
  12. 处理对象类型 DATABASE_EXPORT/TABLESPACE
  13. . . 导出了 \"UNILAB\".\"C_INSPECTIONPLAN_ITEM\" 229.3 MB 753169 行
  14. 处理对象类型 DATABASE_EXPORT/SYS_USER/USER
  15. 处理对象类型 DATABASE_EXPORT/SCHEMA/USER
  16. 处理对象类型 DATABASE_EXPORT/ROLE
  17. 处理对象类型 DATABASE_EXPORT/GRANT/SYSTEM_GRANT/PROC_SYSTEM_GRANT
  18. 处理对象类型 DATABASE_EXPORT/SCHEMA/GRANT/SYSTEM_GRANT
  19. 处理对象类型 DATABASE_EXPORT/SCHEMA/ROLE_GRANT
  20. 处理对象类型 DATABASE_EXPORT/SCHEMA/DEFAULT_ROLE
  21. 处理对象类型 DATABASE_EXPORT/SCHEMA/TABLESPACE_QUOTA
  22. 处理对象类型 DATABASE_EXPORT/RESOURCE_COST
  23. 处理对象类型 DATABASE_EXPORT/SCHEMA/DB_LINK
  24. 处理对象类型 DATABASE_EXPORT/TRUSTED_DB_LINK
  25. 处理对象类型 DATABASE_EXPORT/SCHEMA/SEQUENCE/SEQUENCE
  26. 处理对象类型 DATABASE_EXPORT/DIRECTORY/DIRECTORY
  27. 处理对象类型 DATABASE_EXPORT/DIRECTORY/GRANT/OWNER_GRANT/OBJECT_GRANT
  28. 处理对象类型 DATABASE_EXPORT/CONTEXT
  29. 处理对象类型 DATABASE_EXPORT/SCHEMA/PUBLIC_SYNONYM/SYNONYM
  30. 处理对象类型 DATABASE_EXPORT/SCHEMA/SYNONYM
  31. 处理对象类型 DATABASE_EXPORT/SCHEMA/TYPE/TYPE_SPEC
  32. 处理对象类型 DATABASE_EXPORT/SYSTEM_PROCOBJACT/PRE_SYSTEM_ACTIONS/PROCACT_SYSTEM

  33. 处理对象类型 DATABASE_EXPORT/SYSTEM_PROCOBJACT/PROCOBJ
  34. 处理对象类型 DATABASE_EXPORT/SYSTEM_PROCOBJACT/GRANT/PROCOBJ_GRANT
  35. 处理对象类型 DATABASE_EXPORT/SYSTEM_PROCOBJACT/POST_SYSTEM_ACTIONS/PROCACT_SYSTE
  36. M
  37. 处理对象类型 DATABASE_EXPORT/SCHEMA/PROCACT_SCHEMA
  38. ORA-39125: 在 KUPW$WORKER.UNLOAD_METADATA 中 Worker 发生意外的致命错误 (在调用 D
  39. BMS_METADATA.FETCH_XML_CLOB [PROCACT_SCHEMA:\"ANONYMOUS\"])
  40. ORA-04063: view \"SYS.KU$_CLUSTER_VIEW\" 有错误

  41. ORA-06512:\"SYS.DBMS_SYS_ERROR\", line 105
  42. ORA-06512:\"SYS.KUPW$WORKER\", line 6241

  43. ----- PL/SQL Call Stack -----
  44.   object line object
  45.   handle number name
  46. 63DA6AE8 14916 package body SYS.KUPW$WORKER
  47. 63DA6AE8 6300 package body SYS.KUPW$WORKER
  48. 63DA6AE8 2340 package body SYS.KUPW$WORKER
  49. 63DA6AE8 6861 package body SYS.KUPW$WORKER
  50. 63DA6AE8 1262 package body SYS.KUPW$WORKER
  51. 63E4B674 2 anonymous block

  52. 作业 \"SYS\".\"SYS_EXPORT_FULL_01\" 因致命错误于 10:09:04 停止


  53. C:\\Documents and Settings\\Administrator>

导致这个现象的原因是因为SYS.KU$_CLUSTER_VIEW视图无效。

同时也可能存在一些组件的无效,可以使用如下SQL 查询:


点击(此处)折叠或打开

  1. col comp_id for a12;
  2. col comp_name for a30;
  3. col version for a12;
  4. select comp_id, comp_name, version, status from dba_registry;

  5. OWM Oracle WorkspaceManager 10.2.0.4.3 VALID
  6. ORDIM OracleinterMedia 10.2.0.4.0 INVALID
  7. CATALOG Oracle Database Catalog Views 10.2.0.4.0INVALID
  8. CATPROC Oracle Database Packages and Types 10.2.0.4.0 INVALID

解决方法:


点击(此处)折叠或打开

  1. cd D:\\oracle\\product\\10.2.0\\db_1\\RDBMS\\ADMIN
  2. SQL> startup restrict
  3. SQL> select count(*) from dba_objects where status=\'INVALID\';
  4. SQL> @catalog
  5. SQL> @catproc
  6. SQL> @utlrp <== To compile the invalid objects
  7. SQL> select count(*) from dba_objects where status=\'INVALID\';
  8. col comp_id for a12
  9. col comp_name for a30
  10. col version for a12
  11. select comp_id, comp_name, version, status from dba_registry;
  12. SQL> select comp_id, comp_name, version, status from dba_registry;

  13. COMP_ID COMP_NAME VERSION STATUS
  14. ------------ ------------------------------ ------------ -----------
  15. CATALOG Oracle Database Catalog Views 10.2.0.1.0 VALID
  16. CATPROC Oracle Database Packages and T 10.2.0.1.0 VALID
  17.              ypes

  18. JAVAVM JServer JAVA Virtual Machine 10.2.0.1.0 VALID

  19. 已选择3行。

  20. SQL> shutdown immediate
  21. SQL> startup
再次导出,正常。





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

转载于:http://blog.itpub.net/30060321/viewspace-1376022/

<think>我们正在处理一个关于RMAN错误的问题。用户遇到的错误是: RMAN-06136: Oracle error ORA-04045: errors during recompilation/revalidation of SYS.KU$_TTS_TAB_TABLESPACE_VIEW ORA-16000: database open for read-only access 根据错误信息,有两个关键点: 1. ORA-04045:在重新编译/验证SYS.KU$_TTS_TAB_TABLESPACE_VIEW时出错。 2. ORA-16000:数据库处于只读模式。 结合引用内容,我们注意到引用[2]提到了RMAN跨版本恢复,引用[3]提到了替换OPatch目录(即打补丁操作)。因此,这个错误可能发生在跨版本恢复或升级过程中。 分析错误原因: - ORA-16000表明数据库当前以只读方式打开。在只读数据库上,不能执行任何DDL操作(包括重新编译视图)。 - 错误发生在尝试重新编译SYS.KU$_TTS_TAB_TABLESPACE_VIEW时,这是一个系统视图,通常与传输表空间(TTS)相关。 可能的原因: 1. 在只读数据库上执行了需要写操作的任务(例如,重新编译视图)。 2. 数据库升级或恢复过程中,某些步骤要求数据库处于读写模式,但当前却是只读模式。 解决方案: 1.数据库切换到读写模式: - 如果数据库是正常打开的只读模式,可以关闭数据库并以读写模式重新打开。 - 执行以下步骤: ```sql SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE OPEN READ WRITE; ``` 然后重试导致错误的操作。 2. 如果错误发生在跨版本恢复或升级过程中,需要确保在恢复完成并打开数据库时,数据库处于读写模式。特别是,当使用RMAN恢复后,打开数据库时可能指定了只读模式,需要改为读写模式。 3. 检查是否在只读数据库上运行了不兼容的操作。例如,RMAN的某些操作(如恢复目录的重新同步)可能需要写系统表,因此不能在只读数据库上执行。 4. 如果问题发生在升级后,可能需要重新编译无效对象,但同样需要数据库处于读写模式。可以尝试在读写模式下重新编译: ```sql ALTER VIEW SYS.KU$_TTS_TAB_TABLESPACE_VIEW COMPILE; ``` 但是,由于这是一个系统对象,通常由catproc.sql或其他脚本处理,所以可能需要运行升级后脚本。 5. 参考引用[3]中提到的打补丁操作,如果这个错误发生在打补丁过程中,可能是因为补丁应用不完整。确保按照补丁说明正确应用了所有步骤,包括运行必要的脚本。 注意事项: - 在更改数据库模式之前,确保有备份。 - 如果数据库是物理备库(处于只读模式),那么不能直接切换为读写模式,因为这会破坏备库。此时,需要确认操作是否应该在主库上执行。 根据用户提供的信息,我们没有直接的引用解决这个错误,但根据错误信息分析,将数据库切换到读写模式是首要步骤。 相关问题: 1. 如何将Oracle数据库从只读模式改为读写模式? 2. 在只读数据库上可以执行哪些RMAN操作? 3. 如何解决ORA-04045错误? 4. Oracle数据库升级后常见问题有哪些?</think>### 解决RMAN-06136与ORA-04045错误 **错误分析** 该错误包含两个关键信息: 1. `ORA-16000`:数据库处于只读模式 2. `ORA-04045`:尝试在只读数据库上重新编译系统视图`SYS.KU$_TTS_TAB_TABLESPACE_VIEW`(该视图与表空间传输相关) 根本原因是:**RMAN操作需要在读写模式下执行系统对象编译,但当前数据库被意外打开为只读模式**。 --- ### 解决方案 #### 步骤1:检查数据库模式 ```sql SELECT open_mode FROM v$database; ``` - 若返回 `READ ONLY` 则需切换模式[^1] #### 步骤2:切换到读写模式 ```sql SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE OPEN READ WRITE; -- 关键操作 ``` #### 步骤3:重新执行失败的RMAN操作 ```bash rman target / RMAN> RECOVER DATABASE; -- 根据实际场景替换为原操作 ``` #### 步骤4:验证系统对象状态 ```sql SELECT object_name, status FROM dba_objects WHERE object_name='KU$_TTS_TAB_TABLESPACE_VIEW'; ``` - 若状态为`INVALID`,需手动编译: ```sql ALTER VIEW SYS.KU$_TTS_TAB_TABLESPACE_VIEW COMPILE; ``` --- ### 根本原因预防 1. **环境检查** 执行关键操作前验证数据库模式: ```bash echo $ORACLE_SID # 确认实例名[^1] sqlplus / as sysdba <<EOF SELECT open_mode FROM v\$database; EOF ``` 2. **跨版本操作规范** - 跨版本恢复时(如10g→11g)确保目标库版本兼容性[^2] - 使用`DBMS_TTS`包前必须处于读写模式 3. **补丁管理** 升级后及时应用最新OPatch: ```bash unzip -q p6880880_*.zip -d $ORACLE_HOME # 替换OPatch[^3] ``` --- ### 附加说明 -错误常见于**表空间传输**或**数据库升级**场景 - 若在Data Guard备库出现,需在主库执行操作 - 系统视图编译错误可能需运行`utlrp.sql`重新编译无效对象
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值