詳解Mysql雙機熱備和負(fù)載均衡的實現(xiàn)步驟
MySQL數(shù)據(jù)庫沒有增量備份的機制,但它提供了一種主從備份的機制,就是把主數(shù)據(jù)庫的所有的數(shù)據(jù)同時寫到備份數(shù)據(jù)庫中。實現(xiàn)MySQL數(shù)據(jù)庫的熱備份。
下面是具體的主從熱備份的步驟:
假設(shè)主服務(wù)器A(master)、從服務(wù)器為B(slave)
A:192.168.0.104
B:192.168.0.169
1.主服務(wù)器授權(quán)
授權(quán)副服務(wù)器可以連接主服務(wù)器并可以進行更新。這是在主服務(wù)器上進行的,創(chuàng)建一個username和password供副服務(wù)器訪問時使用。也可以使用主服務(wù)器默認(rèn)的帳號和密碼。
2.數(shù)據(jù)復(fù)制
將master上已有的數(shù)據(jù)復(fù)制到slave上,以便主從數(shù)據(jù)庫建立的時候兩個數(shù)據(jù)庫的數(shù)據(jù)保持一致。導(dǎo)出導(dǎo)入數(shù)據(jù)庫就不詳述了。
3.配置主服務(wù)器
修改master上mysql的根目錄下的my.ini配置文件
在選項配置文件中賦予主服務(wù)器一個server-id,該id必須是1到2^23-1范圍內(nèi)的唯一值。主服務(wù)器和副服務(wù)器的server-id不能相同。另外,還需要配置主服務(wù)器,使之啟用二進制日志,即在選項配置文件中添加log-bin啟動選項。
注意:如果主服務(wù)器的二進制日志已經(jīng)啟用,關(guān)閉并重新啟動之前應(yīng)該對以前的二進制日志進行備份。重新啟動后,應(yīng)使用RESET MASTER語句清空以前的日志。
原因:master上對數(shù)據(jù)庫cartrader的一切操作都記錄在日志文件中,然后會把日志發(fā)給slave,slave接收到master傳來的日志文 件之后就會執(zhí)行相應(yīng)的操作,使slave中的數(shù)據(jù)庫做和master數(shù)據(jù)庫相同的操作。所以為了保持?jǐn)?shù)據(jù)的一致性,必須保證日志文件沒有臟數(shù)據(jù)。
4.重啟master
配置好以上選項后,重啟MySQL服務(wù),新選項將生效?,F(xiàn)在,所有對數(shù)據(jù)庫中信息的更新操作將被寫進日志中。
5.配置slave
在副服務(wù)器上的MySQL選項配置文件中添加以下參數(shù):
[mysqld]
#唯一,并與主服務(wù)器上的server-id不同。
server-id=2
#主服務(wù)器的主機名或者ip地址
master-host= 192.168.0.104
#如果主服務(wù)器沒有在默認(rèn)的端口上監(jiān)聽,則需確定master-port選項
master-port=3306
#步驟2.1中創(chuàng)建的用戶名和密碼
master-user=root
master-password=123456
#復(fù)制操作要針對的數(shù)據(jù)庫(可選,默認(rèn)為全部)
replicate-do-db=cartrader
#如果主副服務(wù)器間連接經(jīng)常失敗,需增加master-retry-count和master-connect-retry
#master-retry-count連接重試的次數(shù)
#master-connect-retry 連接失敗后等待的秒數(shù)
master-retry-count = 999
master-connect-retry = 60
5.重啟slave
副服務(wù)器上MySQL服務(wù)重啟后,還在數(shù)據(jù)目錄中創(chuàng)建一個master.info文件,其中包含
所有有關(guān)復(fù)制過程的信息(連接主服務(wù)器的相關(guān)信息及與主服務(wù)器交換數(shù)據(jù)的相關(guān)信息)。在初次啟動以后,副服務(wù)器將檢查這個master.info文件,以得到相關(guān)信息。
如果想修改復(fù)制選項,刪除master.info并重啟MySQL服務(wù),在啟動過程中使用選項配置文件中的新選項進行重新創(chuàng)建了master.info文件。
將主服務(wù)器上備份好的數(shù)據(jù)庫腳本文件(cartrader.sql)導(dǎo)入到副服務(wù)器數(shù)據(jù)庫中,以便保
證主-副服務(wù)器上進行復(fù)制操作的起點一樣。
6.查看master的狀態(tài)與設(shè)置的是否一致
7.查看slave
一般情況下重啟了slave之后,自動就會開啟復(fù)制功能,可以通過下面的語句查看
在slave上
mysql>show slave status
如果顯示waiting for master to send event 的話就表示已經(jīng)啟動了,反之就運行
mysql>start slave
來啟動slave
在SHOW SLAVE STATUS的命令輸出后,應(yīng)該包含Slave_IO_Running對應(yīng)的值為YES,
Slave_SQL_Running對應(yīng)的值為YES,只有這樣才保證主從機能正常備份。
暫時停止主從熱備份的命令是:
mysql>stop slave
總結(jié)
以上所述是小編給大家介紹的Mysql雙機熱備和負(fù)載均衡的實現(xiàn)步驟,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Windows下MySQL 5.6安裝及配置詳細(xì)圖解(大圖版)
這篇文章主要介紹了Windows下MySQL 5.6安裝及配置詳細(xì)圖解(大圖版),需要的朋友可以參考下2016-04-04DBeaver連接mysql數(shù)據(jù)庫錯誤圖文解決方案
這篇文章主要給大家介紹了關(guān)于DBeaver連接mysql數(shù)據(jù)庫錯誤解決方案的相關(guān)資料,DBeaver是免費、開源、通用數(shù)據(jù)庫工具,是許多開發(fā)開發(fā)人員和數(shù)據(jù)庫管理員的所選,需要的朋友可以參考下2023-11-11MySQL中NULLIF?、IFNULL、IF的用法和區(qū)別舉例詳解
這篇文章主要給大家介紹了關(guān)于MySQL中NULLIF?、IFNULL、IF的用法和區(qū)別的相關(guān)資料,nullif和ifnull都是MySQL中用于處理NULL值的函數(shù),但它們的用法和作用略有不同,下面給大家詳細(xì)介紹下,需要的朋友可以參考下2024-05-05