博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Script:verify Oracle Object timestamp discrepancy
阅读量:6483 次
发布时间:2019-06-23

本文共 4326 字,大约阅读时间需要 14 分钟。

首先我们要知道这几个结构, 那就是    
create table obj$                                            /* object table */( obj#          number not null,                            /* object number */  dataobj#      number,                          /* data layer object number */  owner#        number not null,                        /* owner user number */  name          varchar2("M_IDEN") not null,                  /* object name */  namespace     number not null,         /* namespace of object (see KQD.H): */ /* 1 = TABLE/PROCEDURE/TYPE, 2 = BODY, 3 = TRIGGER, 4 = INDEX, 5 = CLUSTER, */                                                  /* 8 = LOB, 9 = DIRECTORY, */  /* 10 = QUEUE, 11 = REPLICATION OBJECT GROUP, 12 = REPLICATION PROPAGATOR, */                                     /* 13 = JAVA SOURCE, 14 = JAVA RESOURCE */                                                 /* 58 = (Data Mining) MODEL */  subname       varchar2("M_IDEN"),               /* subordinate to the name */  type#         number not null,                 /* object type (see KQD.H): */  /* 1 = INDEX, 2 = TABLE, 3 = CLUSTER, 4 = VIEW, 5 = SYNONYM, 6 = SEQUENCE, */             /* 7 = PROCEDURE, 8 = FUNCTION, 9 = PACKAGE, 10 = NON-EXISTENT, */              /* 11 = PACKAGE BODY, 12 = TRIGGER, 13 = TYPE, 14 = TYPE BODY, */      /* 19 = TABLE PARTITION, 20 = INDEX PARTITION, 21 = LOB, 22 = LIBRARY, */                                             /* 23 = DIRECTORY , 24 = QUEUE, */    /* 25 = IOT, 26 = REPLICATION OBJECT GROUP, 27 = REPLICATION PROPAGATOR, */    /* 28 = JAVA SOURCE, 29 = JAVA CLASS, 30 = JAVA RESOURCE, 31 = JAVA JAR, */                 /* 32 = INDEXTYPE, 33 = OPERATOR , 34 = TABLE SUBPARTITION, */                                                  /* 35 = INDEX SUBPARTITION */                                                 /* 82 = (Data Mining) MODEL */                                /* 92 = OLAP CUBE DIMENSION,  93 = OLAP CUBE */                   /* 94 = OLAP MEASURE FOLDER, 95 = OLAP CUBE BUILD PROCESS */  ctime         date not null,                       /* object creation time */  mtime         date not null,                      /* DDL modification time */ stime date not null, /* specification timestamp (version) */  status        number not null,            /* status of object (see KQD.H): */                                     /* 1 = VALID/AUTHORIZED WITHOUT ERRORS, */                          /* 2 = VALID/AUTHORIZED WITH AUTHORIZATION ERRORS, */                            /* 3 = VALID/AUTHORIZED WITH COMPILATION ERRORS, */                         /* 4 = VALID/UNAUTHORIZED, 5 = INVALID/UNAUTHORIZED */ create table dependency$                                 /* dependency table */( d_obj#        number not null,                  /* dependent object number */  d_timestamp   date not null,   /* dependent object specification timestamp */  order#        number not null,                             /* order number */  p_obj#        number not null,                     /* parent object number */ p_timestamp date not null, /* parent object specification timestamp */  d_owner#      number,                           /*  dependent owner number */  property      number not null,                   /* 0x01 = HARD dependency */                                                   /* 0x02 = REF  dependency */                                          /* 0x04 = FINER GRAINED dependency */  d_attrs       raw("M_CSIZ"), /* Finer grain attr. numbers if finer grained */  d_reason      raw("M_CSIZ"))  /* Reason mask of attrs causing invalidation */
  obj$ 和dependency$ 是2个基础的数据字典表:   obj$.stime的解释是specification timestamp (version),实际上这个字段代表了该对象的版本,指这个数据字典版本被创建的日期。 dependency$.p_timestamp代表依赖关系中父对象的数据字典版本被创建的日期。   例如STANDARD这个对象的STIME 字典版本的创建日期可能非常早:  
SQL> select name,stime,ctime,mtime from sys.obj$ where name='STANDARD';NAME                           STIME     CTIME     MTIME------------------------------ --------- --------- ---------STANDARD 18-APR-06 17-SEP-11 17-SEP-11STANDARD                       17-SEP-11 17-SEP-11 17-SEP-11
    注意若你的数据库是通过restore seed database(DBCA时选择非custom database)可能许多对象的stime=ctime。   有时候为了确保Oracle组件的正常,我们需要检验 父对象和依赖关系的数据字典版本是一致的,若不一致那么会导致组件对象失效(component object invalid)。   以下脚本可以列出数据库中所有父对象和依赖关系的数据字典版本是不一致的对象:  
 

select do.obj# d_obj,

本文转自maclean_007 51CTO博客,原文链接:

http://blog.51cto.com/maclean/1278432

转载地址:http://utbuo.baihongyu.com/

你可能感兴趣的文章
Shell 函数、数组与正则表达式
查看>>
编译安装PHP时两个报错的解决办法
查看>>
System Center 2012 SP1 Data Protection Manager 防止重复备份数据
查看>>
读书-算法《程序设计导引及在线实践》-简单计算题3:校门外的树
查看>>
MFC下的网络编程(1)CAsyncSocket进行无连接(UDP)通信
查看>>
php-jquery-json-3
查看>>
前后端分离djangorestframework——ContentType组件表
查看>>
consul UI用127可以访问,指定ip无法访问
查看>>
测试缺陷分析务实篇-转
查看>>
从测试转研发
查看>>
sscanf函数详解 & 查找文件字符串
查看>>
Java多线程系列目录(共43篇)
查看>>
Spring装配Bean---使用xml配置
查看>>
[洛谷P4311]士兵占领
查看>>
[HNOI2010]弹飞绵羊
查看>>
struct字节对齐原则
查看>>
从容的周6
查看>>
Sprite和UI Image的区别
查看>>
curl教程2
查看>>
slideout
查看>>