Oracle ORA-31000: Resource 'http://xmlns.oracle.com/xdb/acl.xsd' is not an XDB schema 解决方法

 


数据库是从Oracle10.2.0.5 升级到11.2.0.3的:

Oracle 使用RMAN 将 DB 从10g 直接Restore 到11g 示例

http://www.cndba.cn/Dave/article/1033

 

在升级的过程中就有这个问题,同时还伴随这XDB和ORDIM 两个组件无效的问题,如下:

 

SQL> col comp_id for a15

SQL> col version for a15

SQL> col comp_name for a30

 

SQL> selectcomp_id,comp_name,version,status from dba_registry;

 

COMP_ID         COMP_NAME                      VERSION         STATUS

--------------------------------------------- --------------- -----------------

AMD             OLAP Catalog                   11.2.0.3.0      VALID

EM              Oracle Enterprise Manager      11.2.0.3.0      VALID

SDO             Spatial                        11.2.0.3.0      VALID

ORDIM           Oracle Multimedia              11.2.0.3.0      INVALID

XDB             Oracle XML Database            11.2.0.3.0      INVALID

CONTEXT         Oracle Text                    11.2.0.3.0      VALID

ODM             Oracle Data Mining             11.2.0.3.0      VALID

EXF             Oracle Expression Filter       11.2.0.3.0      VALID

RUL             Oracle Rules Manager           11.2.0.3.0      VALID

OWM             Oracle Workspace Manager       11.2.0.3.0      VALID

CATALOG         Oracle Database Catalog Views  11.2.0.3.0      VALID

 

COMP_ID         COMP_NAME                      VERSION         STATUS

--------------------------------------------- --------------- -----------------

CATPROC         Oracle Database Packages and T11.2.0.3.0      INVALID

JAVAVM          JServer JAVA Virtual Machine   11.2.0.3.0      VALID

XML             Oracle XDK                     11.2.0.3.0      VALID

CATJAVA         Oracle Database Java Packages  11.2.0.3.0      VALID

XOQ             Oracle OLAP API                11.2.0.3.0      VALID

APS             OLAP Analytic Workspace        11.2.0.3.0      VALID

 

17 rows selected.

 

在用XDB Reload 的方法,重建了所有XDB对象后,XDB变成有效对象:

 

SQL> selectcomp_id,comp_name,version,status from dba_registry;

 

COMP_ID         COMP_NAME                      VERSION         STATUS

--------------------------------------------- --------------- -----------------

AMD             OLAP Catalog                   11.2.0.3.0      VALID

EM              Oracle Enterprise Manager      11.2.0.3.0      VALID

SDO             Spatial                        11.2.0.3.0      VALID

ORDIM           Oracle Multimedia              11.2.0.3.0      INVALID

XDB             Oracle XML Database            11.2.0.3.0      VALID

CONTEXT         Oracle Text                    11.2.0.3.0      VALID

ODM             Oracle Data Mining             11.2.0.3.0      VALID

EXF             Oracle Expression Filter       11.2.0.3.0      VALID

RUL             Oracle Rules Manager           11.2.0.3.0      VALID

OWM             Oracle Workspace Manager       11.2.0.3.0      VALID

CATALOG         Oracle Database Catalog Views  11.2.0.3.0      VALID

 

COMP_ID         COMP_NAME                      VERSION         STATUS

--------------- --------------------------------------------- -----------------

CATPROC         Oracle Database Packages and T11.2.0.3.0      VALID

JAVAVM          JServer JAVA Virtual Machine   11.2.0.3.0      VALID

XML             Oracle XDK                     11.2.0.3.0      VALID

CATJAVA         Oracle Database Java Packages  11.2.0.3.0      VALID

XOQ             Oracle OLAP API                11.2.0.3.0      VALID

APS             OLAP Analytic Workspace        11.2.0.3.0      VALID

 

17 rows selected.

 

 

这里的ORDIM 组件还是无效的,在Reload 该组件时,执行@?/ord/im/admin/imxreg.sql;脚本的时候,还是有大量的这种错误:

 

SQL> @?/ord/im/admin/imxreg.sql;

 

PL/SQL procedure successfully completed.

 

declare

*

ERROR at line 1:

ORA-31000: Resource'http://xmlns.oracle.com/xdb/acl.xsd' is not an XDB schema

document

ORA-06512: at line 1240

 

 

declare

*

ERROR at line 1:

ORA-31000: Resource'http://xmlns.oracle.com/xdb/acl.xsd' is not an XDB schema

document

ORA-06512: at line 1010

 

 

declare

*

ERROR at line 1:

ORA-31000: Resource'http://xmlns.oracle.com/xdb/acl.xsd' is not an XDB schema

document

ORA-06512: at line 1008

 

 

declare

*

ERROR at line 1:

ORA-31000: Resource'http://xmlns.oracle.com/xdb/acl.xsd' is not an XDB schema

document

ORA-06512: at line 1012

 

ORDIM 的Reload 也会挂住,所以在XDB和ORDIM 组件都无效的情况,不能采用Reload XDB组件的方法来解决,而应该采用reinstall XDB的方式来解决,这样就可以避免出现ORA-31000的错误,也可以顺利Reload ORDIM 组件。

   关于XDB 组件重建和Reload 的更多内容,参考我的Blog: 

Oracle XDB 组件 重建 说明

http://blog.youkuaiyun.com/tianlesoftware/article/details/7323139

 

 

--卸载XDB:

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

 

--安装XDB

SQL>shutdown immediate

SQL>startup

SQL> @?/rdbms/admin/catqm.sql oracle SYSAUX TEMP YES

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

 

验证: XDB 已经正常了:

SQL> set wrap off

SQL> col comp_id for a15

SQL> col version for a15

SQL> col comp_name for a30

SQL> selectcomp_id,comp_name,version,status from dba_registry;

 

COMP_ID         COMP_NAME                      VERSION         STATUS

--------------------------------------------- --------------- -----------------

XDB             Oracle XML Database            11.2.0.3.0      VALID

AMD             OLAP Catalog                   11.2.0.3.0      VALID

EM              Oracle Enterprise Manager      11.2.0.3.0      VALID

SDO             Spatial                        11.2.0.3.0      VALID

ORDIM           Oracle Multimedia              11.2.0.3.0      INVALID

CONTEXT         Oracle Text                    11.2.0.3.0      VALID

ODM             Oracle Data Mining             11.2.0.3.0      VALID

EXF             Oracle Expression Filter       11.2.0.3.0      VALID

RUL             Oracle Rules Manager           11.2.0.3.0      VALID

OWM             Oracle Workspace Manager       11.2.0.3.0      VALID

CATALOG         Oracle Database Catalog Views  11.2.0.3.0      VALID

CATPROC         Oracle Database Packages and T11.2.0.3.0      VALID

JAVAVM          JServer JAVA Virtual Machine   11.2.0.3.0      VALID

XML             Oracle XDK                     11.2.0.3.0      VALID

CATJAVA         Oracle Database Java Packages  11.2.0.3.0      VALID

XOQ             Oracle OLAP API                11.2.0.3.0      VALID

APS            OLAP AnalyticWorkspace        11.2.0.3.0      VALID

 

17 rows selected.

 

 

在次Reload ORDIM组件:

 

SQL>alter session set current_schema="ORDSYS";

SQL> @?/ord/im/admin/imxreg.sql;

SQL>@?/ord/im/admin/impbs.sql;

SQL> @?/ord/im/admin/impvs.sql;

SQL> @?/ord/im/admin/imtyb.sql;

SQL> @?/ord/im/admin/implb.sql;

SQL> @?/ord/im/admin/imxrepos.sql;

 

这次一次通过,没有遇到ORA-31000错误。

 

 

SQL> selectcomp_id,comp_name,version,status from dba_registry;

 

COMP_ID         COMP_NAME                      VERSION         STATUS

--------------------------------------------- --------------- -----------------

XDB             Oracle XML Database            11.2.0.3.0      VALID

AMD             OLAP Catalog                   11.2.0.3.0      VALID

EM              Oracle Enterprise Manager      11.2.0.3.0      VALID

SDO             Spatial                        11.2.0.3.0      VALID

ORDIM           Oracle Multimedia              11.2.0.3.0      VALID

CONTEXT         Oracle Text                    11.2.0.3.0      VALID

ODM             Oracle Data Mining             11.2.0.3.0      VALID

EXF             Oracle Expression Filter       11.2.0.3.0      VALID

RUL             Oracle Rules Manager           11.2.0.3.0      VALID

OWM             Oracle Workspace Manager       11.2.0.3.0      VALID

CATALOG         Oracle Database Catalog Views  11.2.0.3.0      VALID

CATPROC         Oracle Database Packages and T11.2.0.3.0      VALID

JAVAVM          JServer JAVA Virtual Machine   11.2.0.3.0      VALID

XML             Oracle XDK                     11.2.0.3.0      VALID

CATJAVA        Oracle Database JavaPackages  11.2.0.3.0      VALID

XOQ             Oracle OLAP API                11.2.0.3.0      VALID

APS             OLAP Analytic Workspace        11.2.0.3.0      VALID

 

17 rows selected.

 

 

小结:

      (1) 对于XDB 和 ORDIM 组件同时失效的情况下,只能采用reinstall XDB组件,而不能采用Reload XDB组件的方法。 否则在Reload ORDIM 组件的过程中就会遇到ORA-31000的错误:

ORA-31000:Resource 'http://xmlns.oracle.com/xdb/acl.xsd' is not an XDB schema document

 (2) 不同的Oracle 版本reinstall 和Reload 方法有出入,具体参考:

Oracle XDB 组件 重建 说明

http://blog.youkuaiyun.com/tianlesoftware/article/details/7323139


 

 

-------------------------------------------------------------------------------------------------------

版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

QQ:492913789

Email:ahdba@qq.com

Blog:  http://www.cndba.cn/dave

Weibo: http://weibo.com/tianlesoftware

Twitter: http://twitter.com/tianlesoftware

Facebook: http://www.facebook.com/tianlesoftware

Linkedin: http://cn.linkedin.com/in/tianlesoftware

 

 

-------加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请----

DBA1 群:62697716(满);   DBA2 群:62697977(满)  DBA3 群:62697850(满)  

DBA 超级群:63306533(满);  DBA4 群:83829929   DBA5群: 142216823

DBA6 群:158654907    DBA7 群:172855474   DBA总群:104207940

<think> 首先,用户的问题是关于Oracle RMAN恢复时出现ORA-19504和ORA-27040错误的解决方案。具体错误是:ORA-19504: failed to create file "/data/xluni/controlfile/control01.ctl" ORA-27040: file create error, unable to create file。 从系统级指令中,我需要: - 所有行内数学表达式使用$...$格式(但在这个上下文中,可能不涉及数学表达式)。 - 独立公式使用$$...$$格式(同样,可能不需要)。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如[^1]。 - 回答结构清晰,帮助用户逐步解决问题,保证真实可靠。 用户提供的引用包括: - 引用[1]:描述了RMAN恢复时出现ORA-19504、ORA-17502、ORA-15001、ORA-15040错误,原因是磁盘组“DATA”不存在或未挂载。 - 引用[2]:讨论了RMAN备份时报ORA-19504和ORA-27038错误,原因是控制文件和数据文件的块大小不同,不能在同一备份集中。 用户的当前错误是ORA-19504和ORA-27040,具体在创建控制文件时出错。错误信息指向"/data/xluni/controlfile/control01.ctl"。 关键点: - ORA-19504: failed to create file – 这表示创建文件失败。 - ORA-27040: file create error, unable to create file – 这是文件系统级别的错误,可能由于权限、路径不存在、磁盘空间不足等原因。 结合引用: - 引用[1]中提到ORA-15001和ORA-15040,表明磁盘组问题。 - 引用[2]中提到块大小不同导致控制文件不能和数据文件在同一备份集。 但用户的错误中没有提到磁盘组或块大小问题。用户错误是直接关于创建文件失败。所以,我需要基于常见原因提供解决方案。 常见原因和解决方案: 1. **路径不存在或权限问题**: - 确保"/data/xluni/controlfile/"目录存在。 - Oracle用户(通常是oracle)必须有权限写入该目录。 - 检查目录权限:`ls -ld /data/xluni/controlfile/`,并确保oracle用户有写权限。 2. **磁盘空间不足**: - 检查目标文件系统的磁盘空间是否充足。使用`df -h /data`或类似命令。 3. **文件已存在**: - ORA-27040可能与文件已存在相关,但错误中没有提到ORA-27038(文件已存在)。用户错误是ORA-27040,通常表示创建错误。 - 确认目标文件是否已经存在。如果是,可能需要删除或覆盖(但需谨慎)。 4. **ASM磁盘组问题**: - 如果使用ASM(Oracle自动存储管理),错误中提到了"+DATA",但用户错误是"/data/xluni/controlfile/control01.ctl",这看起来是文件系统路径,而不是ASM路径。 - 用户错误指定了文件系统路径,所以可能不是ASM问题。但需确认环境。 5. **控制文件恢复问题**: - 在RMAN中恢复控制文件时,需要指定正确的位置。可能恢复脚本指定了错误的位置。 - 检查RMAN脚本或命令是否正确指定了控制文件的恢复位置。 6. **其他原因**: - 文件系统损坏。 - Oracle实例未启动或参数问题。 - 网络问题(如果是远程文件系统)。 结构化回答: 1. **确认错误原因**:解释错误含义。 2. **逐步解决方案**: a. 检查目录存在和权限。 b. 检查磁盘空间。 c. 验证文件是否已存在。 d. 检查Oracle参数(如DB_CREATE_FILE_DEST)。 e. 尝试手动创建文件测试。 f. 确保RMAN命令正确。 3. **生成相关问题**:在回答末尾添加相关问题。 引用处理: - 如果我在回答中引用用户提供的引用,需要在末尾添加引用标识。 - 例如,提到块大小问题或磁盘组问题,可以引用[^1]或[^2]。 用户错误具体是:ORA-19504: failed to create file "/data/xluni/controlfile/control01.ctl" ORA-27040: file create error, unable to create file。 所以,重点在文件创建错误。 回答结构: 1. 解释错误。 2. 提供解决方案步骤。 3. 总结。 4. 添加相关问题。 相关问题生成: - 类似于示例中的快速排序问题。 - 例如: 1. 如何防止RMAN恢复时的文件创建错误? 2. Oracle ASM磁盘组的常见管理问题? 3. 控制文件恢复的最佳实践? 确保中文回答。 </think>### Oracle RMAN恢复时出现ORA-19504和ORA-27040错误的解决方案 在Oracle RMAN恢复过程中,出现ORA-19504(failed to create file)和ORA-27040(file create error, unable to create file)错误,通常是由于文件系统级别的问题导致控制文件创建失败。具体错误信息如`ORA-19504: failed to create file "/data/xluni/controlfile/control01.ctl"`表明目标路径或文件无法被创建。这可能是目录权限不足、路径不存在、磁盘空间不足或文件已存在等原因引起的。下面我将一步步指导您解决此问题,确保恢复顺利进行。解决过程需要以Oracle用户(通常为`oracle`)操作,并在数据库mount或nomount状态下执行RMAN命令。 --- ### 步骤1: 确认错误原因和基本检查 - **错误解释**: - ORA-19504: 表示文件创建失败。 - ORA-27040: 是操作系统级别的错误,常见于文件系统权限、路径无效或空间不足。 - **立即检查项**: 1. **确认目录存在**: - 通过命令行检查目标目录是否有效: ```bash ls -ld /data/xluni/controlfile/ ``` - 如果目录不存在,创建它并设置正确权限: ```bash mkdir -p /data/xluni/controlfile/ chown oracle:oinstall /data/xluni/controlfile/ chmod 775 /data/xluni/controlfile/ ``` 2. **检查磁盘空间**: - 使用`df -h /data`查看磁盘空间使用情况。如果空间不足(例如使用率超过90%),需要清理文件或扩展磁盘。 3. **验证文件是否已存在**: - 执行`ls -l /data/xluni/controlfile/control01.ctl`。如果文件存在,删除或移动它(但需谨慎,避免数据丢失): ```bash rm -f /data/xluni/controlfile/control01.ctl ``` 4. **测试手动创建文件**: -oracle用户尝试创建空文件,验证权限: ```bash sudo -u oracle touch /data/xluni/controlfile/testfile ``` - 如果失败,错误信息会提示具体原因(如权限不足),您需要调整目录所有权或SELinux设置(如果启用)。 如果以上步骤未解决,进入详细配置检查。 --- ### 步骤2: 检查Oracle配置和RMAN命令 - **验证Oracle参数**: - 确保`DB_CREATE_FILE_DEST`参数指向正确位置。登录SQL*Plus: ```sql SQL> show parameter db_create_file_dest; ``` - 如果参数值不是`/data/xluni/controlfile/`,修改它: ```sql SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/data/xluni/controlfile/' SCOPE=spfile; SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP NOMOUNT; -- 重新启动到nomount状态以应用更改 ``` - 检查控制文件路径是否在`CONTROL_FILES`参数中: ```sql SQL> show parameter control_files; ``` 确保包含`/data/xluni/controlfile/control01.ctl`。如果没有,更新参数文件(spfile)。 - **修正RMAN恢复命令**: - 在RMAN中恢复控制文件时,确保指定正确路径。例如: ```bash RMAN> STARTUP NOMOUNT; RMAN> RESTORE CONTROLFILE FROM '/path/to/backup/controlfile_backup.ctl'; -- 替换为实际备份路径 RMAN> ALTER DATABASE MOUNT; ``` - 如果备份文件路径错误或不可访问,RMAN会报错。确认备份文件存在且可读: ```bash ls -l /path/to/backup/controlfile_backup.ctl ``` - **处理ASM或块大小问题(如果适用)**: - 如果使用ASM(如错误中提到`+DATA`),确保磁盘组已挂载(引用[1])。但您的错误路径是文件系统路径(`/data/...`),而非ASM格式,因此可能不涉及此问题[^1]。 - 控制文件和数据文件块大小不同可能导致备份问题(引用[2]),但这通常影响备份而非恢复。检查块大小一致性: ```sql SQL> SELECT name, block_size FROM v$controlfile; SQL> SHOW PARAMETER db_block_size; ``` 如果块大小不匹配(例如控制文件16KB vs 数据文件8KB),恢复时需确保控制文件备份独立[^2]。 --- ### 步骤3: 高级故障排除 - **文件系统检查**: - 运行`fsck /dev/sdX`(替换为数据分区)检查文件系统完整性。 - 如果是NFS挂载,添加`rw,hard,nointr`选项到`/etc/fstab`,并重新挂载。 - **使用RMAN的`SET`命令指定路径**: - 在RMAN会话中显式设置控制文件创建路径: ```bash RMAN> STARTUP NOMOUNT; RMAN> SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/data/xluni/controlfile/%F'; RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP; ``` - **日志分析**: - 检查RMAN日志和Oracle alert log: ```bash tail -f $ORACLE_BASE/diag/rdbms/<DB_NAME>/<INSTANCE_NAME>/trace/alert_<INSTANCE_NAME>.log ``` 日志可能提供更详细的错误原因(如I/O错误)。 如果所有步骤失败,考虑: - 从有效备份还原到其他位置。 - 咨询系统管理员检查硬件或网络问题。 --- ### 总结 解决ORA-19504和ORA-27040错误的核心是确保目标路径可访问、有写权限且空间充足。多数情况下,修复目录权限或调整Oracle参数即可恢复。预防措施包括定期验证备份路径和设置正确的环境变量[^1][^2]。如果问题持续,提供更多上下文(如OS版本、Oracle版本)有助于进一步诊断。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值