久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL主從復(fù)制的原理分析是怎樣的

共計(jì) 2415 個(gè)字符,預(yù)計(jì)需要花費(fèi) 7 分鐘才能閱讀完成。

這期內(nèi)容當(dāng)中丸趣 TV 小編將會(huì)給大家?guī)?lái)有關(guān) MySQL 主從復(fù)制的原理分析是怎樣的,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、基本原理

MySQL 復(fù)制過(guò)程分成三步:

1)、master 將改變記錄到二進(jìn)制日志(binary log)。這些記錄過(guò)程叫做二進(jìn)制日志事件,binary log events;

2)、slave 將 master 的 binary log events 拷貝到它的中繼日志(relay log);

3)、slave 重做中繼日志中的事件,將改變應(yīng)用到自己的數(shù)據(jù)庫(kù)中。MySQL 復(fù)制是異步的且串行化的。

簡(jiǎn)單來(lái)說(shuō): slave 會(huì)從 master 讀取 binlog 來(lái)進(jìn)行數(shù)據(jù)同步

MySQL 的復(fù)制(replication)是一個(gè)異步的復(fù)制。

實(shí)現(xiàn)整個(gè)復(fù)制操作主要由三個(gè)進(jìn)程完成的,其中兩個(gè)進(jìn)程在 Slave(Sql 進(jìn)程和 IO 進(jìn)程),另外一個(gè)進(jìn)程在 Master(IO 進(jìn)程)上。

要實(shí)施復(fù)制,首先必須打開(kāi) Master 端的 binary log(bin-log)功能,否則無(wú)法實(shí)現(xiàn)。

因?yàn)檎麄€(gè)復(fù)制過(guò)程實(shí)際上就是 Slave 從 Master 端獲取該日志然后再在自己身上完全順序的執(zhí)行日志中所記錄的各種操作。

復(fù)制的詳細(xì)過(guò)程:

(1)Slave 上面的 IO 進(jìn)程連接上 Master,并請(qǐng)求從指定日志文件的指定位置(或者從最開(kāi)始的日志)之后的日志內(nèi)容;

(2)Master 接收到來(lái)自 Slave 的 IO 進(jìn)程的請(qǐng)求后,通過(guò)負(fù)責(zé)復(fù)制的 IO 進(jìn)程根據(jù)請(qǐng)求信息讀取制定日志指定位置之后的日志信息,返回給 Slave 的 IO 進(jìn)程。返回信息中除了日志所包含的信息之外,還包括本次返回的信息已經(jīng)到 Master 端的 bin-log 文件的名稱(chēng)以及 bin-log 的位置;

(3)Slave 的 IO 進(jìn)程接收到信息后,將接收到的日志內(nèi)容依次添加到 Slave 端的 relay-log 文件的最末端,并將讀取到的 Master 端的 bin-log 的文件名和位置記錄到 master-info 文件中,以便在下一次讀取的時(shí)候能夠清楚的高速 Master“我需要從某個(gè) bin-log 的哪個(gè)位置開(kāi)始往后的日志內(nèi)容,請(qǐng)發(fā)給我”;

(4)Slave 的 Sql 進(jìn)程檢測(cè)到 relay-log 中新增加了內(nèi)容后,會(huì)馬上解析 relay-log 的內(nèi)容成為在 Master 端真實(shí)執(zhí)行時(shí)候的那些可執(zhí)行的內(nèi)容,并在自身執(zhí)行。

原則:

每個(gè) slave 只有一個(gè) master;

每個(gè) slave 只能有一個(gè)唯一的服務(wù)器 ID;

每個(gè) master 可以有多個(gè) salve;

二、一主一從相關(guān)配置

演示主機(jī)為 Windows (配置文件為 my.ini 文件),從機(jī)為 Linux(配置文件為 my.cnf)

1、主機(jī)配置(windows 的 my.ini)

1)、[必須]主服務(wù)器唯一 ID;

2)、[必須]啟用二進(jìn)制日志;log-bin= 自己本地的路徑 /data/mysqlbin。log-bin=D:/devSoft/MySQLServer5.5/data/mysqlbin。

3)、[可選]啟用錯(cuò)誤日志 log-err= 自己本地的路徑 /data/mysqlerr。log-err=D:/devSoft/MySQLServer5.5/data/mysqlerr。

4)、[可選]根目錄 basedir= 自己本地路徑。basedir= D:/devSoft/MySQLServer5.5/。

5)、[可選]臨時(shí)目錄 tmpdir= 自己本地路徑。tmpdir= D:/devSoft/MySQLServer5.5/。

6)、[可選]數(shù)據(jù)目錄 datadir= 自己本地路徑 /Data/。datadir= D:/devSoft/MySQLServer5.5/Data/。

7)、[可選]設(shè)置不要復(fù)制的數(shù)據(jù)庫(kù) binlog-ignore-db=mysql。

8)、[可選]設(shè)置需要復(fù)制的數(shù)據(jù)庫(kù) binlog-do-db= 需要復(fù)制的主數(shù)據(jù)庫(kù)名字。

2、從機(jī)配置 (linux 的 my.cnf)[必須] 從服務(wù)器唯一 ID;

[可選]啟用二進(jìn)制日志;

3、因修改過(guò)配置文件,請(qǐng)主機(jī) + 從機(jī)都重啟后臺(tái) mysql 服務(wù) 4、主從機(jī)都關(guān)閉 linux 防火墻

windows 手動(dòng)關(guān)閉;

關(guān)閉虛擬機(jī) linux 防火墻 service iptables stop;

5、在 Windows 主機(jī)上建立帳戶(hù)并授權(quán) slave

GRANT REPLICATION SLAVE ON *.* TO zhangsan @ 從機(jī)器數(shù)據(jù)庫(kù) IP IDENTIFIED BY 123456。

刷新一下配置 flush privileges;。

查詢(xún) master 的狀態(tài)。show master status; 記錄下 File 和 Position 的值;

執(zhí)行完此步驟后不要再操作主服務(wù)器 MYSQL,防止主服務(wù)器狀態(tài)值變化。

6、在 Linux 從機(jī)上配置需要復(fù)制的主機(jī)

配置

CHANGE MASTER TO MASTER_HOST= 主機(jī) IP ,MASTER_USER= zhangsan ,MASTER_PASSWORD= 123456 ,MASTER_LOG_FILE= File 名字 ,MASTER_LOG_POS=Position 數(shù)字;

啟動(dòng)從服務(wù)器復(fù)制功能,start slave;。

查看配置下面兩個(gè)參數(shù)都是 Yes,則說(shuō)明主從配置成功!Slave_IO_Running: Yes。Slave_SQL_Running: Yes。

CHANGE MASTER TO MASTER_HOST= 192.168.124.3 , MASTER_USER= zhangsan , MASTER_PASSWORD= 123456 , MASTER_LOG_FILE= mysqlbin. 具體數(shù)字 ,MASTER_LOG_POS= 具體值;

7、主機(jī)鍵表,看從機(jī)有沒(méi)有 8、如何停止主從服務(wù)復(fù)制功能

在 linux 下面輸入 stop slave;。

上述就是丸趣 TV 小編為大家分享的 MySQL 主從復(fù)制的原理分析是怎樣的了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-17發(fā)表,共計(jì)2415字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 东丽区| 兴城市| 尉氏县| 文化| 桂平市| 平昌县| 鲁山县| 鄂伦春自治旗| 寿阳县| 九龙城区| 广东省| 福建省| 会泽县| 威海市| 德令哈市| 新丰县| 视频| 平湖市| 仙桃市| 黄大仙区| 嫩江县| 汤阴县| 宁安市| 资源县| 财经| 江口县| 南宫市| 扶余县| 如皋市| 阿拉善左旗| 鲁山县| 南平市| 板桥市| 黎平县| 修文县| 双城市| 兰州市| 通海县| 邯郸县| 阳春市| 晋城|