程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql中主從復制延遲的問題

mysql中主從復制延遲的問題

編輯:MySQL綜合教程


mysql中主從復制延遲的問題   面試mysqldba的時候遇到一個題: 描述msyql replication 機制的實現原理,如何在不停掉mysql主庫的情況下,恢復數據不一致的slave的數據庫節點?  www.2cto.com  
  MySQL的復制(replication)是一個異步的復制,從一個MySQL instace(稱之為Master)復制到另一個MySQL instance(稱之Slave)。實現整個復制操作主要由三個進程完成的,其中兩個進程在Slave(Sql進程和IO進程),另外一個進程在Master(IO進程)上。   引用新浪某位大牛的話:mysql復制就是一句話:基於binlog的單線程異步復制過程。 MySQL Replication復制的基本過程如下:   1、Slave上面的IO進程連接上Master,並請求從指定日志文件的指定位置(或者從最開始的日志)之後的日志內容;
  [html]  mysql> CHANGE MASTER TO               ->     MASTER_HOST='master_host_name',               ->     MASTER_USER='replication_user_name',               ->     MASTER_PASSWORD='replication_password',               ->     MASTER_LOG_FILE='recorded_log_file_name',               ->     MASTER_LOG_POS=recorded_log_position;     www.2cto.com     2、Master接收到來自Slave的IO進程的請求後,通過負責復制的IO進程根據請求信息讀取制定日志指定位置之後的日志信息,返回給Slave的IO進程。返回信息中除了日志所包含的信息之外,還包括本次返回的信息已經到Master端的bin-log文件的名稱以及bin-log的位置;     3、Slave的IO進程接收到信息後,將接收到的日志內容依次添加到Slave端的relay-log文件的最末端,並將讀取到的Master端的bin-log的文件名和位置記錄到master-info文件中,以便在下一次讀取的時候能夠清楚的高速Master“我需要從某個bin-log的哪個位置開始往後的日志內容,請發給我”;   4、Slave的Sql進程檢測到relay-log中新增加了內容後,會馬上解析relay-log的內容成為在Master端真實執行時候的那些可執行的內容,並在自身執行   www.2cto.com   操作過程: (1)登陸主服務器,查看主服務器的狀態  mysql>show master status; 找到現階段master的數據偏移量的值。   (2)登陸從服務器,執行同步操作。[code]  mysql>stop slave; mysql > change master to 直接定位到這個值得位置; 這裡也就相當於給slave指明了相應的位置。 mysql > start slave; (3)從服務器上查看狀態 mysql > show slave status   http://blog.csdn.net/chen861201/article/details/8022501

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved