Oracle物化视图应用笔记

CoderQiang 2012-10-09

在两个数据库中实现数据增量同步

Oracle数据库IP:192.168.0.1(源库)、192.168.0.2(目标库)

1、在源库创建测试表TEST

  1. create table TEST 
  2.   ID          NUMBER not null
  3.   NAME        VARCHAR2(200) 
  4. ); 
create table TEST
(
  ID          NUMBER not null,
  NAME        VARCHAR2(200)
);

2、插入一条数据

  1. INSERT INTO TEST(ID,NAMEVALUES (1,'1111'); 
  2. commit
INSERT INTO TEST(ID,NAME) VALUES (1,'1111');
commit;


3、在源库创建物化视图日志表

  1. create materialized view log on TEST with rowid; 
create materialized view log on TEST with rowid;

4、在目标库创建一个DBLink链接

  1. create database link DBLINK_TEST 
  2. connect TO username identified by "123456"   
  3. using '(DESCRIPTION = 
  4.     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)) 
  5.     (CONNECT_DATA = 
  6.       (SERVER = DEDICATED) 
  7.       (SERVICE_NAME = orcl) 
  8.     ) 
  9.   )' ; 
create database link DBLINK_TEST
connect TO username identified by "123456" 
using '(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )' ;

5、在目标库创建针对源库中TEST表的物化视图表MV_TEST

  1. create materialized view MV_TEST 
  2. Refresh fast   
  3. on demand     
  4. with rowid     
  5. as SELECT * from TEST@DBLINK_TEST; 
create materialized view MV_TEST
Refresh fast  
on demand    
with rowid   
as SELECT * from TEST@DBLINK_TEST;

该表创建的同时,就会把源表中的数据同步过来;

6、手工执行同步

  1. call dbms_mview.refresh('MV_TEST'); 

相关推荐