寫在前面:
創(chuàng)新互聯專注于涿鹿企業(yè)網站建設,響應式網站設計,商城網站建設。涿鹿網站建設公司,為涿鹿等地區(qū)提供建站服務。全流程按需設計,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯專業(yè)和態(tài)度為您提供的服務
我們都知道Master寫滿了一個binlog,或者在Master手動執(zhí)行了flush logs,SLave不需要做任何操作就可以繼續(xù)從Master接受數據進行同步,不知道小伙伴們有沒有考慮過,這是為什么?
原因就是:
其實執(zhí)行stop slave,就是分別關閉了I/O線程(stop slave IO_THREAD)和SQL線程(stop slave SQL_THREAD),I/O線程會維護master.info信息的更新,SQL線程會維護relay-log.info信息的更新,在執(zhí)行start slave時候,會依照master.info和relay-log.info信息,繼續(xù)執(zhí)行I/O線程和SQL線程,所以復制就可以進行下去了
下面演示一下:
在Master主機上執(zhí)行:
MySQL> show master status\G;
*************************** 1. row ***************************
???????????? File: mysql-bin.000008
???????? Position: 120
在Slave主機上執(zhí)行
cat /home/data/mysql3306/master.info
mysql-bin.000008
120
192.168.32.3
現在手動在Master滾動一次binlog日志
mysql> flush logs;
mysql> show master status\G;
*************************** 1. row ***************************
???????????? File: mysql-bin.000009
???????? Position: 120
在Slave主機上執(zhí)行
cat /home/data/mysql3306/master.info
23
mysql-bin.000009
120
192.168.32.3
可以看到,Slave主機正是根據master.info文件,來對Master的數據進行復制的