av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

MySql數(shù)據(jù)庫從同步負載均衡實時備份描述

如果你對MySql數(shù)據(jù)庫主從同步負載均衡實時的備份,的實際操作步驟感到很是很郁悶時。你就可以瀏覽下面的文章了,我在一個信譽度很好的網(wǎng)站找到一個關(guān)于MySql數(shù)據(jù)庫主從同步負載均衡實時的備份的實際操作。供大家分享。

成都創(chuàng)新互聯(lián)公司是專業(yè)的沅江網(wǎng)站建設公司,沅江接單;提供成都網(wǎng)站建設、網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行沅江網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

最近將四臺MySQL數(shù)據(jù)庫服務器配置成主從模式以實現(xiàn)一定的負載均衡,好象還可以接受,至少現(xiàn)在沒有出什么大問題。

MySQL同步機制基于master把所有對數(shù)據(jù)庫的更新、刪除 等)都記錄在二進制日志里。因此,想要啟用同步機制,在master就必須啟用二進制日志。每個slave接受來自master上在二進制日志中記錄的更新操作,因此在slave上執(zhí)行了這個操作的一個拷貝。應該非常重要地意識到,二進制日志只是從啟用二進制日志開始的時刻才記錄更新操作的。所有的slave必須在啟用二進制日志時把master上已經(jīng)存在的數(shù)據(jù)拷貝過來。如果運行同步時slave上的數(shù)據(jù)和master上啟用二進制日志時的數(shù)據(jù)不一致的話,那么slave同步就會失敗。

把master上的數(shù)據(jù)拷貝過來的方法之一實在slave上執(zhí)行 LOAD DATA FROM MASTER 語句。不過要注意,LOAD DATA FROM MASTER 是從MySQL 4.0.0之后才開始可以用的,而且只支持master上的 MyISAM 類型表。同樣地,這個操作需要一個全局的讀鎖,這樣的話傳送日志到slave的時候在master上就不會有更新操作了。

當實現(xiàn)了自由鎖表熱備份時(在MySQL 5.0中),全局讀鎖就沒必要了。由于有這些限制,因此我們建議只在master上相關(guān)數(shù)據(jù)比較小的時候才執(zhí)行 LOAD DATA FROM MASTER 語句,或者在master上允許一個長時間的讀鎖。由于每個系統(tǒng)之間 LOAD DATA FROM MASTER 的速度各不一樣,一個比較好的衡量規(guī)則是每秒能拷貝1MB數(shù)據(jù)。這只是的粗略的估計,不過master和slave都是奔騰700MHz的機器且用100MBit/s網(wǎng)絡連接時就能達到這個速度了。

slave上已經(jīng)完整拷貝master數(shù)據(jù)后,就可以連接到master上然后等待處理更新了。如果master當機或者slave連接斷開,slave會定期嘗試連接到master上直到能重連并且等待更新。重試的時間間隔由 –master-connect-retry 選項來控制,它的默認值是60秒。每個slave都記錄了它關(guān)閉時的日志位置。msater是不知道有多少個slave連接上來或者哪個slave從什么時候開始更新。

MySQL數(shù)據(jù)庫同步功能由3個線程(master上1個,slave上2個)來實現(xiàn)。執(zhí)行 START SLAVE 語句后,slave就創(chuàng)建一個I/O線程。I/O線程連接到master上,并請求master發(fā)送二進制日志中的語句。master創(chuàng)建一個線程來把日志的內(nèi)容發(fā)送到slave上。這個線程在master上執(zhí)行 SHOW PROCESSLIST 語句后的結(jié)果中的 Binlog Dump 線程便是。

slave上的I/O線程讀取master的 Binlog Dump 線程發(fā)送的語句,并且把它們拷貝到其數(shù)據(jù)目錄下的中繼日志(relay logs)中。第三個是SQL線程,salve用它來讀取中繼日志,然后執(zhí)行它們來更新數(shù)據(jù)。如上所述,每個mster/slave上都有3個線程。每個master上有多個線程,它為每個slave連接都創(chuàng)建一個線程,每個slave只有I/O和SQL線程。

在MySQL 4.0.2以前,同步只需2個線程(master和slave各一個)。slave上的I/O和SQL線程合并成一個了,它不使用中繼日志。slave上使用2個線程的優(yōu)點是,把讀日志和執(zhí)行分開成2個獨立的任務。執(zhí)行任務如果慢的話,讀日志任務不會跟著慢下來。

例如,如果slave停止了一段時間,那么I/O線程可以在slave啟動后很快地從master上讀取全部日志,盡管SQL線程可能落后I/O線程好幾的小時。如果slave在SQL線程沒全部執(zhí)行完就停止了,但I/O線程卻已經(jīng)把所有的更新日志都讀取并且保存在本地的中繼日志中了,因此在slave再次啟動后就會繼續(xù)執(zhí)行它們了。這就允許在master上清除二進制日志,因為slave已經(jīng)無需去master讀取更新日志了。執(zhí)行 SHOW PROCESSLIST 語句就會告訴我們所關(guān)心的master和slave上發(fā)生的情況。 下面我們來具體配置

1. 在主服務器上為從服務器建立一個用戶:

grant replication slave on *.* to ‘用戶名‘@’主機’ identified by ‘密碼’; (在MySQL 數(shù)據(jù)庫4 dot 0.2以前,用 FILE 權(quán)限來代替 REPLICATION SLAVE)

如果打算在slave上執(zhí)行 LOAD TABLE FROM MASTER 或 LOAD DATA FROM MASTER 語句,那么必須給該帳戶授予附加權(quán)限:
授予全局 SUPER 和 RELOAD 權(quán)限。

授予對想要加載的所有表上的 SELECT 權(quán)限。在master上任何沒有 SELECT 權(quán)限的表都會被 LOAD DATA FROM MASTER 略過。

2. 編輯主服務器的配置文件:/etc/my.cnf

server-id = 1

log-bin

binlog-do-db=需要備份的數(shù)據(jù)庫名,如果備份多個數(shù)據(jù)庫,重復設置這個選項即可

binlog-ignore-db=不需要備份的數(shù)據(jù)庫苦命,如果備份多個數(shù)據(jù)庫,重復設置這個選項即可

3. 編輯從服務器的配置文件:/etc/my.cnf

server-id=2 (配置多個從服務器時依次設置id號)

master-host=主機

master-user=用戶名

master-password=密碼

master-port=端口

replicate-do-db=需要備份的數(shù)據(jù)庫名,如果備份多個數(shù)據(jù)庫,重復設置這個選項即可

記得先手動同步一下主從服務器中要備份的數(shù)據(jù)庫,然后重啟主,從服務器。

要驗證主從設置是否已經(jīng)成功,可以登錄從服務器輸入如下命令:

 
 
 
  1. mysql> show slave status\G 

得到的列表會有類似下面的數(shù)據(jù):

 
 
 
  1. Slave_IO_State: Waiting for master to send event  
  2. Slave_IO_Running: Yes  
  3. Slave_SQL_Running: Yes 

如果后面兩個選項不全是Yes,那就說明你前面某個步驟配置錯了。

如果你的設置是正確的,嘗試在主服務器上插入若干條記錄,然后你再轉(zhuǎn)到從服務器,會發(fā)現(xiàn)相應的新記錄已經(jīng)自動同步過來了。

如果你的主從服務器已經(jīng)配置好了,那么你在應用程序中,只要保證所有的insert/delete/update操作是在主服務器上進行的,那么相應的數(shù)據(jù)變化會自動同步到從服務器上,這樣,我們就可以把select操作分擔到多臺從數(shù)據(jù)庫上,從而降低服務器的載荷。

如果你想使用復制數(shù)據(jù)文件的方式來備份數(shù)據(jù)庫,只要在從服務器上的mysql數(shù)據(jù)庫命令行先鍵入slave stop;然后復制數(shù)據(jù)庫文件,復制好了,再在mysql命令行鍵入slave start;啟動從服務器,這樣就即備份了數(shù)據(jù)有保證了數(shù)據(jù)完整性,而且整個過程中主服務器的mysql無需停止。

提示:如果修改了主服務器的配置,記得刪除從服務器上的master.info文件。否則從服務器使用的還是老配置,可能會導致錯誤。

注意:關(guān)于要復制多個數(shù)據(jù)庫時,binlog-do-db和replicate-do-db選項的設置,如果要備份多個數(shù)據(jù)庫,只要重復設置相應選項就可以了。

比如:

 
 
 
  1. binlog-do-db=a 
  2. bbinlog-do-db=b  
  3. replicate-do-db=a  
  4. replicate-do-db=b  

補充:

在從服務器上使用show slave status

Slave_IO_Running,為No,則說明IO_THREAD沒有啟動,請執(zhí)行slave start [IO_THREAD]

Slave_SQL_Running為No則復制出錯,查看Last_error字段排除錯誤后執(zhí)行slave start [SQL_THREAD]

【編輯推薦】

  1. 解決MySQL中文亂碼的方法歸納
  2. MySQL 安裝備份在Linux系統(tǒng)中的安裝
  3. MySQL 數(shù)據(jù)庫的雙機熱備實際操作配置
  4. 建立MySQL鏡像數(shù)據(jù)庫在linux下的簡單方案
  5. Mysql安裝與qmail實際操作概述

網(wǎng)站欄目:MySql數(shù)據(jù)庫從同步負載均衡實時備份描述
標題網(wǎng)址:http://uogjgqi.cn/article/dpjpjpo.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流