环境准备: 源:166.166.1.1:ydb:test 目标:166.166.1.2:tdb:test_ext 需求: 要求源表每天同步到目标数据库test_ext用户下 实现方法: 两个用户之间通过dblink做物化视图 1.2上创建用户: create tablespace ts_test_ext datafile '/home/oracle/app/oradata/orcl/ts_test_ext01.dbf' size 30G autoextend on; create user test_ext identified by xxxx default tablespace ts_test_ext; grant connect,recource to test_ext; 操作过程: 1. 先给两边的用户全部以下授权: 1.1 grant create session to test; grant create any context to test; grant create synonym to test; grant create public synonym to test; grant create materialized view to test; grant on commit refresh to test; --------------------------- 1.2 grant create session to test_ext; grant create any context to test_ext; grant create synonym to test_ext; grant create public synonym to test_ext; grant create materialized view to test_ext; grant on commit refresh to test_ext; grant create database link to test_ext; 2. 在目标数据库创建dblink连接到源库 在 create database link ydb connect to test identified by xxxx using 'ydb'; 注:##在创建完dblink后或者之前先在目标库的tnsname.ora的配置文件里面写好源的service_name。 3. 在源数据库创建物化视图日志 1.1,test账号下 create materialized view log on test_table with primary key including new values; 4. 在目标数据库创建物化视图 1.2 test_ext create materialized view test_table BUILD deferred refresh fast with primary key on demand enable QUERY REWRITE as select * from test_table@ydb; 注: build immediate 在创建物化视图的同事根据主表生产数据,默认选项 build deferred 在创建物化视图的同时,在物化视图内部生成数据,如果此时没有生成数据,以后可以使用dbms包刷新 exec dbms_mview.refresh('test_table','C'),注意必须使用全量刷新,默认是增量刷新,所以这个参数必须是C, 刷新方式有complete fast force 5. 在物化视图上创建索引 create index inx_cell_phonehash on test_table(stan_cell_phone_hash) nologging ; create index inx_c1_phonehash on test_table(stan_c_1_phone_hash) nologging; ############################################# ################################################# 制定刷新任务 或者是在创建物化视图的时候就直接加条件,每5分钟同步一次。 SQL> exec dbms_mview.refresh('test_table','C');全量同步 PL/SQL procedure successfully completed SQL> exec dbms_mview.refresh('test_table');增量同步 PL/SQL procedure successfully completed ############################################# ################################################# 注: 删除物化视图的操作: 查询物化视图刷新的时间: 1.2:test_ext SELECT mview_name, last_refresh_date, fullrefreshtim, increfreshtim FROM dba_mview_analysis WHERE owner='test_ext'; 刷新完以后查看刷新的数据: select count(*) from test_table; ---------------------------------------------- --------------------------- 创建存储过程,和job自动刷新 create or replace procedure auto_mv_refresh_proc as begin dbms_mview.refresh('test_table'); end auto_mv_refresh_proc; BEGIN sys.dbms_scheduler.create_job( job_name => '"SYS"."AUTO_MV_REFRESH_JOB"', job_type => 'STORED_PROCEDURE', job_action => '"test_ext"."AUTO_MV_REFRESH_PROC"', repeat_interval => 'FREQ=DAILY;BYHOUR=4;BYMINUTE=0;BYSECOND=0', start_date => systimestamp at time zone 'Asia/Shanghai', job_class => '"DEFAULT_JOB_CLASS"', auto_drop => FALSE, enabled => TRUE); END; 备注:日志和物化视图要分开删除 原库:DROP MATERIALIZED VIEW LOG ON SHSC_REQ_RES_LOG; 目标库:DROP MATERIALIZED VIEW SHSC_REQ_RES_LOG;
oracle基于物化视图的数据同步
来源:这里教程网
时间:2026-03-03 16:00:50
作者:
编辑推荐:
- oracle基于物化视图的数据同步03-03
- 美创科技运维日记|Oracle字段长度引起的思考length()和lengthb()03-03
- merge into 和 update 的效率对比03-03
- 初始化参数游标之cursor_sharing03-03
- 19c(19.3) RPM方式单机数据库安装03-03
- AWR自动生成,定时推送03-03
- oracle日常运维常用SQL--0103-03
- Oracle 修改集群的资源属性(依赖关系)03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 美创科技运维日记|Oracle字段长度引起的思考length()和lengthb()
- Oracle 修改集群的资源属性(依赖关系)
Oracle 修改集群的资源属性(依赖关系)
26-03-03 - Oracle OCR/VF磁盘组的故障恢复
Oracle OCR/VF磁盘组的故障恢复
26-03-03 - Oracle 11g RAC + DG安装详解--04
Oracle 11g RAC + DG安装详解--04
26-03-03 - 如何选择合适的小型项目管理工具?
如何选择合适的小型项目管理工具?
26-03-03 - Oracle ASM磁盘组的卸载与删除
Oracle ASM磁盘组的卸载与删除
26-03-03 - pl/sql developer的一个小问题
pl/sql developer的一个小问题
26-03-03 - ORACLE 数据导出LOB字段报错ORA-31693,ORA-02354,ORA-22924
- 腾点点IP营销王、红蚂蚁系统重磅上线
腾点点IP营销王、红蚂蚁系统重磅上线
26-03-03 - oracle数据库云服务器怎么安装?
oracle数据库云服务器怎么安装?
26-03-03
