免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2287 | 回复: 6
打印 上一主题 下一主题

mysql如何备份最安全? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-16 16:15 |只看该作者 |倒序浏览
20可用积分
我以前一直认为用mysqldump备份是最好的,可现在发现并不是如此。
如果有个字段a 是varchar(11)如果插入6个字的数据,就会变成“所以我说,?”,有个字被切断了。
而这个时候你如果用mysqldump备份的文件还原的时候,就出错了,这等于备份文件没用了。
我现在感觉还是直接拷贝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
2 [报告]
发表于 2009-08-16 18:08 |只看该作者
热备的复制需要使用工具,对于innodb的物理热备没有开源工具。所以成本比较高。
mysqldump是逻辑热备的不二选择。
当然你必须经常验证备份文件的可用性,以保证遇到data issues的时候能够正常恢复。

此外你举得例子我不是很理解。
你的意思是数据库中有“所以我说,?”这条数据,然后做了dump?
还是dump中有“所以我说,?”这条数据,然后restore的时候出错了?

论坛徽章:
0
3 [报告]
发表于 2009-08-17 05:40 |只看该作者
如果数据库中有“所以我说,?”这样不完整的数据,dump后会有这样一条语句:
insert into aaa (a) values ('所以我说,?);
就是后面少了个'
这样恢复的时候就会因为''不闭合而出错阿

论坛徽章:
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
4 [报告]
发表于 2009-08-17 09:07 |只看该作者
我觉得这个错误在于你的数据源的完整性,而不属于mysqldump的bug。
你可以做一些限制,保证输入的完整性,例如用strict mode 当有字符串的截断时就禁止插入。

论坛徽章:
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
5 [报告]
发表于 2009-08-17 09:08 |只看该作者
此外你的mysql版本应该比较老了把?我记得5.0开始varchar(11)指的就是11个字符了,不是11字节了

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
6 [报告]
发表于 2009-08-17 09:15 |只看该作者
一般来说冷备比热备保险

论坛徽章:
0
7 [报告]
发表于 2009-08-17 09:24 |只看该作者
原帖由 cenalulu 于 2009-8-17 09:08 发表
此外你的mysql版本应该比较老了把?我记得5.0开始varchar(11)指的就是11个字符了,不是11字节了


我是5.0的,我发现utf8编码时是你说的情况。可latin1时候,还是要截断的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP