`
misxjq
  • 浏览: 12708 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle 快照(snapshot )及dblink使用

阅读更多

     一下内容在oracle10g下测试通过
  /*一、创建dblink:*/

  --1、在目的数据库上,创建dblin
  drop database link dblink_anson;
  Create database link dblink_anson
  Connect to sourceuser identified by "userpassword" using 'sourcelink';
/**
       sourceuser、userpassword、sourcelink三个参数分别为:源数据库的用户名、密码(注意要使用双引号括起来)、目地数据库tnsnames文件中配置的连接名(如下面中实例中的红色字体,注意要使用单引号括起来,引号都要使用半角的哦!);

       ZY-ORCL =
            (DESCRIPTION =
                (ADDRESS = (PROTOCOL = TCP)(HOST = 10.28.1.56)(PORT = 1521))
                (CONNECT_DATA =
                    (SERVER = DEDICATED)
                    (SERVICE_NAME = ORCL)
                )
          )  
**/
  /*二、创建快照:*/
  --1、在源数据库上执行以下语句,创建要被同步的表
  drop table tb_anson;
  create table tb_anson(c1 varchar2(12));
  alter table tb_anson add constraint pk_anson primary key (C1);

       --注意:必须给表创建主键,否则将不能建立同步快照日志;

  --2、在目的数据库上,测试dblink
  select * from tb_anson@dblink_anson;

  --3、在目的数据库上,创建要同步表的快照日志
  Create snapshot log on tb_anson;

  --4、创建快照,快照(被同步(源)数据库服务必须启动)
  Create snapshot new_tagert_tablename refresh fast start with sysdate next sysdate+1/1440  as select * from tb_anson@dblink_anson;

       --注意:new_tagert_tablename 为目的数据库中准备存储源数据库中快照同步表的表名,可以与源数据库的表明相同,也可以不同;start with后面的参数“sysdate”表示开始同步时间,语句中的参数表示立刻执行; next后面的参数表示同步的频率,语句中的参数表示一分钟,而实际的情况要更快,也就10到20秒,当然可能根据表中的字段数量有关系,同时指出的是,对于clob和blob字段也是同样能够同步的;

  --5、设置快照刷新时间
  Alter snapshot anson refresh fast Start with sysdate+1/24*60 next sysdate+10/24*60;
  --oracle自动在1分钟后进行第一次快速刷新,以后每隔10分钟快速刷新一次

  Alter snapshot anson refresh complete Start with sysdate+30/24*60*60 next sysdate+1;
  --oracle自动在30钞后进行第一次完全刷新,以后每隔1天完全刷新一次

  --6、手动刷新快照
  begin
      dbms_refresh.refresh('"CS"."SN_ANSON"');
  end;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics