ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 物化视图同步数据

物化视图同步数据

原创 Linux操作系统 作者:阿日 时间:2009-05-06 14:31:57 0 删除 编辑
*********--对于不包括long类型的物化视图****************
1.建立测试表
  create table test_user(id int,name varchar2(20));

源  库:
SQL> show user;
USER 为 "TECHLINE"
SQL> create table test_user(id int,name varchar2(20));

表已创建。

目标库:
SQL> show user;
USER 为 "TEST01"
SQL> create table test_user(id int,name varchar2(20));

表已创建。

2.在源数据库上建立物化视图日志
  create materialized view log on test_user;

SQL> create materialized view log on test_user;
create materialized view log on test_user
*
第 1 行出现错误:
ORA-12014: table 'TEST_USER' does not contain a primary key constraint

SQL> alter table test_user add primary key(id);
表已更改。

SQL> create materialized view log on test_user;

实体化视图日志已创建。


3.在目标数据库上建立DBlink
  create public database link t32_link
  connect to techline identified by techline
  using 'fttest';

4.在目标库上建立物化视图
  create materialized view test_user on prebuilt table
  refresh fast as select * from test_user@t32_dblink;

5.更改视图的刷新方式
  alter materialized view test_user refresh complete
  start with sysdate
  next sysdate+10/(24*60*60);

(3-4-5都在目标库上操作,步骤如下:)
----------------------------------------------
SQL> create public database link t32_dblink
  2  connect to techline identified by techline
  3  using 'fttest';

数据库链接已创建。

SQL> create materialized view test_user_mv on prebuilt table
  2  refresh complete
  3  as select * from test_user@t32_dblink;
create materialized view test_user_mv on prebuilt table
         *
第 1 行出现错误:
ORA-12059: 预建表 "TEST01"."TEST_USER_MV" 不存在


SQL> create materialized view test_user  on prebuilt table
  2   refresh complete as select * from test_user@t32_dblink;

实体化视图已创建。

SQL> alter materialized view test_user refresh complete start with sysdate next sysdate+10/(24*60*60
);

实体化视图已更改。

----------------------------------------------

6.测试,在源数据库中
SQL> select * from test_user;

未选定行

SQL> insert into test_user values(1,'zxf');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from test_user;

        ID NAME
---------- --------------------
         1 zxf

目标库中数据,10秒后就会有记录,更改一样
SQL> select * from test_user;

未选定行

SQL>  select * from test_user;

        ID NAME
---------- --------------------
         1 zxf


*********--对于包括 long类型的物化视图****************

1.建立表
SQL> create table com_sql(id int,name varchar2(20),comsql long);

表已创建。

SQL> alter table com_sql add primary key(id);

表已更改。
分别在源数据库与目标数据库上建立

2.
SQL> create materialized view log on com_sql;

实体化视图日志已创建。

3.创建DBLINK(这里用t32_dblink)
4.建立物化视图,对于long类型,在网上处理采用  to_lob方式进行一下转化

但实际上会出错.................:(((((
也许是我的一个版本是9i,一个是10g版本有的不支持,你可以参考一下
http://yangtingkun.itpub.net/post/468/139790这个贴子

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/67668/viewspace-594305/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-26

  • 博文量
    35
  • 访问量
    144884