我们知道,在 oracle中,可以建立 dblink 以解决 不同 数据库(异域)之间的数据交互问题,在MySQL中有类似的功能吗?
希望达到的目的:在 MySQL 的存储过程中,连接远程数据库,并能做到对远程数据库的 增删改查 操作?
已想到的替代方案:建立辅助数据库,并做 repication,但似乎这样把问题复杂了,有没有更好的办法?请示之。
[b]问题补充:[/b]
补充:
因为需要在已有数据库上 抽取 部分数据,放到另一台机器上做备份,想采用存储过程完成,但操纵远程数据库就成了阻碍。
不考虑效率,用java做一次处理是可以,但如果定时抽取、备份就显得困难多了,那简单的问:备份 已知数据库 的 部分数据 到 另一台 机器上,如何实现?
:)
[b]问题补充:[/b]
kimmking说的导出再导入的方案也想过,因为数据量到时比较大,
导出后导入时,之前导入的数据怎么办?要覆盖就划不来了。
备份希望能能是 增量备份,而据我所知,MySQL可以从日志中做增量备份,但又没办法在日志级别做数据过滤呢?或者 再深思一下,谢谢两位关注!
[b]问题补充:[/b]
LucasLee说用quartz做job scheduling,这个感觉可行,但又两点需要再思考一下,
1. 能不能做到增量备份(因为数据库中的表结构并不是每个表都有时间戳,所以从表中确定每天备份的范围是不大可能的,难不成要覆盖之前备份好的数据?)
2. 数据量大的情况下,使用java去处理的效率还能接受吗?(虽然是备份,但效率也是注重的,有无相关经验,请示之)
谢谢二位关注,考虑一下我自己的替代方案:
在主数据库(M1)上另建 一个 表结构完全一样的 辅助数据库(M2),远程数据库为 M3,用 存储过程 把数据 定时写到 M2 中,然后 M2 和 M3 做数据同步,尽可畅所欲言 :D
[b]问题补充:[/b]
LucasLee问为什么写程序?是因为要抽取原始数据库的部分数据做备份,如果全部备份的话 直接选择复制 就没什么问题了。
kimmking分析的对,所以也正在想办法,这个方法难点在于 增量抽取备份 不知如何实现,我提出对每张表写 trigger,每次增、删、改时,同步操作 M2,但这样会影响 M1 的更新效率。
[b]问题补充:[/b]
感谢kimmking和LucasLee的关注,这里做总结,最后我们定的方案是这样的,远程数据库和主数据库做 repication,然后定时 删除数据(逆向,不抽取数据,而是在已有数据的基础上删除数据不要的),这样 我的问题就避免了。3Q :)
寻求:MySQL中dblink的替代方案
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
7条回答 默认 最新
关注 这个方法可行。
缺点:
1、数据量大的话,M1->M2的压力大。
2、数据量小的话,M2是鸡肋。另外可以看看:MySQL同步复制
http://www.iteye.com/wiki/topic/335061本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 MATLAB代码补全插值
- ¥15 Typegoose 中如何使用 arrayFilters 筛选并更新深度嵌套的子文档数组信息
- ¥15 前后端分离的学习疑问?
- ¥15 stata实证代码答疑
- ¥50 husky+jaco2实现在gazebo与rviz中联合仿真
- ¥15 dpabi预处理报错:Error using y_ExtractROISignal (line 251)
- ¥15 在虚拟机中配置flume,无法将slave1节点的文件采集到master节点中
- ¥15 husky+kinova jaco2 仿真
- ¥15 zigbee终端设备入网失败
- ¥15 金融监管系统怎么对7+4机构进行监管的