自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

數(shù)據(jù)庫 MySQL
下面的文章主要講述的是MySql數(shù)據(jù)庫主從同步負載均衡實時的備份的實際操作步驟,以下就是正文的詳細內(nèi)容的介紹。

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

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

MySQL同步機制基于master把所有對數(shù)據(jù)庫的更新、刪除 等)都記錄在二進制日志里。因此,想要啟用同步機制,在master就必須啟用二進制日志。每個slave接受來自master上在二進制日志中記錄的更新操作,因此在slave上執(zhí)行了這個操作的一個拷貝。應(yīng)該非常重要地意識到,二進制日志只是從啟用二進制日志開始的時刻才記錄更新操作的。所有的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)絡(luò)連接時就能達到這個速度了。

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個獨立的任務(wù)。執(zhí)行任務(wù)如果慢的話,讀日志任務(wù)不會跟著慢下來。

例如,如果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. 在主服務(wù)器上為從服務(wù)器建立一個用戶:

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. 編輯主服務(wù)器的配置文件:/etc/my.cnf

server-id = 1

log-bin

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

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

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

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

master-host=主機

master-user=用戶名

master-password=密碼

master-port=端口

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

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

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

 

  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,那就說明你前面某個步驟配置錯了。

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

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

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

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

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

比如:

 

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

 

補充:

在從服務(wù)器上使用show slave status

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

Slave_SQL_Running為No則復(fù)制出錯,查看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實際操作概述
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2010-05-07 13:14:22

數(shù)據(jù)庫負載均衡

2020-09-21 11:30:28

CanalMySQL數(shù)據(jù)庫

2010-05-07 13:09:06

2010-04-21 17:16:15

2012-10-19 10:21:07

數(shù)據(jù)庫負載均衡mssqlserver

2010-05-10 18:05:09

2010-04-22 13:03:20

負載均衡功能

2010-04-15 09:27:37

Oracle數(shù)據(jù)庫

2010-08-27 09:59:51

SQL Server

2019-07-23 10:43:28

MariaDB數(shù)據(jù)庫MySQL

2010-06-09 14:04:34

MySQL數(shù)據(jù)庫

2010-04-21 16:57:18

數(shù)據(jù)庫負載均衡

2011-08-05 15:28:47

MySQL數(shù)據(jù)庫集群負載均衡

2012-05-29 18:05:00

2011-03-30 13:57:41

MySQL數(shù)據(jù)庫自動備份

2011-03-31 14:34:46

cactimysql備份

2010-06-02 16:57:50

MySQL數(shù)據(jù)庫同步

2010-05-10 14:27:19

線路負載均衡

2019-03-01 13:40:01

MySQL數(shù)據(jù)庫備份案例

2020-07-20 08:02:16

MySQL數(shù)據(jù)庫Nginx
點贊
收藏

51CTO技術(shù)棧公眾號