top
Loading...
mysql3.23.15后版本設置數據同步

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=1log-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=2master-host=10.10.10.22master-user=backup #同步用戶帳號master-password=1234master-port=3306master-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.53master-user=backupmaster-password=1234replicate-do-db=backupmaster-connect-retry=10

在b的配置文件中 mysqld 配置項加入以下設置:

log-bin=c:mysqllogmysqllogbinlog-do-db=backup

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

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

測試:

向b批量插入大數據量表aa(1872000)條,a數據庫每秒鐘可以更新2500條數據。

(T127)

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗