mysqldump中master-data和dump-slave的区别

Posted 长城之上是千亿的星空,星空之上是不灭的守望。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysqldump中master-data和dump-slave的区别相关的知识,希望对你有一定的参考价值。

 

[[email protected] ~]$ mysqldump -A --master-data=2 > master2.sql
[[email protected] ~]$ mysqldump -A --dump-slave=2 > slave2.sql
[[email protected] ~]$ mysqldump -A --master-data=1 > master1.sql
[[email protected] ~]$ mysqldump -A --dump-slave=1 > slave1.sql
 
[[email protected] ~]$ diff master2.sql master1.sql
22c22
< -- CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin2.000001‘, MASTER_LOG_POS=259;
---
> CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin2.000001‘, MASTER_LOG_POS=335;
845c845
< -- Dump completed on 2012-03-13 18:09:46
---
> -- Dump completed on 2012-03-13 18:10:17
 
[[email protected] ~]$ diff slave2.sql slave1.sql
22c22
< -- CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.000007‘, MASTER_LOG_POS=107;
---
> CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.000007‘, MASTER_LOG_POS=107;
845c845
< -- Dump completed on 2012-03-13 18:09:59
---
> -- Dump completed on 2012-03-13 18:10:24
 
由上可知:
A. =1和=2的区别很明显,只是自动执行和手工执行的区别
B. --master-data用于在master端dump数据,用于建立slave
--dump-slave用户在slave端dump数据,建立新的slave,至少是第2个slave,也就是已经有A-->B,现在从B上导出数据建立A-->C的复制
这个不但可以用于建立slave,还可用于备份中,用于读binlog进行roll forward的起点
 
注意:
1.已有A->B 架构,想搭建 A->B & A->C,如何使用mysqldump方式备份?
在B库使用dump-slave参数。
 
2.已有A->B 架构,想搭建 A->B->C,如何使用mysqldump方式备份?
在B库使用master-data参数。
 
3.--master-data, It turns on --lock-all-tables, unless single-transaction also is specified

以上是关于mysqldump中master-data和dump-slave的区别的主要内容,如果未能解决你的问题,请参考以下文章

mysql slave创建:mysqldump参数--master-data

[转]深入理解mysqldump原理 --single-transaction --lock-all-tables --master-data

mysqldump搭建主从的注意事项

深入理解mysqldump参数 --single-transaction --lock-all-tables

使用mysqldump的一点总结

mysqldump导入导出参数