mysql系統搭建互備DB(雙主)記錄

來源:互聯網
上載者:User

標籤:

背景:所負責的自動化持續傳遞平台業務量逐漸增長,以防不測,需要搭建備份系統,經過多方考量;

選擇採取mysql的主從系統進行備份;互為主從(即所謂雙主);

PS:

三種備份方式:

a、指令碼通過mysqldump備份 ----------- 資料量少時可以採取

b、第三方工具備份 ----------- 大多數工具都是windows端的。一旦出現問題,恢複起來步驟稍多(本人比較懶,能自動化的最好都自動化)

c、mysql的主從同步機制 ------------ 推薦,即時增量熱備,切換時可以直接啟用DB。

 

下列為搭建記錄,以備查:

 

 

一、mysql主主同步配置流程

1、兩個伺服器建立同步帳號

GRANT REPLICATION SLAVE,FILE ON *.* TO ‘replication‘@‘192.168.%.%‘ IDENTIFIED BY ‘123456‘;

FLUSH PRIVILEGES;

--------------- 使用者名稱 ‘replication‘ 密碼 ‘123456‘ 許可權  SLAVE,FILE

2、修改伺服器設定檔 ------------------ 根據伺服器變數名的不同,以及部署位置的不同,具體的變數賦值需要調整

主伺服器A:

#replicate confi

server-id = 14550

log-bin=mysql-bin

log-bin-index=master-bin.index

binlog_format="ROW"

innodb_file_per_table=1

replicate_do_db    =jats

relay_log          =/var/lib/mysql/mysql-relay-bin.log

 

主伺服器B:

server-id = 14542

replicate_do_db    =jats

relay_log          =/var/log/mysql/mysql-relay-bin.log

slave-net-timeout=60

 

 

3、從伺服器A的jats 使用 load或mysqldump匯入到B伺服器;

4、重啟A/B伺服器

5、從伺服器啟動同步進程

stop slave;

reset slave;

change master to master_host=‘192.168.145.45‘,master_port=3306,master_user=‘replication‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000002‘,master_log_pos=6663;

------------------其中的 master_log_file/master_log_pos 都是主伺服器的log檔案(主伺服器使用 show master status可以看到)

 

b、start slave;

6、至此主伺服器jats的任何資料變化都會被同步到從伺服器

7、此時雙方伺服器的所有操作都會互相同步;

 

二、mysql同步方式和原理

http://www.cnblogs.com/carterzhang/articles/4633540.html

1、同步方式:

模式:主從(1主多從)

複製方式:同步複製、單向同步、非同步複製

 

2、同步原理

      原理:

            a、一個伺服器充當主服務,而一個或多個伺服器充當從伺服器。

            b、主伺服器將更新寫入二進位記錄檔,並維護檔案的一個索引以追蹤記錄檔迴圈。這些日誌可以記錄發送到從伺服器的更新。

            c、從伺服器串連主伺服器時,它通知主伺服器此從伺服器在日誌中讀取的最後一次成功更新的位置。

            d、從伺服器接收從那時起發生的任何更新,然後封鎖並等待主伺服器通知新的更新。 ------------- 此過程一直持續,知道關閉同步功能;

 

      步流程:(接到主伺服器通知更新後)(主要是通過執行和結果返回分離來實現):

            a、主伺服器開啟1個線程m用於將二進位日誌內容發送給從伺服器(即s1線程執行語句後的結果)

            b、從伺服器開啟2個進程,

                  1) 線程s1:建立一個I/O線程,以串連主伺服器並讓它發送記錄在其二進位日誌中的語句。

                  2) 線程s2:從relaylog中讀取更新

            c、主伺服器將二進位檔案更新推送給從伺服器

            e、從伺服器將更新寫入同步處理記錄(relay log)

            f、從伺服器mysql主進程從relay log讀取更新並執行;

     

 

 

 

二、日常維護注意事項

1、binary log 以及 relay log的大小控制

 

三、關鍵參數配置含義

log_bin       二進位檔案位置

relay_log    中繼檔案位置

relay_log_index中級日誌索引

replicate_do_db 只同步某個DB

slave-net-timeout 同步逾時設定(秒)

server-id  伺服器ID,不同伺服器不重複

四、同步相關命令

stop slave ------------停止同步線程

reset slave ------------- 清空同步配置

change master to master_host=‘192.168.145.45‘,master_port=3306,master_user=‘replication‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000002‘,master_log_pos=6663; -------- 設定主伺服器

------------------其中的 master_log_file/master_log_pos 都是主伺服器的log檔案(主伺服器使用 show master status可以看到)

start slave --------------  開啟同步線程

show master status ----------- 作為主伺服器時,查看配置

show slave status ----------- 作為從伺服器時查看同步配置

 

mysql系統搭建互備DB(雙主)記錄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.