免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3252 | 回复: 14

【讨论中】请教mysql备份的策略 [复制链接]

论坛徽章:
0
发表于 2012-06-26 19:35 |显示全部楼层
本帖最后由 cenalulu 于 2012-06-27 09:21 编辑

问题是这样的:

我现在做的一个软件中需要这样的mysql数据库备份方式:在软件中有一个按钮,点击后备份数据库,环境是windows,数据库装在远程机子上。
我的想法是:1,写一个批处理用,在批处理中调用mysqldump来连接远程数据库,当点击备份按钮式执行这个批处理。如果这样可以的话,如何设置mysqldump的超时时间?
                 2,利用mysql提供的C API来自己写备份函数,点击备份按钮式执行自己写的函数,如果这样可以的话,能不能提供以下用该用mysql的什么函数?

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
发表于 2012-06-27 09:22 |显示全部楼层
远端数据库的备份一般采用主动推送的方式。 service端(也就是你的软件)只提供配置信息。
每台数据库服务器定时读取配置信息来决定自己是不是要备份。
远端直接备份的话,网络和稳定性都是一个问题。

论坛徽章:
0
发表于 2012-06-27 09:45 |显示全部楼层
嗯,楼上说的对,可是用户现在要求这样备份,头疼死了
在sqlServer中有直接备份的命令,在mysql中该怎么实现啊

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
发表于 2012-06-27 10:31 |显示全部楼层
mysqldump的实质是select * into outfile 。
远程备份实质就是开启一个 select * 的stream ,然后把这个stream落地到server文件中。
各个stream之间的一致性可以通过lock,或者single transaction来保证

论坛徽章:
0
发表于 2012-06-27 10:41 |显示全部楼层
回复 3# q631951221


    按照楼上说的,如果远端的数据库在Linux上,直接写脚本就行了,让他们轮训读配置,点按钮改状态就OK了。

论坛徽章:
0
发表于 2012-06-27 11:15 |显示全部楼层
回复 4# cenalulu


    按照这样的思路,可以在点击备份按钮时向数据库发送 select * into outfile 命令 来得到记录集,然后保存到本地的文本文件中即可。这样是可行的对吧!

论坛徽章:
0
发表于 2012-06-27 11:16 |显示全部楼层
回复 5# horizonhyg


    远端也是在windows上,向服务器发送 selece * into outfile 应该是可以的吧?

论坛徽章:
0
发表于 2012-06-27 11:43 |显示全部楼层
回复 7# q631951221


    备份单表的话是可以,但是就怕网络断了,不稳定啥的,容易失败,可以弄个进度条,网络不好时间肯定是有点长,因为是备份到本地。

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
发表于 2012-06-27 11:45 |显示全部楼层
回复 6# q631951221


    在server端执行select * (不用outfile) 然后把结果写道文件里

论坛徽章:
0
发表于 2012-06-27 12:25 |显示全部楼层
你得问清楚客户允许不允许业务中断,至少因为写入被阻塞引起的中断允许不允许,mysql热备份都是需要锁表的吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP