Access教程 sql server教程 MySQL教程 DB2教程
  • ORACLE教程
  • 当前位置:教程 > 数据库 > ORACLE教程 > 正文

    Oracle 10g分区表维护中的两个注意事项

    编辑:教程网 来源:网络 时间:2011年11月02日 17:36
    IT产品库 http://www.websmill.comOracle 10g分区表维护中的两个注意事项:

    1.全局索引

    SQL> alter table analyse_content truncate subpartition DATA0712_DEYANG;

    Table truncated

    truncate分区后,修改或者插入数据报错:

    ORA-01502: index 'phs.pk' or partition of such index is in unusable state

    这个时候只能rebuild index

    SQL> alter index phs.pk rebuild;

    Index altered

    执行以后恢复正常,或者使用如下语句:

    SQL> alter table analyse_content truncate subpartition DATA0712_ZIGONG UPDATE

    GLOBAL INDEXES;

    Table truncated

    这样它会自动恢复索引。

    2.物化视图

    对于已经建有fast refresh view的分区表来说,truncate和drop分区/表会导致物化视图出错。

    SQL> alter table analyse_content drop subpartition DATA0712_MIANYANG;

    Table altered

    SQL> alter table analyse_content truncate subpartition DATA0712_LUZHOU;

    Table truncated

    再次查询物化视图,这个两个分区的数据仍然存在,说明物化视图不能对这种DDL语句进行更新。

    尝试在基础表插入数据,报错:

    ORA-32313: REFRESH FAST of " " unsupported after PMOPs

    这时候必须手工刷新MV

    SQL> exec dbms_mview.refresh('mv_analyse_content','f');

    begin dbms_mview.refresh('mv_analyse_content','f'); end;

    ORA-32313: PMOP 之后不支持 "PHS"."MV_ANALYSE_CONTENT" 的 REFRESH FAST

    ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2255

    ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2461

    ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2430

    ORA-06512: 在 line 1

    看来快速刷新'f'是不行,还是得完全刷新'c'

    SQL> exec dbms_mview.refresh('mv_analyse_content','c');

    PL/SQL procedure successfully completed

    执行完后,MV里面的数据恢复正常,基表不再报错。

    实际10g里面,truncate分区后,某些物化视图可以执行fast refresh,具体有很多限制,

    要查询doc,反正select * from table这种视图肯定可以'f',不过却没有什么意义。

    ---2008 04 22 在doc上找到了PCT特性的限制,如下:

    At least one of the detail tables referenced by the materialized view must be

    partitioned.

    Partitioned tables must use either range, list or composite partitioning.

    The top level partition key must consist of only a single column.

  • 原文来自 教程网 转载请注明:http://www.websmill.com/shujuku/ORACLE/31003.html

  • 上一篇:快速掌握重启Oracle数据库的操作步骤
  • 下一篇:Oracle数据库中不同恢复的特性