我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。

案例:Oracle:EXP-00056 ORA-04063处理过程

下面是一个朋友的数据库,通过exp全库导出的时候报下面的错误

1,版本与平台介绍

d:\wendang\SkyDrive\rs2\sql>sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on 星期一 8月 18 15:19:36 2014Copyright (c) 1982, 2011, Oracle.  All rights reserved.

连接到:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> host uname -awindows32 luoping 2.6.1 7601 i686-pc Intel unknown MinGWSQL> select * from v$version where rownum<3;BANNER——————————————————————————–Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit ProductionPL/SQL Release 11.2.0.3.0 – Production

2,错误信息

d:\wendang\SkyDrive\rs2\sql>exp system/oracle full=y file=e:\full.dmp  indexes=n constraints=nExport: Release 11.2.0.3.0 – Production on 星期一 8月 18 12:54:19 2014Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集注: 将不导出表的索引注: 将不导出表的约束条件即将导出整个数据库…. 正在导出表空间定义. 正在导出概要文件. 正在导出用户定义. 正在导出角色. 正在导出资源成本. 正在导出回退段定义. 正在导出数据库链接. 正在导出序号. 正在导出目录别名. 正在导出上下文名称空间. 正在导出外部函数库名. 导出 PUBLIC 类型同义词. 正在导出专用类型同义词. 正在导出对象类型定义. 正在导出系统过程对象和操作. 正在导出 pre-schema 过程对象和操作. 正在导出簇定义EXP-00056: 遇到 ORACLE 错误 4063ORA-04063: view "SYS.KU$_XMLSCHEMA_VIEW" 有错误EXP-00056: 遇到 ORACLE 错误 4063ORA-04063: view "SYS.KU$_XMLSCHEMA_VIEW" 有错误EXP-00000: 导出终止失败

这里看到遇到视图不存在。

3,处理过程

3.1 10046trace过程编译过程

SQL> oradebug setmypid

已处理的语句

SQL> oradebug event 10046 trace name context forever,level 12;

已处理的语句

SQL> oradebug tracefile_name;D:\APP\LUOPING\diag\rdbms\orcl\orcl\trace\orcl_ora_5824.trcSQL> alter VIEW SYS.KU$_XMLSCHEMA_VIEW compile;

警告: 更改的视图带有编译错误。

3.2 查看无效对象

MEDADM          RC                                       PROCEDURE           INVALID Invalid ObjPUBLIC          APEX_ADMIN                               SYNONYM             INVALID Invalid ObjPUBLIC          EQUALS_PATH                              SYNONYM             INVALID Invalid ObjPUBLIC          F                                        SYNONYM             INVALID Invalid ObjOBJECT_OWNER    OBJECT_NAME                              TYPE                STATUS  PROB————— —————————————- ——————- ——- ———–PUBLIC          HTMLDB_ADMIN                             SYNONYM             INVALID Invalid ObjPUBLIC          PATH_VIEW                                SYNONYM             INVALID Invalid ObjPUBLIC          RESOURCE_VIEW                            SYNONYM             INVALID Invalid ObjPUBLIC          UNDER_PATH                               SYNONYM             INVALID Invalid ObjXDB             XDBHI_IDXTYP                             INDEXTYPE           INVALID Invalid ObjXDB             EQUALS_PATH                              OPERATOR            INVALID Invalid ObjXDB             UNDER_PATH                               OPERATOR            INVALID Invalid ObjXDB             DBMS_RESCONFIG                           PACKAGE BODY        INVALID Invalid ObjXDB             XDB_PV_TRIG                              TRIGGER             INVALID Invalid ObjXDB             XDB_RV_TRIG                              TRIGGER             INVALID Invalid ObjXDB             PATH_VIEW                                VIEW                INVALID Invalid ObjXDB             RESOURCE_VIEW                            VIEW                INVALID Invalid ObjXDB             DBMS_XMLDOM_ICD                          PACKAGE             VALID   Miss Pkg BodyXDB             XDB_PVTRIG_PKG                           PACKAGE             VALID   Miss Pkg Body

这里可以看到xdb有很多无效的对象,估计是xdb的问题。

3.3手动重新运行xdb一些视图的创建

Rem    NAMERem      catmetx.sql – Metadata API: Real definitions for XDB object views.SQL> @?/rdbms/admin/catmetx.sqlSQL> alter package xdb.xdb_funcimpl compile;

程序包已变更。

SQL> alter index xdb.xdbhi_idx rebuild;alter index xdb.xdbhi_idx rebuild*第 1 行出现错误:ORA-01418: 指定的索引不存在SQL>SQL> — view for xmlschemasSQL> —  this view is used for direct use of MDAPI; not for datapumpSQL> create or replace force view sys.ku$_xmlschema_view of sys.ku$_xmlschema_t2    with object identifier (schemaoid) as3    select ‘1’,’0′,4          u.user#, u.name, x.schema_url, x.schema_id,5          (case when x.local=’YES’ then 1 else 0 end6           + case when x.binary=’YES’ then 2 else 0 end),7          xlvl.lvl,8          value(s).getClobVal(),9          xdb.dbms_xdbutil_int.XMLSchemaStripUsername(XMLTYPE(10                                                      value(s).getClobVal()),11                                                      u.name)    — stripped12      from sys.user$ u, sys.dba_xml_schemas x, xdb.xdb$schema s,13           sys.dba_xmlschema_level_view xlvl14      where x.owner=u.name and xlvl.schema_oid = x.schema_id and15            s.sys_nc_oid$ = x.schema_id and16            (SYS_CONTEXT(‘USERENV’,’CURRENT_USERID’) IN (u.user#, 0) OR17                  EXISTS ( SELECT * FROM session_roles18                          WHERE role=’SELECT_CATALOG_ROLE’ ))19  /

警告: 创建的视图带有编译错误。

SQL> grant select on sys.ku$_xmlschema_view to public2  /grant select on sys.ku$_xmlschema_view to public*第 1 行出现错误:ORA-04063: view "SYS.KU$_XMLSCHEMA_VIEW" 有错误SQL> — ku$_table_xmlschema_view is used to find the xmlschemas directly referencedSQL> — for xmltype columns/tables and dependent schemas referenced.SQL> — elclude hidden xmlschemas (32768 set in xdb$schema flags)SQL> create or replace  view ku$_table_xmlschema_view as2    select opq.obj# tabobj_num, opq.schemaoid schemaoid, opq.schemaoid par_oid3    from sys.opqtype$ opq4   UNION5    select opq.obj# tabobj_num, sd.dep_schema_oid schemaoid, opq.schemaoid par_oid6    from sys.opqtype$ opq, dba_xml_schema_dependency sd7    start with8      sd.schema_oid=opq.schemaoid and opq.type=1 and opq.schemaoid is not null9    connect by nocycle10      prior sd.dep_schema_oid=sd.schema_oid and11      prior opq.schemaoid=opq.schemaoid and opq.type=112  /

视图已创建。

SQL> grant select on ku$_table_xmlschema_view  to select_catalog_role

授权成功。

刚运行就开始报了一些错误。不过这里报错都很简单,就是一些索引,视图不存在。

3.4 手动创建视图与索引

SQL> CREATE INDEX XDB.XDBHI_IDX ON XDB.XDB$RESOURCE2  (SYS_MAKEXML(‘8758D485E6004793E034080020B242C6’,734,"XMLEXTRA","XMLDATA"))3  INDEXTYPE IS XDB.XDBHI_IDXTYP4  NOPARALLEL;索引已创建。SQL> CREATE OR REPLACE FORCE VIEW SYS.DBA_XMLSCHEMA_LEVEL_VIEW_DUP2  (3     SCHEMA_URL,4     SCHEMA_OWNER,5     SCHEMA_OID,6     LVL,7     IN_CYCLE8  )9  AS10         SELECT schema_url,11                schema_owner,12                schema_oid,13                MAX (LEVEL) + 1,14                CONNECT_BY_ISCYCLE15           FROM DBA_XML_SCHEMA_DEPENDENCY16     CONNECT BY NOCYCLE     PRIOR schema_url = dep_schema_url17                        AND PRIOR schema_owner = dep_schema_owner18                        AND PRIOR schema_oid = dep_schema_oid19       GROUP BY schema_url,20                schema_owner,21                schema_oid,22                CONNECT_BY_ISCYCLE23     UNION24     SELECT x.xmldata.schema_url,25            x.xmldata.schema_owner,26            x.sys_nc_oid$,27            1,28            029       FROM xdb.xdb$schema x30      WHERE x.xmldata.includes IS NULL AND x.xmldata.imports IS NULL;视图已创建。SQL> GRANT SELECT ON SYS.DBA_XMLSCHEMA_LEVEL_VIEW_DUP TO SELECT_CATALOG_ROLE;授权成功。SQL> CREATE OR REPLACE FORCE VIEW SYS.DBA_XMLSCHEMA_LEVEL_VIEW2  (3     SCHEMA_URL,4     SCHEMA_OWNER,5     SCHEMA_OID,6     LVL7  )8  AS9     SELECT l.schema_url,10            l.schema_owner,11            l.schema_oid,12            l.lvl13       FROM DBA_XMLSCHEMA_LEVEL_VIEW_DUP l14      WHERE NOT EXISTS15                   (SELECT 116                      FROM DBA_XMLSCHEMA_LEVEL_VIEW_DUP17                     WHERE     schema_url = l.schema_url18                           AND schema_owner = l.schema_owner19                           AND schema_oid = l.schema_oid20                           AND in_cycle = 1)21     UNION22     SELECT l.schema_url,23            l.schema_owner,24            l.schema_oid,25            026       FROM DBA_XMLSCHEMA_LEVEL_VIEW_DUP l27      WHERE EXISTS28               (SELECT 129                  FROM DBA_XMLSCHEMA_LEVEL_VIEW_DUP30                 WHERE     schema_url = l.schema_url31                       AND schema_owner = l.schema_owner32                       AND schema_oid = l.schema_oid33                       AND in_cycle = 1);视图已创建。SQL> grant select on sys.ku$_xmlschema_view to public2  ;授权成功。SQL> CREATE OR REPLACE PUBLIC SYNONYM DBA_XMLSCHEMA_LEVEL_VIEW FOR SYS.DBA_XMLSCHEMA_LEVEL_VIEW;同义词已创建。SQL> GRANT SELECT ON SYS.DBA_XMLSCHEMA_LEVEL_VIEW TO PUBLIC;授权成功。

再次运行catmetx.sql脚本,无任何报错

4 故障处理后结果

d:\wendang\SkyDrive\rs2\sql>exp system/oracle full=y file=e:\full.dmp  indexes=n constraints=n

Export: Release 11.2.0.3.0 – Production on 星期一 8月 18 14:03:15 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

注: 将不导出表的索引

注: 将不导出表的约束条件

即将导出整个数据库…

. 正在导出表空间定义

. 正在导出概要文件

. 正在导出用户定义

. 正在导出角色

. 正在导出资源成本

. 正在导出回退段定义

. 正在导出数据库链接

. 正在导出序号

. 正在导出目录别名

. 正在导出上下文名称空间

. 正在导出外部函数库名

. 导出 PUBLIC 类型同义词

. 正在导出专用类型同义词

. 正在导出对象类型定义

. 正在导出系统过程对象和操作

. 正在导出 pre-schema 过程对象和操作

. 正在导出簇定义

. 即将导出 SYSTEM 的表通过常规路径…

没有报错了

这里已经看到开始导system用户的表,没有再出现之前的故障。

------------------作者介绍-----------------------

姓名:黄廷忠 现就职:Oracle中国高级服务团队 曾就职:OceanBase、云和恩墨、东方龙马等 电话、微信、QQ:18081072613

个人博客: (http://www.htz.pw)

CSDN地址: (https://blog.csdn.net/wwwhtzpw)

博客园地址: (https://www.cnblogs.com/www-htz-pw)

故障处理:Oracle:EXP-00056 ORA-04063处理过程_xml