两台Oracle之间进行数据同步,可以借助Oracle的dblink完成,如果是Oracle与其他数据库之间,则可以使用Oracle提供的Database Gateways+dblink实现,当然,也可以使用开源ETL工具如kettle完成。

这里提供两种在Oracle之间同步数据的简单解决方案。

0 需求

A(192.168.68.129)、B(192.168.68.143)两个数据库,当 A 中的表 T_TEST 数据发生改变时,B 数据库中的 表 T_TEST 自动更新,实现数据主动推送或者主动拉取

1 dblink + 触发器

1.1 源库 A 创建dblink

在 源数据库 A 中创建 dblink,指向 目标库 B

CREATE database link DBLINK_TEST CONNECT TO SCOTT IDENTIFIED BY "123456" using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.68.143)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SID = ORCL) ) )';

查询是否创建成功

SELECT * FROM T_TEST @DBLINK_TEST;

1.2 源库 A 创建触发器

在 源数据库 A 中创建触发器,更新 目标库 B

CREATE OR REPLACE TRIGGER TRIGGER_SYN_TEST
AFTER INSERT OR UPDATE OR DELETE ON T_TEST FOR each ROW
BEGINIF INSERTING THENINSERT INTO T_TEST @DBLINK_TESTVALUES( : new.ID,: new.ROLE_NAME,: new.NOTE );ELSIF UPDATING THENUPDATE T_TEST @DBLINK_TEST SET ROLE_NAME = : new.ROLE_NAME,NOTE = : new.NOTEWHEREID = : new.ID;ELSIF DELETING THENDELETE FROMT_TEST @DBLINK_TEST WHEREID = : old.ID;END IF;
END;

测试是否生效

INSERT INTO T_TEST VALUES(2, '测试角色','测试角色');UPDATE T_TEST SET ROLE_NAME = '测试角色更新' WHERE ID = 2;DELETE FROM T_TEST WHERE ID = 2;

2 dblink + 物化视图

2.1 源库 A 创建物化视图日志表

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

CREATE MATERIALIZED VIEW LOG ON "T_TEST" WITH ROWID;

2.2 目标库 B 创建dblink

在 目标库 B 中创建指向 源库 A 的dblink

CREATE PUBLIC database link DBLINK_TEST CONNECT TO SCOTT IDENTIFIED BY "123456" using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.68.129)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SID = ORCL) ) )';

2.3 目标库 B 创建物化视图

# 创建,不会自动刷新
CREATE MATERIALIZED VIEW MV_TEST refresh fast ON demand WITH ROWID AS
SELECT * FROM T_TEST @DBLINK_TEST;# 每分钟刷新一次
CREATE MATERIALIZED VIEW MV_TEST refresh fast ON demand WITH ROWID NEXT to_date( to_char( SYSDATE + 1/1440, 'dd-mm-yyyy hh24:mi:ss' ), 'dd-mm-yyyy hh24:mi:ss' ) AS
SELECT * FROM T_TEST @DBLINK_TEST;# 删除
DROP MATERIALIZED VIEW mv_name

一天为24个小时 1440分钟 86400秒
故:
一个小时后时间为 sysdate+1/24

select sysdate + 1/24 from dual

一分钟后时间为 sysdate+1/1440

select sysdate + 1/1440 from dual

一秒钟后时间为 sysdate+1/86400

select sysdate + 1/86400 from dual

2.4 手动同步数据

call dbms_mview.refresh ( 'MV_TEST' );

Oracle使用dblink同步数据相关推荐

  1. ORACLE通过dblink同步SDO_ORDINATE_ARRAY_STR的数据

    请教一下,有哪位大神知道如何通过dblink同步SDO_ORDINATE_ARRAY_STR类型的数据,我再两个库之间建立了dblink,常见数据类型查询是没有问题的,但查询SDO_ORDINATE_ ...

  2. Oracle通过kafka同步数据到MySQL

    场景 Oracle同步数据最佳的解决方案是自家的ogg,但是考虑到成本,需要找到其他的解决方案.如果是MySQL通过kafka同步,问题简单的多,因为阿里巴巴的开源数据同步方案--canel是最佳的解 ...

  3. dblink 同步数据_使用DBLINK同步TC数据库

    TC系统通常会有三种环境,PRD环境.QA环境和DEV环境.这三种环境的数据往往是不同步的,甚至存在QA和DEV数据与PRD是完全不一致的情况.导致在QA环境进行测试还需要重新搭建数据模拟用户真实场景 ...

  4. oracle两表同步java代码,利用DBLink+JOB实现两个Oracle数据库之间的数据同步

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 第三步:建立JOB任务,定时同步数据在PL/SQL的command window输入以下语句: begin sys.dbms_job.submit(job ...

  5. 两个oracle数据库外网同步,利用DBLink+JOB实现两个Oracle数据库之间的数据同步

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 第三步:建立JOB任务,定时同步数据在PL/SQL的command window输入以下语句: begin sys.dbms_job.submit(job ...

  6. 利用oracle快照dblink解决数据库表同步问题

    单向,双向同步都可使用. --名词说明:源--被同步的数据库             目的--要同步到的数据库 前6步必须执行,第6以后是一些辅助信息. --1.在目的数据库上,创建dblink dr ...

  7. 如何实现Oracle数据库之间的数据同步?

    我们都知道,在Oracle数据库的管理与开发工作中,总会存在着一些表数据和基础资料数据,这时需要有效的将这些数据库进行同步合并,有没有什么简单的方法可以实现Oracle数据库之间的数据同步呢?在此诚恺 ...

  8. oracle rollup分组没有数据时为0_数据库周刊19│GBASE适配鲲鹏;MySQL窗口函数;OGG双向数据同步……...

    摘要:墨天轮数据库周刊第19期发布啦,每周1次推送本周数据库相关热门资讯.精选文章.干货文档.本周分享GBASE适配鲲鹏: 疫情激活COBOL语言:TiDB数据库的未来:Oracle与double w ...

  9. 这样做,免费从Oracle同步数据

    点击▲关注 "数据和云"   给公众号标星置顶 更多精彩 第一时间直达 刘伟 刘伟,云和恩墨软件开发部研究院研究员:前微博DBA,主要研究方向为开源数据库,分布式数据库,擅长自动化 ...

最新文章

  1. 使用wireshark观察SSL/TLS握手过程--双向认证/单向认证
  2. oracle每小时分组查询,Oracle 天内按小时分组查询有关问题
  3. python平均成绩计算异常处理_7-10 jmu-python-异常-学生成绩处理基本版 (15 分)
  4. Linux常用服务部署与优化之NFS篇
  5. php流程控制语句,php学习之道:php 流程控制语句
  6. c mysql安装教程,Mysql安装教程_完成版(吐血式安装)
  7. 【Head First Java 读书笔记】(一)基本概念
  8. php 复制一张图片,PHP 生成一张图片的两种方法
  9. 计蒜客 25985.Goldbach-米勒拉宾素数判定(大素数) (2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 B)...
  10. c++游戏编程100事列_游戏编程入门(c++小游戏编程100例)
  11. 数据中心机房建设标准规范
  12. java Object数组转为int类型数组
  13. 计算机主机域名是,主机域名究竟是什么
  14. 华为手机各代系拆机图
  15. 随时随地开展绘图工作,还得靠CAD在线!
  16. 解析xml的几种方法,他们的原理,比较 以及JAVA源码
  17. 小猫咪关闭远程解析功能
  18. 为你节省时间和挫败感
  19. hp服务器如何找回阵列信息,HP服务器数据恢复 RAID5结构实例手工分析
  20. 小啊呜产品读书笔记001:《邱岳的产品手记-10》第19讲 产品经理如何与开发打交道(上):打破思维的边界 第20讲 产品经理如何与开发打交道(下):合作与共赢

热门文章

  1. PAT乙级1025题解
  2. 亚马逊婴儿围栏CPC认证标准要求
  3. 领卓教育:QT图片转换器
  4. 新唐单片机如何生成精确延迟
  5. TAGE-SC-L预测器 “TAGE-SC-L Branch Predictors”(2016)
  6. 中国交税最多的七大企业你知道都是谁吗?
  7. 运行LLVM Pass的两种方式
  8. python——用Turtle画画写名字
  9. 云系统服务器收费,云服务器收费标准
  10. 百度SEO蓝色eBook电子书企业网站模板