日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 多项式_mysql主从复制原理及实现

發布時間:2025/3/15 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 多项式_mysql主从复制原理及实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.主從復制原理

利用MySQL提供的Replication,其實就是Slave從Master獲取Binary log文件,然后再本地鏡像的執行日志中記錄的操作。由于主從復制的過程是異步的,因此Slave和Master之間的數據有可能存在延遲的現象,此時只能保證數據最終的一致性。

在master與slave之間實現整個復制過程主要由三個線程來完成:

1.Slave SQL thread線程,在slave端

2.Slave I/O thread線程,在slave端

3.Binlog dump thread線程(也可稱為IO線程),在master端

注意:如果一臺主服務器配兩臺從服務器那主服務器上就會有兩個Binlog dump 線程,而每個從服務器上各自有兩個線程。

網絡上找的一張很清晰的交互圖,流程可以詳細描述為:

1、slave端的IO線程連接上master端,并請求從指定binlog日志文件的指定pos節點位置(或者從最開始的日志)開始復制之后的日志內容。

2、master端在接收到來自slave端的IO線程請求后,通知負責復制進程的IO線程,根據slave端IO線程的請求信息,讀取指定binlog日志指定pos節點位置之后的日志信息,然后返回給slave端的IO線程。該返回信息中除了binlog日志所包含的信息之外,還包括本次返回的信息在master端的binlog文件名以及在該binlog日志中的pos節點位置。

3、slave端的IO線程在接收到master端IO返回的信息后,將接收到的binlog日志內容依次寫入到slave端的relaylog文件(mysql-relay-bin.xxxxxx)的最末端,并將讀取到的master端的binlog文件名和pos節點位置記錄到master-info(該文件存slave端)文件中,以便在下一次讀取的時候能夠清楚的告訴master“我需要從哪個binlog文件的哪個pos節點位置開始,請把此節點以后的日志內容發給我”。

4、slave端的SQL線程在檢測到relaylog文件中新增內容后,會馬上解析該log文件中的內容。然后還原成在master端真實執行的那些SQL語句,并在自身按順豐依次執行這些SQL語句。這樣,實際上就是在master端和slave端執行了同樣的SQL語句,所以master端和slave端的數據完全一樣的。

二.如何實現?

這里在本地虛擬機模擬演示:

準備工作:兩個虛擬機:我這里用的是CentOS5.5,IP地址分別是192.168.1.101 和192.168.1.105;

步驟:1.修改mysql的配置文件,打開二進制日志功能。? 命令:# vi /etc/my.cnf 增加以下三行配置

log-bin=mysql-bin //將mysql二進制日志取名為mysql-bin

binlog_format=mixed //二進制日志的格式,有三種:statement/row/mixed,具體分別不多做解釋,這里使用mixed

server-id=101 //為服務器設置一個獨一無二的id便于區分,這里使用ip地址的最后一位充當server-id

然后修改從服務器的my.cnf文件,也添加以上內容,不過server-id的值為從服務器的標識。然后分別重啟主、從mysql。

2.在主服務器為從服務器分配用戶。命令:GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY '111111';

3.查看主服務器BIN日志的信息(執行完之后記錄下這兩值,然后在配置完從服務器之前不要對主服務器進行任何操作,因為每次操作數據庫時這兩值會發生改變)。命令:show master status;

4.進入從服務器,執行以下命令設置master。

MASTER_HOST : 設置要連接的主服務器的ip地址

MASTER_USER : 設置要連接的主服務器的用戶名

MASTER_PASSWORD : 設置要連接的主服務器的密碼

MASTER_LOG_FILE : 設置要連接的主服務器的bin日志的日志名稱,即第3步得到的信息

MASTER_LOG_POS : 設置要連接的主服務器的bin日志的記錄位置,即第3步得到的信息,(這里注意,最后一項不需要加引號。否則配置失敗)

然后執行start slave;命令啟動從服務器。

5.查看是否配置成功。命令:show slave status;

上面兩項為Yes說明配置成功。可以在主庫更新數據測試從庫是否會同步。

總結

以上是生活随笔為你收集整理的mysql 多项式_mysql主从复制原理及实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。