zoukankan      html  css  js  c++  java
  • Oracle-11g 中两库间物化视图的同步

    运行环境

    1.目标端数据库
    (1).数据库版本:Oralce-11.2.0.3
    (2).IP 地址:11.6.76.222~223
    2.源端数据库
    (1).数据库版本:Oralce-11.2.0.4
    (2).IP 地址:192.168.87.221~222
     
    物化视图同步说明
    在源端数据库创建表 TB_MV_TEST1 以及 TB_MV_TEST2,目标端将建立查询以上两表的物化视图,并分别采用增量及全量的方式进行同步。
     
    配置步骤
    1.创建测试表(源端)
    SQL> CREATE TABLE TB_MV_TEST1  (pkid number, msg varchar2(32));
    ALTER TABLE TB_MV_TEST1 ADD CONSTRAINT pk_tb_mv_test1 PRIMARY KEY (pkid);
    SQL> CREATE TABLE TB_MV_TEST2  (pkid number, msg varchar2(32));
    ALTER TABLE TB_MV_TEST2 ADD CONSTRAINT pk_tb_mv_test2 PRIMARY KEY (pkid);
    2.创建物化视图日志(源端)
    由于 TB_MV_TEST1 欲采用增量同步方式,所以对其创建物化视图日志。
    SQL> CREATE MATERIALIZED VIEW LOG ON tb_mv_test1;
    注意默认情况下将以 with primary key 方式存储物化视图日志。
    3.创建 DB LINK(目标端)
    SQL> CREATE DATABASE LINK db_test CONNECT TO adm_zsz IDENTIFIED BY "password" USING 'foctestora';
    4.创建物化视图(目标端)
    SQL> CREATE MATERIALIZED VIEW mv_test1 REFRESH FORCE ON DEMAND WITH PRIMARY KEY AS SELECT * FROM tb_mv_test1@db_test;
    SQL> CREATE MATERIALIZED VIEW mv_test2 REFRESH FORCE ON DEMAND WITH PRIMARY KEY AS SELECT * FROM tb_mv_test2@db_test;
    5.刷新物化视图(目标端)
    SQL> exec dbms_mview.refresh('MV_test1');
    SQL> exec dbms_mview.refresh('MV_test2');
    注意:因为刷新方式为 FORCE,所以将先尝试使用 FAST 方式刷新物化视图,倘若不符合 FAST 刷新的条件,则采用 COMPLETE 方式刷新。
     
    刷新方式验证
    1.新增 MASTER TABLE 数据(源端)
    SQL> insert into tb_mv_test1 values (5,'FIVE');
    SQL> insert into tb_mv_test2 values (5,'FIVE');
    2.查看物化视图日志信息(源端)
    SQL> SELECT log_owner, master, log_table, primary_key, last_purge_date,last_purge_status 
    FROM user_mview_logs;
    查询结果如下
    由上图可见,表 TB_MV_TEST1 的物化视图日志名称为 MLOG$_TB_MV_TEST1,表 TB_MV_TEST2 并无物化视图日志。
    3.查看物化视图日志内容(源端)
    SQL> SELECT * FROM MLOG$_TB_MV_TEST1;
    查询结果如下
    可见新增数据已记录于物化视图日志。
    4.刷新物化视图(目标端)
    SQL> exec dbms_mview.refresh('MV_test1');
    SQL> exec dbms_mview.refresh('MV_test2');
    5.查看物化视图刷新方式(目标端)
    SQL> SELECT owner, mview_name, last_refresh_type, last_refresh_date, staleness
    FROM dba_mviews
    查询结果如下
    由上图可见 MV_TEST1 采用 FAST 方式刷新,MV_TEST2 采用 COMPLETE 方式刷新。
    6.查看物化视图日志内容(源端)
    SQL> SELECT * FROM MLOG$_TB_MV_TEST1;
    查询结果如下
    由上图可见,源端物化视图日志在刷新后日志内容清空
  • 相关阅读:
    微信小程序反编译
    Mac 绑定Gitlab或者GitHub帐号,从新生成公钥
    Vue调试工具vue-devtools安装及使用
    NPM和Yarn添加淘宝镜像
    权限菜单设计
    Axure RP 7.0注册码
    Mac用户抓包软件Charles 4.0 破解 以及 抓取Https链接设置
    [转]c++导出函数dll供c#调用
    ef(EntityFramework)动态传递数据库连接字符串
    [转]sqlserver查询系统表统计表行数和占用空间
  • 原文地址:https://www.cnblogs.com/autopenguin/p/6289472.html
Copyright © 2011-2022 走看看