iteye_3299 2009-06-08 10:20
浏览 1114
已采纳

寻求:MySQL中dblink的替代方案

我们知道,在 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 :)

  • 写回答

7条回答 默认 最新

  • kimmking 博客专家认证 2009-06-09 10:10
    关注

    这个方法可行。
    缺点:
    1、数据量大的话,M1->M2的压力大。
    2、数据量小的话,M2是鸡肋。


    另外可以看看:MySQL同步复制
    http://www.iteye.com/wiki/topic/335061

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 有卷积神经网络识别害虫的项目吗
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件