Mysql的AB複製(主從複製)原理及實現

來源:互聯網
上載者:User

標籤:http   os   io   strong   檔案   資料   art   ar   

Mysql複製(replication)是一個非同步複製,從一個Mysql 執行個體(Master)複製到另一個Mysql 執行個體(Slave)。實現整個主從複製,需要由Master伺服器上的IO進程,和Slave伺服器上的Sql進程和IO進程共從完成。         要實現主從複製,首先必須開啟Master端的binary log(bin-log)功能,因為整個MySQL 複製過程實際上就是Slave從Master端擷取相應的二進位日誌,然後再在自己slave端完全順序的執行日誌中所記錄的各種操作。 (二進位日誌幾乎記錄了除select以外的所有針對資料庫的sql動作陳述式)

主從複製的基本過程如下: 1)、Mysql  Slave端的IO進程串連上Master,向Master請求指定記錄檔的指定位置(或者從最開始的日誌)之後的日誌內容; 2)、Master接收到來自Slave的IO進程的請求後,負責複製的IO進程根據Slave的請求資訊,讀取相應日誌內容,返回給Slave 的IO進程。並將本次請求讀取的bin-log檔案名稱及位置一起返回給Slave端。 3)、Slave的IO進程接收到資訊後,將接收到的日誌內容依次添加到Slave端的relay-log檔案的最末端,並將讀取到的Master端的 bin-log的檔案名稱和位置記錄到master-info檔案中,以便在下一次讀取的時候能夠清楚的告訴Master“我需要從某個bin-log的哪個位置開始往後的日誌內容,請發給我”; 4)、Slave的Sql進程檢測到relay-log中新增加了內容後,會馬上解析relay-log的內容成為在Master端真實執行時候的那些可執行檔內容,並在自身執行。

配置實現:
1,實現主從複製,Master端和用戶端都需要開啟二進位日誌,在my.cnf中添加如下配置
log-bin=xx log-bin-index=xx.index server-id=xx expire-logs-days=n      自動輪轉日誌天數 ,防止單個日誌之檔案過大 或者在mysql中執行flush  logs  手動輪狀二進位日誌,結合crond自動輪轉日誌。 www.it165.net

--------------------------------------------- 其他常用配置參考如下: [mysqld] datadir=/database basedir=/usr/local/mysql pid-file=/var/run/mysqld/mysql5.pid socket=/var/run/mysqld/mysql5.socket general-log general-log-file=/var/log/mysqld/mysql5-access.log log-error=/var/log/mysqld/mysql5-error.log port=3306 user=mysql ----------------------------------------------

2,在Master端給 Mysql  Slave Server授權:
myql>grant  replication  slave, super  on  *.*  to  ‘xx‘@‘xx‘    identified  by  ‘xxx‘; 查看狀態: mysql>show master  status \G

3,在Slave端對指定Master端進行串連
mysql>stop  slave; mysql>change   master   to          master_host=‘10.1.1.145‘,          master_port=3306,          master_user=‘tt‘,          master_password=‘123‘,          master_log_file=‘uu.000005‘,          master_log_pos=265; mysql>start  slave; mysql>show slave status \G              Slave_IO_Running: Yes                                        Slave_SQL_Running: Yes      如果此兩項顯示yes,代表串連同步成功。

4,測試
在Master端進行建立或超人操作,從伺服器能自動實現同步,則主從複製實現成功。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.