Jul 07 2006

最简单的创建复制环境中只读实体化视图站点的方法

Published by kamus at 5:06 pm under Oracle RDBMS

目的:创建一个实体化视图站点,定时刷新,获取主站点中指定表的变化,这个实体化站点可以作为查询服务器使用

步骤:

1。主站点上创建实体化视图日志表

  1. CREATE MATERIALIZED VIEW LOG ON kamus.account2004;

2。实体化视图站点上创建公用数据库链接

  1. conn system/password
  2.  
  3. CREATE PUBLIC DATABASE LINK orcl using 'ORCL';

3。实体化视图站点上创建刷新组,本例中3分钟刷新一次

  1. conn system/password
  2.  
  3. BEGIN
  4.    DBMS_REFRESH.MAKE (
  5.       name => 'kamus.test_repg',
  6.       list => '',
  7.       next_date => SYSDATE,
  8.       interval => 'SYSDATE + 3/(24*60)',
  9.       implicit_destroy => FALSE,
  10.       rollback_seg => '',
  11.       push_deferred_rpc => TRUE,
  12.       refresh_after_errors => FALSE);
  13. END;
  14. /
  15. COMMIT;

注意:此处必须commit,否则创建的刷新组并没有真正生效。

4。实体化视图站点上创建用户私有数据库链接

  1. conn kamus/password
  2.  
  3. CREATE DATABASE LINK orcl CONNECT TO kamus IDENTIFIED BY password;

5。实体化视图站点上创建实体化视图

  1. conn kamus/password
  2.  
  3. CREATE MATERIALIZED VIEW KAMUS.ACCOUNT2004 REFRESH FAST WITH PRIMARY KEY  AS SELECT * FROM   KAMUS.ACCOUNT2004@orcl;

6。实体化视图站点上将创建的视图加入刷新组

  1. conn kamus/password
  2.  
  3. exec DBMS_REFRESH.ADD(name => 'kamus.TEST_REPG', list => 'kamus.ACCOUNT2004', lax => TRUE);

7。测试,在主站点中更新ACCOUNT2004表,过3分钟检查实体化试图站点中的视图,发现更新已经复制成功。

以上为建立只读实体化视图站点的最简单方法:

不需要创建其它的任何用户,比如复制环境中需要的传播者,刷新者,接收者等等

不需要创建任何复制组

不需要生成任何复制对象,不需要生成任何对象的复制支持

Trackback URI | Comments RSS


Leave a Reply

-> :( :! :D :| :? :X ;;) :) ;)