mysql雙機熱備份

mysql從3.23.15版本以後提供數據庫複製功能。利用該功能可以實現兩個數據庫同步,主從模式,互相備份模式的功能,該功能可將一個數據庫的工作量分攤於多個Mysql服務器之上,但考慮到種種因素,不要使用過多的同步服務器。最好的方案是根據網站的性質和結構,設置“一寫多讀”或“一讀多寫"的服務器模式。

  數據庫同步複製功能的設置都在mysql的設置文件中體現。mysql的配置文件(一般是my.cnf)在/etc/mysql/my.cnf 或者在mysql用戶的home目錄下面的my.cnf。

設置方法:
設置範例環境:
  mysql:4.0.4-beta-max-nt-log
  A ip:10.10.10.22
  B ip:10.10.10.53
A:設置
  1.增加一個用戶最爲同步的用戶帳號:
GRANT FILE ON *.* TO backup@'10.10.10.53' IDENTIFIED BY ‘1234'
  2.增加一個數據庫作爲同步數據庫:
create database backup
B:設置
  1.增加一個用戶最爲同步的用戶帳號:
GRANT FILE ON *.* TO backup@'10.10.10.22' IDENTIFIED BY ‘1234'
  2.增加一個數據庫作爲同步數據庫:
create database backup

  主從模式:A->B
  A爲master
  修改A mysql的my.ini文件。在mysqld配置項中加入下面配置:
server-id=1
log-bin
#設置需要記錄log 可以設置log-bin=c:mysqlbakmysqllog 設置日誌文件的目錄,
#其中mysqllog是日誌文件的名稱,mysql將建立不同擴展名,文件名爲mysqllog的幾個日誌文件。
binlog-do-db=backup #指定需要日誌的數據庫

  重起數據庫服務。
  用show master status 命令看日誌情況。

  B爲slave
  修改B mysql的my.ini文件。在mysqld配置項中加入下面配置:
server-id=2
master-host=10.10.10.22
master-user=backup #同步用戶帳號
master-password=1234
master-port=3306
master-connect-retry=60 預設重試間隔60秒
replicate-do-db=backup 告訴slave只做backup數據庫的更新

  重起數據庫
  用show slave status看同步配置情況。

  注意:由於設置了slave的配置信息,mysql在數據庫目錄下生成master.info
  所以如有要修改相關slave的配置要先刪除該文件。否則修改的配置不能生效。

  雙機互備模式。

  如果在A加入slave設置,在B加入master設置,則可以做B->A的同步。
  在A的配置文件中 mysqld 配置項加入以下設置:
master-host=10.10.10.53
master-user=backup
master-password=1234
replicate-do-db=backup
master-connect-retry=10

  在B的配置文件中 mysqld 配置項加入以下設置:
log-bin=//var/log/mysqllogmysqllog
binlog-do-db=backup

  注意:當有錯誤產生時*.err日誌文件。同步的線程退出,當糾正錯誤後要讓同步機制進行工作,運行slave start

  重起AB機器,即可實現雙向的熱備。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章