【DBA】作为一个DBA:      一、如何去分辨ORACLE库中哪些表和数据是长久废弃不用的,
      二、应该如何清理?
      三、敢不敢清理?
      四、清理前要做哪些准备工作???
      五、清理后会不会影响或会不会存在潜在的影响??请各位高手给支个招或提个可cao(怕论坛屏蔽)作性方案?

解决方案 »

  1.   

    在视图ALL_OBJECTS里面有LAST_DDL_TIME字段 解释如下
    LAST_DDL_TIME 
    DATE 
    NOT NULL 
    Timestamp for the last modification of the object resulting from a DDL statement (including grants and revokes) 
    不过好像只针对DDL
      

  2.   

    一、如何去分辨ORACLE库中哪些表和数据是长久废弃不用的, 
          二、应该如何清理? 
          三、敢不敢清理? 
          四、清理前要做哪些准备工作??? 
          五、清理后会不会影响或会不会存在潜在的影响?? ||||||||||||||||||||||||
    1.
    感觉第一个操作,一般是负责应用平台数据的人比较清楚,
    常用的哪些表,哪些表只是备份数据,哪些是过期不用的。
    一般应用在设计的时候,总会有自己的考虑。
    比如在表中增加某个字段表名某行的最近修改时间。2.清理的时候也要小心了,
    因为生产库应用大的时候,磁盘 io资源总是有限的,
    数据库的数据资源也是有限的。
    所以一般在生产系统比较空闲的时候做。3.规范好一个清理的流程,确定责任人,实施人,监控人,
    剩下的就很好弄了哈。4.清理前一般都有必要的备份工作。5。清理后,会立即要应用的负责查询表的状态,数据是否一致正常。
       并在未来几天内观察库的情况。
      

  3.   


    根据系统来操作。 数据库里面的数据是不能随便删除的。 楼主根据你们公司的系统来分析,假如说系统只需要保留3个月的数据,那么三个月之前的数据就可以删掉。
    如果说系统不允许删除。 那么就得保留。 哪怕数据在大。 一个好的系统在设计之初,就对数据库的增长有过估计,在设计相应数据字典的时候就有考虑这一点。
    作为DBA, 我们首要考虑的是,数据库能否正常运行,能否进行优化,如果说我们优化过之后性能还是不能提高,那么就是系统设计的问题。在做任何影响数据的操作之前,数据库一定要有有效的备份
      

  4.   

    如何去分辨ORACLE库中哪些表和数据是长久废弃不用的这是个最关键的问题,其他问题都不困难.
    可以设计一些审计选项来查看表是否被使用,比如对表EMPLOYEES的SELECT加审计,用语句
    AUDIT SELECT ON employees;
    这样如果执行了
    SELECT * FROM employees;
    就可以利用视图dba_audit_trail查询出来。注意开启审计要修改数据库初始化参数AUDIT_TRAIL为DB,或DB,EXTENDED
      

  5.   


    也不一定,因为DBA对表结构也应有一定的了解,如果不了解可以与开发商沟通,知道哪些表是一定要用到的,排除这些必用的表,剩下的表就少多了。
    这里审计主要目的是看大表对磁盘的占用,所以对于几千条以内的数据量的表也可以不做审计。
      

  6.   

    对,赞成,平日DBA应该对数据库中的所有表都有设置审计的意识,为后期不断“发胖”的数据库性能优化来说是一个很好的方法。
      

  7.   

    这段时间就在研究这个,问题主要集中在哪些数据是过期的或者说需要归档的。这个跟业务联系的比较紧密。比如订单的信息,业务说保留一年的,那就是一年之前的全部导出或者删除,财务的日记账可能要保留三个月。这些知道后再去根据相关的时间列去查询。
    有一家公司在这方面做的很先进,国外的,叫outbay还是什么的。
    不过还是很复杂,最好有接口表能用做好了