設定 MySql 資料同步(轉)

ba發表於2007-08-15
設定 MySql 資料同步(轉)[@more@]不明白?歡迎到 linux論壇 ( 參加討論!

  mysql從3.23.15版本以後提供資料庫複製功能。利用該功能可以實現兩個資料庫同步,主從模式,互相備份模式的功能。

  資料庫同步複製功能的設定都在mysql的設定檔案中體現。mysql的配置檔案(一般是my.cnf)

  在unix環境下在/etc/mysql/my.cnf 或者在mysql使用者的home目錄下面的my.cnf。

  window環境中,如果c:根目錄下有my.cnf檔案則取該配置檔案。當執行mysql的winmysqladmin.exe工具時候,該工具會把c:根目錄下的my.cnf 命名為mycnf.bak。並在winnt目錄下建立my.ini。mysql伺服器啟動時候會讀該配置檔案。所以可以把my.cnf中的內容複製到 my.ini檔案中,用my.ini檔案作為mysql伺服器的配置檔案。
設定方法:
設定範例環境:
  作業系統:window2000 professional
  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=c:mysqllogmysqllog
binlog-do-db=backup

  注意:當有錯誤產生時*.err日誌檔案。同步的執行緒退出,當糾正錯誤後要讓同步機制進行工作,執行slave start

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

  測試:
  向B批次插入大資料量表AA(1872000)條
  A資料庫每秒鐘可以更新2500條資料。



不明白?歡迎到 linux論壇 ( 參加討論!

全文結束

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-958488/,如需轉載,請註明出處,否則將追究法律責任。

相關文章