在Soundbreak我們每天24小時(shí)不間斷地播放實(shí)況音頻和視頻,所以對(duì)于MySQL的新增的復(fù)制特性,我們不能做出很令人信服的測(cè)試。通過(guò)測(cè)試我們發(fā)現(xiàn),可以使用這個(gè)特性來(lái)與備份數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)同步,這樣當(dāng)主服務(wù)器因?yàn)槟撤N原因處理失效時(shí),能夠使用備份機(jī)處理所有的查詢。對(duì)于這樣的要求,配置兩臺(tái)服務(wù)器并不困難。我將詳細(xì)討論整個(gè)處理過(guò)程,同時(shí)討論一下當(dāng)主服務(wù)器失效時(shí),如何使用PHP來(lái)重定向查詢。
MySQL內(nèi)部復(fù)制功能是建立在兩個(gè)或兩個(gè)以上服務(wù)器之間,通過(guò)設(shè)定它們之間的主-從關(guān)系來(lái)實(shí)現(xiàn)的。其中一個(gè)作為主服務(wù)器,其它的作為從服務(wù)器。我將詳細(xì)討論如何配置兩臺(tái)服務(wù)器,將一個(gè)設(shè)為主服務(wù)器,另一個(gè)設(shè)為從服務(wù)器。并且描述一下在它們之間進(jìn)行切換的處理過(guò)程。我是在MySQL的3.23.23版本上進(jìn)行的配置設(shè)置過(guò)程,并且也是在這個(gè)版本上進(jìn)行的測(cè)試。MySQL開(kāi)發(fā)人員建議最好使用最新版本,并且主-從服務(wù)器均使用相同的版本。同時(shí)MySQL 3.23版本仍然是beta測(cè)試版,而且這個(gè)版本可能不能向下兼容。所以因?yàn)檫@個(gè)原因,在實(shí)際的網(wǎng)站中,我現(xiàn)在還沒(méi)有使用這個(gè)版本。擁有容錯(cuò)能力具有一個(gè)好處是,在不需中斷任何查詢的情況下,對(duì)服務(wù)器進(jìn)行升級(jí)。
第一步:配置主服務(wù)器
在這篇文章的剩下篇幅中,我將指定兩臺(tái)服務(wù)器。A(IP為10.1.1.1)作為主服務(wù)器(簡(jiǎn)稱為主機(jī))。B(IP為10.1.1.2)作為后備服務(wù)器(簡(jiǎn)稱為備機(jī))。
MySQL的復(fù)制功能的實(shí)現(xiàn)過(guò)程為:備機(jī)(B)與主機(jī)(A)連接,然后讀出主機(jī)的二進(jìn)制更新日志,再將發(fā)生的變化合并到自已的數(shù)據(jù)庫(kù)中。備機(jī)需要一個(gè)用戶帳號(hào)來(lái)與主機(jī)連接,所以在主機(jī)上創(chuàng)建一個(gè)帳號(hào),并只給它FILE權(quán)限,如下操作:
|
為了備機(jī)能夠與主機(jī)連接,要在主機(jī)上運(yùn)行FLUSH PRIVILEGES,不過(guò)不要擔(dān)心,因?yàn)槲覀儗⒃谙旅娴牟襟E中停掉服務(wù)器。
現(xiàn)在我們需要主機(jī)數(shù)據(jù)庫(kù)的一個(gè)快照,并且對(duì)主機(jī)進(jìn)行配置,允許生成二進(jìn)制的更新日志。首先編輯my.cnf文件,以便允許二進(jìn)制更新日志,所以在[mysqld]部分的下面某個(gè)地方增加一行:log-bin。在下一次服務(wù)器啟動(dòng)時(shí),主機(jī)將生成二進(jìn)制更新日志(名為:<主機(jī)名>-bin.<增量序號(hào)#>)。為了讓二進(jìn)制更新日志有效,關(guān)閉MySQL服務(wù)程序,然后將主機(jī)上的所有數(shù)據(jù)庫(kù)目錄到另一個(gè)目錄中,接著重新啟動(dòng)mysqld。
請(qǐng)確定得到了所有數(shù)據(jù)庫(kù),否則在進(jìn)行復(fù)制時(shí),如果一個(gè)表在主機(jī)上存在但在備機(jī)上不存在,將因?yàn)槌鲥e(cuò)而退出?,F(xiàn)在你已經(jīng)得到了數(shù)據(jù)的快照,和一個(gè)從建立快照以來(lái)的二進(jìn)制日志,上面記錄著任何對(duì)數(shù)據(jù)庫(kù)的修改。請(qǐng)注意MySQL數(shù)據(jù)文件(*.MYD,*.MYI和*.frm)是依賴于文件系統(tǒng)的,所以你不能僅僅進(jìn)行文件傳輸,如從Solaris到Linux。如果你處于一個(gè)異種的服務(wù)器環(huán)境,你將不得不使用mysqldump實(shí)用程序或其它的定制腳本來(lái)得到數(shù)據(jù)快照。
新聞熱點(diǎn)
疑難解答
圖片精選