3.數(shù)據(jù)庫同步操作指南
說完了文件同步,我們再來探討一下數(shù)據(jù)庫同步!
這里我主要教大家兩種最常用的數(shù)據(jù)庫的同步方法!
MySQL
MySQL數(shù)據(jù)同步主要有三種方式:
1.利用MySQL自身的數(shù)據(jù)庫同步功能
2.利用MySQL數(shù)據(jù)庫的特性(數(shù)據(jù)庫存在固頂目錄,并且以文件形式存儲),進行數(shù)據(jù)庫目錄同步以達到數(shù)據(jù)同步目的
3.利用專用的MySQL數(shù)據(jù)庫同步軟件
1. 利用MySQL自身的數(shù)據(jù)庫同步功能(下面參考自網(wǎng)上的文章,寫的非常詳細了)
MySQL從3.23.15版本以后提供數(shù)據(jù)庫復(fù)制功能。利用該功能可以實現(xiàn)兩個數(shù)據(jù)庫同步,主從模式,互相備份模式的功能.
數(shù)據(jù)庫同步復(fù)制功能的設(shè)置都在mysql的設(shè)置文件中體現(xiàn)。mysql的配置文件(一般是my.cnf),在unix環(huán)境下在/etc/mysql/my.cnf
或者在mysql用戶的home目錄下的my.cnf。
windows環(huán)境中,如果c:根目錄下有my.cnf文件則取該配置文件。當運行mysql的winmysqladmin.exe工具時候,該工具會把c:根目錄下的my.cnf
命名為mycnf.bak。并在winnt目錄下創(chuàng)建my.ini。mysql服務(wù)器啟動時候會讀該配置文件。所以可以把my.cnf中的內(nèi)容拷貝到my.ini文件中,用my.ini文件作為mysql服務(wù)器的配置文件。
設(shè)置方法:
設(shè)置范例環(huán)境:
操作系統(tǒng):window2000 professional
mysql:4.0.4-beta-max-nt-log
A ip:10.10.10.22
B ip:10.10.10.53
A:設(shè)置
1.增加一個用戶最為同步的用戶帳號:
GRANT FILE ON *.* TO backup@'10.10.10.53'
IDENTIFIED BY ‘1234’
2.增加一個數(shù)據(jù)庫作為同步數(shù)據(jù)庫:
create database backup
B:設(shè)置
1.增加一個用戶最為同步的用戶帳號:
GRANT FILE ON *.* TO backup@'10.10.10.22'
IDENTIFIED BY ‘1234’
2.增加一個數(shù)據(jù)庫作為同步數(shù)據(jù)庫:
create database backup
主從模式:A->B
A為master
修改A mysql的my.ini文件。在mysqld配置項中加入下面配置:
server-id=1
log-bin
#設(shè)置需要記錄log 可以設(shè)置log-bin=c:mysqlbakmysqllog
設(shè)置日志文件的目錄,
#其中mysqllog是日志文件的名稱,mysql將建立不同擴展名,文件名為mysqllog的幾個日志文件。
binlog-do-db=backup #指定需要日志的數(shù)據(jù)庫
重起數(shù)據(jù)庫服務(wù)。
用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 預(yù)設(shè)重試間隔60秒
replicate-do-db=backup 告訴slave只做backup數(shù)據(jù)庫的更新
重起數(shù)據(jù)庫
用show slave status看同步配置情況。
注意:由于設(shè)置了slave的配置信息,mysql在數(shù)據(jù)庫目錄下生成master.info
所以如有要修改相關(guān)slave的配置要先刪除該文件。否則修改的配置不能生效。
雙機互備模式。
如果在A加入slave設(shè)置,在B加入master設(shè)置,則可以做B->A的同步。
在A的配置文件中 mysqld 配置項加入以下設(shè)置:
master-host=10.10.10.53
master-user=backup
master-password=1234
replicate-do-db=backup
master-connect-retry=10
在B的配置文件中 mysqld 配置項加入以下設(shè)置:
log-bin=c:mysqllogmysqllog
binlog-do-db=backup
注意:當有錯誤產(chǎn)生時*.err日志文件。同步的線程退出,當糾正錯誤后要讓同步機制進行工作,運行slave
start
重起AB機器,則可以實現(xiàn)雙向的熱備。
測試:
向B批量插入大數(shù)據(jù)量表AA(1872000)條
A數(shù)據(jù)庫每秒鐘可以更新2500條數(shù)據(jù)。
2.數(shù)據(jù)庫目錄同步,方法和文件同步一樣,設(shè)置好需要同步的兩個數(shù)據(jù)庫目錄就可以了!
缺點很明顯,數(shù)據(jù)同步只能單向進行,可以作為備份方案
3.用專用的MySQL同步軟件進行同步
這方面的軟件有SQLBalance 和MyReplicator
,優(yōu)點是方便直觀,還有很多爭強功能!
缺點和2一樣,只能單項同步!
當然你也可以修改鏡像網(wǎng)站的程序為提交數(shù)據(jù)到母數(shù)據(jù)庫,讀取則在當前鏡像下的數(shù)據(jù),不過,修改起來麻煩!普通用戶修改也非常難!呵呵,大家了解一下就可以!給大家一個思路!有能力的朋友可以試試阿!
◎歡迎參與討論,請在這里發(fā)表您的看法、交流您的觀點。