关于 ORACLE 数据库 数据同步(实时同步和异步同步)
目录虚拟机上有AIX、unix、windows等系统,上面都有oracle数据库及应用现在需要将这些不同平台上的数据库数据实时同步(异步同步)到同一个平台上现在想知道ht...
目录虚拟机上有 AIX、unix、windows 等系统,上面都有 oracle数据库及应用
现在需要将这些不同平台上的数据库数据 实时同步(异步同步)到 同一个平台上
现在想知道 http://www.actifio.com 的 actifio 软件,是否可以实现上述要求
哪位大侠可以提供一下,相应软件的相关资料,谢谢了,急!!! 展开
现在需要将这些不同平台上的数据库数据 实时同步(异步同步)到 同一个平台上
现在想知道 http://www.actifio.com 的 actifio 软件,是否可以实现上述要求
哪位大侠可以提供一下,相应软件的相关资料,谢谢了,急!!! 展开
1个回答
展开全部
做个数据库链接,A表插入数据以后就往B表插入,用触发器实现
在任何实时数据同步和复制中,需要考虑如下几个关键问题:
事务一致性:在复制目标端需要按照源端相同的事务环境进行提交,确保目标上数据一致性。
检查点机制:在抽取和负责时都需要记录检查点位置,确保网络故障或GG本身故障下仍然能够完整复制。
可靠数据传输:需要保证数据传输的完整性,请求和应答,同时提供数据加密和传输过程中的压缩。
对于数据实时同步和复制工具,其核心是需要基于日志来实现,这一方面是可以实现准实时的数据同步,一方面是基于日志实现不会要求数据库本身在设计和实现中带来任何额外的约束。我们也看到有些基于数据库表设计增加触发器或存储过程来实现的数据库复制,这些本身都是损耗了性能和增加了复杂度。
对于数据库的实时同步和复制,阿里巴巴专门有一个开源项目,即otter来实现分布式数据库的同步复制,其核心思想仍然是通过获取数据库的增量数据日志,来进行准实时的同步复制。因此otter本身又依赖于另外一个开源项目即canal,该项目重点则是获取增量数据库同步日志信息。
当前otter的重点是实现mysql间的数据库同步复制,其实这个在前面我一些文档里面谈到基于mysql数据库的dual-master架构的时候已经谈到过,基本即利用的类似技术来实现两个mysql数据库间的双向同步数据库复制。要注意这个双向本身指既可以A->B,也可以从B->A,在某个时间节点本身是单向的。
对于otter的功能和支持的数据库比GoldenGate要少得多,除了支持mysql数据库间的实时数据同步和复制外,还支持mysql->oracle的单向数据同步和复制。但是不支持oracle->mysql的数据同步和复制。但是otter本身提供了一个很好的开源框架,我们可以基于该框架扩展对其它数据库的支持。
在扩展的时候有一个重点,即数据库本身是否提供了增量数据日志,对于mysql数据库容易实现其主要原因还是mysql数据库提供了相当方便的binlog日志功能,这些log日志本身就很方面的转换为朝目标端执行的sql语句。而对于常见的数据库,在网上搜索下,可以看到一些做法。
对于oracle,重点是监控oracle的redo log,即在线重做日志和归档日志。对于一些商用产品可以直接监控到redo log,仅仅依赖于该文件而不耗费其它资源。而如果我们来实现,则常用的方法还是基于oracle logminer来对redo log进行解析。虽然性能上稍微有差异,但是基本可以达到准实时的数据库解析和同步
在任何实时数据同步和复制中,需要考虑如下几个关键问题:
事务一致性:在复制目标端需要按照源端相同的事务环境进行提交,确保目标上数据一致性。
检查点机制:在抽取和负责时都需要记录检查点位置,确保网络故障或GG本身故障下仍然能够完整复制。
可靠数据传输:需要保证数据传输的完整性,请求和应答,同时提供数据加密和传输过程中的压缩。
对于数据实时同步和复制工具,其核心是需要基于日志来实现,这一方面是可以实现准实时的数据同步,一方面是基于日志实现不会要求数据库本身在设计和实现中带来任何额外的约束。我们也看到有些基于数据库表设计增加触发器或存储过程来实现的数据库复制,这些本身都是损耗了性能和增加了复杂度。
对于数据库的实时同步和复制,阿里巴巴专门有一个开源项目,即otter来实现分布式数据库的同步复制,其核心思想仍然是通过获取数据库的增量数据日志,来进行准实时的同步复制。因此otter本身又依赖于另外一个开源项目即canal,该项目重点则是获取增量数据库同步日志信息。
当前otter的重点是实现mysql间的数据库同步复制,其实这个在前面我一些文档里面谈到基于mysql数据库的dual-master架构的时候已经谈到过,基本即利用的类似技术来实现两个mysql数据库间的双向同步数据库复制。要注意这个双向本身指既可以A->B,也可以从B->A,在某个时间节点本身是单向的。
对于otter的功能和支持的数据库比GoldenGate要少得多,除了支持mysql数据库间的实时数据同步和复制外,还支持mysql->oracle的单向数据同步和复制。但是不支持oracle->mysql的数据同步和复制。但是otter本身提供了一个很好的开源框架,我们可以基于该框架扩展对其它数据库的支持。
在扩展的时候有一个重点,即数据库本身是否提供了增量数据日志,对于mysql数据库容易实现其主要原因还是mysql数据库提供了相当方便的binlog日志功能,这些log日志本身就很方面的转换为朝目标端执行的sql语句。而对于常见的数据库,在网上搜索下,可以看到一些做法。
对于oracle,重点是监控oracle的redo log,即在线重做日志和归档日志。对于一些商用产品可以直接监控到redo log,仅仅依赖于该文件而不耗费其它资源。而如果我们来实现,则常用的方法还是基于oracle logminer来对redo log进行解析。虽然性能上稍微有差异,但是基本可以达到准实时的数据库解析和同步
追问
谢谢您的回复,不过我目前就是想知道 我提供网站的软件,能否实现我的要求,如果可以实现,是否有相关的实现文档可否发我看一下,谢谢!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |