Dict.CN 在線詞典, 英語學習, 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統計

          留言簿(23)

          積分與排名

          優秀學習網站

          友情連接

          閱讀排行榜

          評論排行榜

          MYSQL 主從服務器配置工作原理

          一、        主從配置的原理:
          Mysql的 
          Replication 是一個異步的復制過程,從一個 Mysql instace(我們稱之為 Master)復制到另一個
          Mysql instance(我們稱之 Slave)。在 Master 與 Slave
          之間的實現整個復制過程主要由三個線程來完成,其中兩個線程(Sql線程和IO線程)在 Slave 端,另外一個線程(IO線程)在 Master
          端。
          要實現 MySQL 的 
          Replication ,首先必須打開 Master 端的Binary
          Log(mysql-bin.xxxxxx)功能,否則無法實現。因為整個復制過程實際上就是Slave從Master端獲取該日志然后再在自己身上完全
          順序的執行日志中所記錄的各種操作。打開 MySQL 的 
          Binary Log 可以通過在啟動 MySQL Server 的過程中使用
          “—
          log-bin” 參數選項,或者在 my.cnf 配置文件中的 mysqld 參數組([mysqld]標識后的參數部分)增加
          log-bin” 參數項。
          MySQL 復制的基本過程如下:
          1. Slave 上面的IO線程連接上 Master,并請求從指定日志文件的指定位置(或者從最開始的日志)之后的日志內容;

          2. Master 接收到來自 Slave 的 IO 線程的請求后,通過負責復制的 IO
          線程根據請求信息讀取指定日志指定位置之后的日志信息,返回給 Slave 端的 IO
          線程。返回信息中除了日志所包含的信息之外,還包括本次返回的信息在 Master 端的 
          Binary Log 文件的名稱以及在 Binary
          Log 中的位置;
          3. Slave 的 IO 線程接收到信息后,將接收到的日志內容依次寫入到 Slave 端的Relay
          Log文件(mysql
          -relay-bin.xxxxxx)的最末端,并將讀取到的Master端的bin-log的文件名和位置記錄到master-
          info文件中,以便在下一次讀取的時候能夠清楚的高速Master“我需要從某個bin
          -log的哪個位置開始往后的日志內容,請發給我”

          4. Slave 的 SQL 線程檢測到 Relay Log 中新增加了內容后,會馬上解析該 Log 文件中的內容成為在 Master
          端真實執行時候的那些可執行的 Query 語句,并在自身執行這些 Query。這樣,實際上就是在 Master 端和 Slave
          端執行了同樣的 Query,所以兩端的數據是完全一樣的。
          二、        設置mysql主從配置的優點:
          1、        解決web應用系統,數據庫出現的性能瓶頸,采用數據庫集群的方式來實現查詢負載;一個系統中數據庫的查詢操作比更新操作要多得多,通過多臺查詢服務器將 數據庫的查詢分擔到不同的查詢服務器上從而提高查詢效率。
          2、        Mysql數據庫支持數據庫的主從復制功能,使用主數據庫進行數據的插入、刪除與更新操作,而從數據庫則專門用來進行數據查詢操作,這樣可以將更新操作和 查詢操作分擔到不同的數據庫上,從而提高了查詢效率。
          三、        主從數據庫服務器的配置
          1、        主數據庫服務器的配置
          1)、修改mysql的配置文件(/etc/my.cnf)在配置文件中設置:
          server
          -id       = 1   ###每一個數據庫服務器都要制定一個唯一的server-id,通常主服務器制定為1。
          log-bin=mysql-bin     ###mysql進行主從復制是通過二進制的日志文件來進行的,所以必須開啟mysql的日志功能
          (這個是
          /etc/my.cnf的默認配置,保持不變即可)
          2)、 GRANT REPLICATION SLAVE ON *.* TO ' replication'@'172.28.3.41' IDENTIFIED BY 'koncept';        #####給主數據庫服務器授予一個可以進行復制的用戶,172.28.3.41為從服務器的IP,這樣從服務器就能有錢先來訪問主數據庫服務器
          2、從數據庫服務器的設置
          修改數據庫配置文件
          /etc/my.cnf,配置如下內容:
          #server
          -id      = 1  ####必須把server-id      = 1注釋掉,
          server
          -id       = 2  ####設置從的ID號
          master
          -host     =  172.28.3.43  #####設置主服務器的IP
          master
          -user     =   replication  #####設置連接主服務器的用戶名
          master
          -password =   concept     #####設置連接主服務器的密碼
          replicate-do-db=imtest0  ######設置你要同步的數據庫,可以設置多個   
          ####就是我們前面建的用戶名和密碼,另外如果有端口號的變化還要配置端口
          master
          -port     =  <port> 配置成你設置的端口就OK了!
          3、分別重新啟動主從服務器 #### 如果不重新啟動主服務器在后面查看status的時候會出現問題!
          4在從服務器上登錄mysql,輸入:show slave status\G  如果發現有:
          Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
          就說明已經成功了,如果這兩個選項不全是Yes,那就說明你錢面的某個配置錯了,
          我做的時候沒有把主服務器重啟,就出現  Slave_IO_Running: NO。重啟后好了!
          四、        監控服務器的狀態
          1、        監控主服務器的狀態
          可通過show master status來監控主服務器的狀態,內容如下:
          +------------------+----------+--------------+------------------+
          | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
          +------------------+----------+--------------+------------------+
          | mysql-bin.000003 |     1164 |              |                  |
          +------------------+----------+--------------+------------------+
          #####其中File表示日志文件記錄,Position表示日志文件的位置,這個也是數據庫執行復制操作的必須標識,后面兩字段表示復制的數據庫名和 不復制的數據庫名,也可以在配置文件中你進行配置。
          2、        監控從服務器的狀態
          可以通過:show slave status\G來查看,另外如果從數據庫在復制的過程中出現問題,可以通過命令reset slave從數據庫服務器復制的線程,從數據庫服務器的通常操作命令有:
          start slave;  ####啟動復制線程
          stop slave;  ####停止復制線程
          reset slave;  ####重置復制線程
          change master 
          to; ###動態改變到主服務器的配置

          posted on 2011-03-29 14:30 都市淘沙者 閱讀(954) 評論(1)  編輯  收藏 所屬分類: Oracle/Mysql/Postgres/

          評論

          # re: MYSQL 主從服務器配置工作原理 2013-12-27 15:58 test11

          很有幫助  回復  更多評論   

          主站蜘蛛池模板: 台中县| 清河县| 沁水县| 华宁县| 寿宁县| 外汇| 翁牛特旗| 梨树县| 上高县| 永城市| 德庆县| 西和县| 永宁县| 新闻| 青海省| 丹东市| 桐庐县| 酉阳| 横山县| 洛扎县| 阿克陶县| 波密县| 南阳市| 巴林右旗| 皮山县| 衡东县| 香港 | 德钦县| 双鸭山市| 阿合奇县| 沅江市| 杨浦区| 潼南县| 屯留县| 思南县| 扎赉特旗| 南岸区| 同心县| 武威市| 长阳| 乌兰浩特市|