Chinaunix

标题: 【已解决】mysqldump 的这2个参数 --single-transaction --master-data [打印本页]

作者: g361031315    时间: 2013-03-04 18:42
标题: 【已解决】mysqldump 的这2个参数 --single-transaction --master-data
本帖最后由 cenalulu 于 2013-03-06 18:33 编辑

mysqldump 的这2个参数 --single-transaction --master-data,看到许多人说 他俩配合使用比较好。为什么啊?
作者: bikong0411    时间: 2013-03-05 08:46
这个参数在建立slave数据库的时候会用到,当这个参数的值为1的时候,mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,file和position记录的位置就是slave从master端复制文件的起始位置。默认情况下这个值是1
作者: cenalulu    时间: 2013-03-05 09:33
这两个参数没有必然联系。
当然你如果想从一个有innodb的表的数据库做备份,并还原成slave的时候这两个参数就需要连用了。
而这也是备份最常使用到的场景
作者: todayhero    时间: 2013-03-05 09:50
@g361031315

--single-transaction
InnoDB 表在备份时,通常启用选项 --single-transaction 来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:REPEATABLE READ,以确保本次会话(dump)时,不会看到其他会话已经提交了的数据。


作者: g361031315    时间: 2013-03-05 10:29
也就是说,单台数据库是不用加--master-data的。哦 明白了。
他的作用是,在主上备份innodb的时候加这2个参数,然后去从上还原的时候才能体现出用处,对吧?
回复 3# cenalulu


   
作者: g361031315    时间: 2013-03-05 10:30
回复 4# todayhero
嗯,谢谢啦。

   
作者: zhangshengdong    时间: 2013-03-05 13:58
多好的两个参数。slave+innodb必备
作者: ruochen    时间: 2013-03-05 22:00
g361031315 发表于 2013-03-05 10:29
也就是说,单台数据库是不用加--master-data的。哦 明白了。
他的作用是,在主上备份innodb的时候加这2个参 ...


单台数据你也可能需要用master-data
当时用全备+binlog做基于时间点的恢复的时候,这个参数记录的数据给你提供了binlog恢复的起点
作者: g361031315    时间: 2013-03-06 18:29
回复 8# ruochen

哦哦,明白了。 我以前全备一直加--flush-logs,效果一样
   
作者: ruochen    时间: 2013-03-08 16:45
g361031315 发表于 2013-03-06 18:29
回复 8# ruochen

哦哦,明白了。 我以前全备一直加--flush-logs,效果一样


--flush-logs有个副作用,会刷错误日志
作者: g361031315    时间: 2013-03-09 14:09
回复 10# ruochen
什么意思? 会刷错误日志。

   
作者: ruochen    时间: 2013-03-11 11:10

建议搜索下flush logs和error log的相关信息
作者: g361031315    时间: 2013-03-12 13:47
回复 12# ruochen

额,网上说,刷的话 会刷新错误日志。。
我试了试。。 错误日志不刷。。奇怪。。
   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2