当前位置: 首页 > news >正文

分布式mysql同步oracle_一种分布式数据库同步方案 .

对于大型企业,业务分布在世界各地,为了改善当地业务服务能力,不得不在当地部署数据库以提高性能,而各个区域之间的数据交互或者同步,成为不可不面对的问题。其间要解决的技术问题主要有:

1、同步数据的提取。从数据库里提取出需要同步的数据,这包括增、删、改三类动作对数据造成的改变。在数据表安装触发器是提取同步数据的简单有效的手段,而且触发器对应用层而言是透明的,应用程序感觉不到触发器的存在。

2、同步数据的可靠传输。数据传输可以用队列来实现,例如有MSMQ、IBM MQ Series等。

3、数据冲突与操作冲突的规避、发现和解决。数据冲突是指两个节点合并数据时,出现约束冲突的情况;而操作冲突是指两个节点同时发生对同一条记录发生操作,导致在双向同步时难以决定两个操作执行的先后顺序。

%E5%88%86%E5%B8%83%E5%BC%8F%E5%8E%9F%E7%90%86%E5%9B%BE.JPG

触发器安装在各个要同步的数据表上,记录对表的增删改操作。所有操作共同记录在一张操作日志表上,以便保证操作发生的顺序。数据发送服务提取操作日志表上的数据,通过消息队列传输到远程服务器,远程服务器接收队列数据后,写入到远程数据表里,从而完成数据同步。

在方案中,本地和远程节点在结构上是对等的,是发送方同时也是接收方,由以下几个部分组成:

1、 数据库服务器:Oracle / SQL Server / DB2 等

2、 操作日志:记录数据表的增删改操作

3、 消息队列:消息队列服务,负责通讯,例如发送和接收消息

4、 抽取发送服务:从操作日志表提取数据,写入消息队列

5、 接收写入服务:从消息队列读取数据,写入到数据库

6、 配置管理服务:配置同步任务、管理监控系统执行情况

7、 配置管理工具:管理配置工具的客户端

8、 适配器:消息队列适配器,减少队列依赖

9、 异常信息库:存放一些无法处理的冲突和意外错误,供管理员处理

相关文章:

  • c# 调用mysql存储过程 返回值_C#调用数据库存储过程
  • python给js变量赋值_JavaScript OR(||)变量赋值说明
  • xlc编译mysql_aix|安装Xlc编译器12版本
  • java print 包_java打jar包的几种方式详解
  • java extjs 项目_Java Web项目(Extjs)报错八
  • java技术路线_Java技术路线
  • java 内存模型书籍_那些年读过的书《Java并发编程实战》十、再探究Java内存模型...
  • linux mysql 表名大小写_Linux系统下MySql表名大小写敏感问题
  • java 分支结构_Java分支结构
  • java里的文件显示繁体_关于在JSP页面上同时显示简体和繁体的问题(字符编码)...
  • java main.init_记录:java程序没有main函数只有init函数怎么运行,或者applet小程序怎么运行...
  • java配置一个json文件_Java 使用json 做配置文件
  • java 同时使用多个流_如何在带有lambda表达式的java 8中使用多个流...
  • 用java在JPanel中建一个表格_java常用面板(JPanel、JScrollPane)
  • map在Java集合_Java 集合 -- Map
  • ES6指北【2】—— 箭头函数
  • Google 是如何开发 Web 框架的
  • 03Go 类型总结
  • 2017年终总结、随想
  • java概述
  • leetcode-27. Remove Element
  • linux安装openssl、swoole等扩展的具体步骤
  • Markdown 语法简单说明
  • NSTimer学习笔记
  • php面试题 汇集2
  • Spark学习笔记之相关记录
  • 创建一种深思熟虑的文化
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 详解移动APP与web APP的区别
  • 项目实战-Api的解决方案
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • Android开发者必备:推荐一款助力开发的开源APP
  • raise 与 raise ... from 的区别
  • ​ssh免密码登录设置及问题总结
  • ​批处理文件中的errorlevel用法
  • # Maven错误Error executing Maven
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #QT(TCP网络编程-服务端)
  • (1) caustics\
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (附源码)ssm高校实验室 毕业设计 800008
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (转)jQuery 基础
  • .bashrc在哪里,alias妙用
  • .htaccess配置重写url引擎
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET Micro Framework 4.2 beta 源码探析
  • .Net Redis的秒杀Dome和异步执行
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .Net组件程序设计之线程、并发管理(一)
  • /var/spool/postfix/maildrop 下有大量文件
  • [04]Web前端进阶—JS伪数组
  • [2019/05/17]解决springboot测试List接口时JSON传参异常