国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

MySQL主從架構(gòu)的復制模式

2017-11-08 10:39
網(wǎng)絡安全和信息化 2017年12期
關(guān)鍵詞:二進制中繼線程

復制工作方式

MySQL支持兩種復制方式:基于行的復制和基于語句的復制。這兩種方式的工作步驟:

1.在主庫上把數(shù)據(jù)更改記錄到二進制日志(Binary Log)中。

2.從庫將主庫上的日志復制到自己的中繼日志(Relay Log)中。

3.從庫讀取中繼日志中的事件,將其重放到從庫數(shù)據(jù)之上。

第一步,在主庫上記錄二進制日志。在每次準備提交事務完成數(shù)據(jù)更新前,主庫將數(shù)據(jù)更新的事件記錄到二進制日志中。MySQL會按事務提交的順序而非每條語句的執(zhí)行順序來記錄二進制日志。在記錄二進制日志后,主庫會告訴存儲引擎可以提交事務了。

第二步,從庫將主庫的二進制日志復制到其本地的中繼日志中。首先,從庫會啟動一個工作線程,成為I/O線程,I/O線程跟主庫建立一個普通的客戶端連接。

然后在主庫上啟動一個特殊的二進制轉(zhuǎn)儲(binlog dump)線程(該線程沒有對應的SQL命令),這個二進制轉(zhuǎn)儲線程會讀取主庫上二進制日志中的事件。

它不會對事件進行輪詢。如果該線程追趕上了主庫,它將進入睡眠狀態(tài),直到主庫發(fā)送信號通知其有新的事件產(chǎn)生時才會被喚醒,從庫I/O線程會將接收到的事件記錄到中繼日志中。

從庫的SQL線程執(zhí)行最后一步,該線程從中繼日志中讀取事件并在從庫執(zhí)行,從而實現(xiàn)從庫數(shù)據(jù)的更新。當SQL線程追趕上I/O線程時,中繼日志通常已經(jīng)在系統(tǒng)緩存中,所以中繼日志的開銷很低。SQL線程執(zhí)行的事件也可以通過配置選項來決定是否寫入其自己的二進制日志中。

配置復制

1.創(chuàng)建復制賬號

MySQL會賦予特殊權(quán)限給復制進程。在從庫運行I/O線程會建立一個到主庫的TCP/IP連接,這意味著必須在主庫創(chuàng)建一個用戶,并賦予其合適的權(quán)限。從庫I/O線程以該用戶名連接到主庫并讀取其二進制日志。

通過如下語句創(chuàng)建用戶賬號:

mysql>GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.*

->TO repl@'192.168.0.%' IDENTIFIED BY'123456',;

在主庫和從庫都創(chuàng)建該賬號。我們把這個賬號限制在本地網(wǎng)絡,因為這是一個特權(quán)賬號。

2.配置主庫和從庫

下一步需要在主庫上開啟一些設置,假設主庫是服務器server1,需要打開二進制日志并指定一個獨一無二的服務器ID(server ID),在主庫的 my.cnf文件中增加或修改如下內(nèi)容:

必須明確的指定一個唯一的服務器ID,默認服務器ID通常為1,使用默認值可能會導致和其他服務器ID沖突,因此這里我們選擇10來作為服務器ID。

如果之前沒有在MySQL的配置文件中指定logbin選項,就需要重新啟動MySQL.為了確認二進制日志文件是否已經(jīng)在主庫上創(chuàng)建,使用SHOW MASTER STATUS命令,檢查輸入是否與如下的一致,如圖1所示。

從庫上也需要在my.cnf中增加類似的配置,并且同樣需要重啟服務器。

圖1 使用SHOW MASTER STATUS命令

圖2 SHOW SLAVE STATUS命令

3.啟動復制

下一步是告訴從庫如何連接到主庫并重放其二進制日志。這一步不要通過修改my.cnf來配置,而是使用CHANGE MASTER TO語句,該語句完全替代了my.cnf中相應的設置,并且允許以后指向別的主庫時無需重啟從庫。下面是開始復制的基本命令:

MASTER_LOG_POS參數(shù)設置為0,因為要從日志的開頭讀起。運行下面的命令開始復制:

執(zhí)行該命令沒有顯示錯誤,我們可用SHOW SLAVE STATUS命令來檢查復制是否正確執(zhí)行,如圖2所示。

在這里主要是看:

Slave的I/O和SQL線程都已經(jīng)開始運行,而且Seconds_Behind_Master不再是NULL。日志的位置增加了,意味著一些事件被獲取并執(zhí)行了。如果你在主庫上進行修改,你可以在從庫上看到各種日志文件的位置的變化,同樣,你也可以看到數(shù)據(jù)庫中數(shù)據(jù)的變化。

現(xiàn)在MySQL的主從架構(gòu)的復制模式已經(jīng)配置成功了,數(shù)據(jù)庫的承載能力得到進一步提升。

猜你喜歡
二進制中繼線程
用二進制解一道高中數(shù)學聯(lián)賽數(shù)論題
基于C#線程實驗探究
基于國產(chǎn)化環(huán)境的線程池模型研究與實現(xiàn)
自適應多中繼選擇系統(tǒng)性能分析
有趣的進度
線程池調(diào)度對服務器性能影響的研究*
二進制在競賽題中的應用
基于干擾感知的雙路徑譯碼轉(zhuǎn)發(fā)中繼選擇算法
一種基于無線蜂窩網(wǎng)絡的共享中繼模型
二進制寬帶毫米波合成器設計與分析