設置 MySql 資料同步

http://www.clara.com.tw/~faq/viewtopic.php?p=76&sid=7b98789720dc06a7c5d024dc7a005daa

設置 MySql 資料同步

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條資料。

==========================================

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: