<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

    都市淘沙者

    荔枝FM Everyone can be host

    統(tǒng)計

    留言簿(23)

    積分與排名

    優(yōu)秀學習網(wǎng)站

    友情連接

    閱讀排行榜

    評論排行榜

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

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

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

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

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

    評論

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

    很有幫助  回復  更多評論   

    主站蜘蛛池模板: 国产日韩成人亚洲丁香婷婷| 亚洲精品国产日韩无码AV永久免费网| 18禁在线无遮挡免费观看网站| 亚洲精品第一国产综合精品99| 无码天堂亚洲国产AV| 四虎影院免费视频| 亚洲日本一线产区和二线产区对比| 97视频免费在线| 亚洲私人无码综合久久网| 成年人免费视频观看| 日日摸日日碰夜夜爽亚洲| 大胆亚洲人体视频| 国产免费久久久久久无码| 亚洲精品你懂的在线观看| 美女视频黄a视频全免费网站色窝| 久久久无码精品亚洲日韩蜜桃 | 亚洲AV无码一区二区三区系列| 中文字幕免费不卡二区| 久久久婷婷五月亚洲97号色| 69成人免费视频| 精品国产日韩亚洲一区在线| 亚洲国产天堂久久综合| 成人国产精品免费视频| 亚洲综合激情九月婷婷| 免费黄色小视频网站| jzzjzz免费观看大片免费| 久久久亚洲精品视频| 女性自慰aⅴ片高清免费| 一级成人生活片免费看| 亚洲国产精品免费视频| 岛国av无码免费无禁网站| 丁香六月婷婷精品免费观看| 亚洲国产高清人在线| 午夜dj在线观看免费视频| 久久国产精品免费一区二区三区 | 亚洲一级免费毛片| 亚洲精品成人久久久| 免费视频爱爱太爽了| 美女18一级毛片免费看| 久久亚洲AV午夜福利精品一区| 日韩激情无码免费毛片|