由于数据库A上的表data_01有大量的实时数据插入以及实时数据查询。有一定的读写压力。现在想把数据库A上表data_01部分最新数据放到数据库B上。这样可以将实时查询放到B上,减轻A中data_01的压力。现在的方法是通过DB Link + 物化视图实现同步。物化视图mv_data_01,同步方式fast,每隔一分钟刷新一次。但由于web的查询是查询最新的,故mv_data_01不需要保存过多的数据。打算保存一天的,过了一天就把昨天的数据清掉。今天用truncate对物化视图mv_data_01操作,结果数据就不能同步。不清楚出什么问题,不知道有什么解决方法吗?
或者有没有更好的办法解决表的读写矛盾?版本Oracle 11gR2Oracle物化视图表同步

解决方案 »

  1.   

    简而言之,就是表同步后,目标表可修改(主要是清除旧数据),而且修改不能同步到源表(单向同步)。
    物理standby和物化视图好像都不能
      

  2.   

    刷新模式指定为 FORCE试试
    刷新模式为FASH时,做了TRUNCATE操作,好像无法完成数据同步了
      

  3.   


    警告日志:
    Errors in file d:\app\administrator\diag\rdbms\gcpsd\gcpsd\trace\gcpsd_j001_4992.trc:
    ORA-12012: error on auto execute of job 6
    ORA-32320: REFRESH FAST of "IDC"."MV_COLLECT_DATA_01" unsupported after container table PMOPs
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2558
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2771
    ORA-06512: at "SYS.DBMS_IREFRESH", line 685
    ORA-06512: at "SYS.DBMS_REFRESH", line 195
    ORA-06512: at line 1
      

  4.   


    警告日志:
    Errors in file d:\app\administrator\diag\rdbms\gcpsd\gcpsd\trace\gcpsd_j001_4992.trc:
    ORA-12012: error on auto execute of job 6
    ORA-32320: REFRESH FAST of "IDC"."MV_COLLECT_DATA_01" unsupported after container table PMOPs
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2558
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2771
    ORA-06512: at "SYS.DBMS_IREFRESH", line 685
    ORA-06512: at "SYS.DBMS_REFRESH", line 195
    ORA-06512: at line 1dblink不能支持fast刷新
      

  5.   


    警告日志:
    Errors in file d:\app\administrator\diag\rdbms\gcpsd\gcpsd\trace\gcpsd_j001_4992.trc:
    ORA-12012: error on auto execute of job 6
    ORA-32320: REFRESH FAST of "IDC"."MV_COLLECT_DATA_01" unsupported after container table PMOPs
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2558
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2771
    ORA-06512: at "SYS.DBMS_IREFRESH", line 685
    ORA-06512: at "SYS.DBMS_REFRESH", line 195
    ORA-06512: at line 1dblink不能支持fast刷新可以啊