设为首页 收藏本站
查看: 766|回复: 0

[经验分享] 修复oracle组件catproc-onlaoc

[复制链接]

尚未签到

发表于 2018-9-14 12:21:23 | 显示全部楼层 |阅读模式
  数据库版本:
  SQL> select * from v$version;

  Oracle Database 10g Enterprise Edition>
  PL/SQL>  CORE    10.2.0.4.0      Production
  TNS for HPUX: Version 10.2.0.4.0 - Production
  NLSRTL Version 10.2.0.4.0 - Production
  组件CATPROC处于invalid状态
  SQL> select * from dba_registry;
  COMP_ID
  ------------------------------
  COMP_NAME
  ------------------------------------------------------------------------------------------------------------------------------------[02:19:29]------------------
  VERSION                        STATUS                 MODIFIED                NAMESPACE                      CONTROL
  ------------------------------ ---------------------- ----------------------- ------------------------------ -----------------------[02:19:29]-------
  SCHEMA                         PROCEDURE                                                     STARTUP  PARENT_ID
  ------------------------------ ------------------------------------------------------------- -------- ------------------------------
  OTHER_SCHEMAS
  ------------------------------------------------------------------------------------------------------------------------------------[02:19:29]------------------
  ODM
  Oracle Data Mining
  10.2.0.4.0                     VALID                  12-AUG-2013 03:46:46    SERVER                         SYS
  DMSYS                          VALIDATE_ODM
  CATALOG
  Oracle Database Catalog Views
  10.2.0.4.0                     VALID                  12-AUG-2013 03:46:44    SERVER                         SYS
  SYS                            DBMS_REGISTRY_SYS.VALIDATE_CATALOG
  CATPROC
  Oracle Database Packages and Types
  10.2.0.4.0                     INVALID                12-AUG-2013 03:46:44    SERVER                         SYS
  SYS                            DBMS_REGISTRY_SYS.VALIDATE_CATPROC
  DBSNMP,OUTLN,SYSTEM
  查找该组建相关的包:
  SQL> set serveroutput on;
  SQL> declare
  2  start_time date;
  3  end_time date;
  4  object_name varchar(100);
  5  object_id char(10);
  6  begin
  7  SELECT date_loading, date_loaded into start_time, end_time FROM registry$ WHERE
  8  cid = 'CATPROC';
  9  SELECT obj#,name into object_id,object_name
  10        FROM obj$
  11        WHERE status > 1 AND
  12              (ctime BETWEEN start_time AND end_time OR
  13     mtime BETWEEN start_time AND end_time OR
  14               stime BETWEEN start_time AND end_time) AND
  15               ROWNUM  select owner,object_id,object_name,OBJECT_TYPE from dba_objects where object_id=9662;
  OWNER                           OBJECT_ID
  ------------------------------ ----------
  OBJECT_NAME                                                                                                                      OBJ[02:29:29]ECT_TYPE
  -------------------------------------------------------------------------------------------------------------------------------- ---[02:29:29]----------------
  SYS                                  9662
  DBMS_SQLPA

  SQL>>
  Warning: Package Body>  SQL> show error
  Errors for PACKAGE BODY DBMS_SQLPA:
  LINE/COL ERROR
  -------- --------------------------------------------------
  113/5    PL/SQL: SQL Statement ignored

  118/44   PL/SQL: ORA-00904: "OTHER_XML": invalid>  发现编译该包的时候报错,出现在113行;由于系统包代码被oracle加密,可以使用halledba的工具fyunwrap解密;
  查看该包113行内容为:
  INSERT INTO PLAN_TABLE
  (ID, POSITION, DEPTH, OPERATION, OPTIONS, OBJECT_NAME,
  CARDINALITY, BYTES, TEMP_SPACE, COST, IO_COST, CPU_COST,
  TIME, PARTITION_START, PARTITION_STOP, OBJECT_NODE, OTHER_TAG,
  DISTRIBUTION, PROJECTION, ACCESS_PREDICATES, FILTER_PREDICATES,
  QBLOCK_NAME, OBJECT_ALIAS, OTHER_XML)
  (SELECT /*+ opt_param('parallel_execution_enabled', 'false') */

  >  CARDINALITY, BYTES, TEMP_SPACE, COST, IO_COST, CPU_COST,
  TIME, PARTITION_START, PARTITION_STOP, OBJECT_NODE, OTHER_TAG,
  DISTRIBUTION, PROJECTION, ACCESS_PREDICATES, FILTER_PREDICATES,
  QBLOCK_NAME, OBJECT_ALIAS, OTHER_XML
  FROM TABLE(SQL_PLAN));
  检查plan_table:
  SQL> select * from dba_objects where object_name='PLAN_TABLE';
  OWNER                          OBJECT_NAME                    SUBOBJECT_NAME                  OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
  ------------------------------ ------------------------------ ------------------------------ ---------- -------------- -------------[02:39:19]------
  CREATED      LAST_DDL_TIM TIMESTAMP           STATUS  T G S
  ------------ ------------ ------------------- ------- - - -
  SYS                            PLAN_TABLE                                                        236182         236182 TABLE
  03-JAN-11    03-JAN-11    2011-01-03:11:25:24 VALID   N N N
  PUBLIC                         PLAN_TABLE                                                          7700                SYNONYM
  19-APR-09    19-APR-09    2009-04-19:22:11:18 VALID   N N N
  SQL> @get_ddl
  CREATE TABLE "SYS"."PLAN_TABLE"
  (    "STATEMENT_ID" VARCHAR2(30),
  "TIMESTAMP" DATE,
  "REMARKS" VARCHAR2(80),
  "OPERATION" VARCHAR2(30),
  "OPTIONS" VARCHAR2(255),
  "OBJECT_NODE" VARCHAR2(128),
  "OBJECT_OWNER" VARCHAR2(30),
  "OBJECT_NAME" VARCHAR2(30),
  "OBJECT_INSTANCE" NUMBER(*,0),
  "OBJECT_TYPE" VARCHAR2(30),
  "OPTIMIZER" VARCHAR2(255),
  "SEARCH_COLUMNS" NUMBER,
  "ID" NUMBER(*,0),
  "PARENT_ID" NUMBER(*,0),
  "POSITION" NUMBER(*,0),
  "COST" NUMBER(*,0),
  "CARDINALITY" NUMBER(*,0),
  "BYTES" NUMBER(*,0),
  "OTHER_TAG" VARCHAR2(255),
  "PARTITION_START" VARCHAR2(255),
  "PARTITION_STOP" VARCHAR2(255),
  "PARTITION_ID" NUMBER(*,0),
  "OTHER" LONG,
  "DISTRIBUTION" VARCHAR2(30),
  "CPU_COST" NUMBER(*,0),
  "IO_COST" NUMBER(*,0),
  "TEMP_SPACE" NUMBER(*,0)
  )
  另外一个正常库的plan_table表结构为
  CREATE TABLE "SYS"."PLAN_TABLE"
  (    "STATEMENT_ID" VARCHAR2(30),
  "PLAN_ID" NUMBER,
  "TIMESTAMP" DATE,
  "REMARKS" VARCHAR2(4000),
  "OPERATION" VARCHAR2(30),
  "OPTIONS" VARCHAR2(255),
  "OBJECT_NODE" VARCHAR2(128),
  "OBJECT_OWNER" VARCHAR2(30),
  "OBJECT_NAME" VARCHAR2(30),
  "OBJECT_ALIAS" VARCHAR2(65),
  "OBJECT_INSTANCE" NUMBER(*,0),
  "OBJECT_TYPE" VARCHAR2(30),
  "OPTIMIZER" VARCHAR2(255),
  "SEARCH_COLUMNS" NUMBER,
  "ID" NUMBER(*,0),
  "PARENT_ID" NUMBER(*,0),
  "DEPTH" NUMBER(*,0),
  "POSITION" NUMBER(*,0),
  "COST" NUMBER(*,0),
  "CARDINALITY" NUMBER(*,0),
  "BYTES" NUMBER(*,0),
  "OTHER_TAG" VARCHAR2(255),
  "PARTITION_START" VARCHAR2(255),
  "PARTITION_STOP" VARCHAR2(255),
  "PARTITION_ID" NUMBER(*,0),
  "OTHER" LONG,
  "DISTRIBUTION" VARCHAR2(30),
  "CPU_COST" NUMBER(*,0),
  "IO_COST" NUMBER(*,0),
  "TEMP_SPACE" NUMBER(*,0),
  "ACCESS_PREDICATES" VARCHAR2(4000),
  "FILTER_PREDICATES" VARCHAR2(4000),
  "PROJECTION" VARCHAR2(4000),
  "TIME" NUMBER(*,0),
  "QBLOCK_NAME" VARCHAR2(30),
  "OTHER_XML" CLOB
  发现明显表结构不一致;
  对plan_table表重建或者rename;
  重新运行编译脚本
  @?/rdbms/admin/utlrp.sql
  SQL> execute DBMS_REGISTRY_SYS.VALIDATE_CATPROC;
  PL/SQL procedure successfully completed.
  SQL> select * from dba_registry;
  COMP_ID
  ------------------------------
  COMP_NAME
  ------------------------------------------------------------------------------------------------------------------------------------[02:52:40]------------------
  VERSION                        STATUS                 MODIFIED                NAMESPACE                      CONTROL
  ------------------------------ ---------------------- ----------------------- ------------------------------ -----------------------[02:52:40]-------
  SCHEMA                         PROCEDURE                                                     STARTUP  PARENT_ID
  ------------------------------ ------------------------------------------------------------- -------- ------------------------------
  OTHER_SCHEMAS
  ------------------------------------------------------------------------------------------------------------------------------------[02:52:40]------------------
  CONTEXT
  Oracle Text
  10.2.0.4.0                     VALID                  13-AUG-2013 02:51:32    SERVER                         SYS
  CTXSYS                         VALIDATE_CONTEXT
  EXF
  Oracle Expression Filter
  10.2.0.4.0                     VALID                  13-AUG-2013 02:51:31    SERVER                         SYS
  EXFSYS                         VALIDATE_EXF
  RUL
  Oracle Rules Manager
  10.2.0.4.0                     VALID                  13-AUG-2013 02:51:32    SERVER                         SYS
  EXFSYS                         VALIDATE_RUL
  OWM
  Oracle Workspace Manager
  10.2.0.4.3                     VALID                  13-AUG-2013 02:51:31    SERVER                         SYS
  WMSYS                          VALIDATE_OWM
  ODM
  Oracle Data Mining
  10.2.0.4.0                     VALID                  13-AUG-2013 02:51:32    SERVER                         SYS
  DMSYS                          VALIDATE_ODM
  CATALOG
  Oracle Database Catalog Views
  10.2.0.4.0                     VALID                  13-AUG-2013 02:51:31    SERVER                         SYS
  SYS                            DBMS_REGISTRY_SYS.VALIDATE_CATALOG
  CATPROC
  Oracle Database Packages and Types
  10.2.0.4.0                     VALID                  13-AUG-2013 02:52:25    SERVER                         SYS
  SYS                            DBMS_REGISTRY_SYS.VALIDATE_CATPROC
  DBSNMP,OUTLN,SYSTEM
  再次检查发现catproc组建状态已经被修复


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-582774-1-1.html 上篇帖子: 数据库管理Oracle 连接池信息的修改 下篇帖子: Oracle不同故障的恢复方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表