1、當(dāng) master 主服務(wù)器上的數(shù)據(jù)發(fā)生改變時(shí),則將其改變寫(xiě)入二進(jìn)制日志文件中;
2、salve 從服務(wù)器會(huì)在一定時(shí)間間隔內(nèi)對(duì) master 主服務(wù)器上的二進(jìn)制日志進(jìn)行探測(cè),探測(cè)其是否發(fā)生過(guò)改變;
3、如果探測(cè)到 master 主服務(wù)器的二進(jìn)制日志發(fā)生了改變,則開(kāi)始一個(gè) I/O Thread 請(qǐng)求 master 二進(jìn)制日志;
4、同時(shí) master 主服務(wù)器為每個(gè) I/O Thread 啟動(dòng)一個(gè)dump Thread,用于向其發(fā)送二進(jìn)制日志;
5、slave 從服務(wù)器將接收到的二進(jìn)制日志保存至自己本地的中繼日志文件中;
6、salve 從服務(wù)器將啟動(dòng) SQL Thread 從中繼日志中讀取二進(jìn)制日志,在本地重放,使得其數(shù)據(jù)和主服務(wù)器保持一致;
7、最后 I/O Thread 和 SQL Thread 將進(jìn)入睡眠狀態(tài),等待下一次被喚醒;
MySQL主從復(fù)制原理圖: