mysql數(shù)據(jù)復(fù)制的一個非常有用的選項。
大部分情況下,我使用兩個mysql數(shù)據(jù)庫雙向復(fù)制。 結(jié)構(gòu)大致如下: A <==> B
但是,現(xiàn)在有了新需要,要求在另一個機(jī)器上復(fù)制出生產(chǎn)環(huán)境的所有數(shù)據(jù),但是這些數(shù)據(jù)的復(fù)制是單向,也就是說數(shù)據(jù)只會從生產(chǎn)環(huán)境復(fù)制到新的服務(wù)器上,而所有新數(shù)據(jù)庫的數(shù)據(jù)變化不會復(fù)制到生產(chǎn)環(huán)境中。
新的結(jié)構(gòu)大致如下: A <==> B --> C (新的服務(wù)器)
設(shè)置數(shù)據(jù)單向復(fù)制的步驟其實非常簡單,只要在新的服務(wù)器(也就是slave端)指定master的
1,在服務(wù)器端B,先stop slave;
2, show master status, 記錄文件名和position
3,backup the whole database
4,start slave
5, 在slave端,restore database
6, change master ....
到目前為止,看上去一切都進(jìn)展順利,但是馬上我就發(fā)現(xiàn)slave端只有服務(wù)器B的數(shù)據(jù)。因為服務(wù)器B沒有把從服務(wù)器A中復(fù)制過來的數(shù)據(jù)記錄到日志中。
所以,slave C就無法得到此部分?jǐn)?shù)據(jù)。
后來,經(jīng)過網(wǎng)上搜索發(fā)現(xiàn)有一個選項 -log_slave_update,可以讓服務(wù)器B記錄此部分?jǐn)?shù)據(jù)。
實踐中,在服務(wù)器B中加入此選項后,機(jī)器C中就能夠獲得所有的數(shù)據(jù)。
大部分情況下,我使用兩個mysql數(shù)據(jù)庫雙向復(fù)制。 結(jié)構(gòu)大致如下: A <==> B
但是,現(xiàn)在有了新需要,要求在另一個機(jī)器上復(fù)制出生產(chǎn)環(huán)境的所有數(shù)據(jù),但是這些數(shù)據(jù)的復(fù)制是單向,也就是說數(shù)據(jù)只會從生產(chǎn)環(huán)境復(fù)制到新的服務(wù)器上,而所有新數(shù)據(jù)庫的數(shù)據(jù)變化不會復(fù)制到生產(chǎn)環(huán)境中。
新的結(jié)構(gòu)大致如下: A <==> B --> C (新的服務(wù)器)
設(shè)置數(shù)據(jù)單向復(fù)制的步驟其實非常簡單,只要在新的服務(wù)器(也就是slave端)指定master的
1,在服務(wù)器端B,先stop slave;
2, show master status, 記錄文件名和position
3,backup the whole database
4,start slave
5, 在slave端,restore database
6, change master ....
到目前為止,看上去一切都進(jìn)展順利,但是馬上我就發(fā)現(xiàn)slave端只有服務(wù)器B的數(shù)據(jù)。因為服務(wù)器B沒有把從服務(wù)器A中復(fù)制過來的數(shù)據(jù)記錄到日志中。
所以,slave C就無法得到此部分?jǐn)?shù)據(jù)。
后來,經(jīng)過網(wǎng)上搜索發(fā)現(xiàn)有一個選項 -log_slave_update,可以讓服務(wù)器B記錄此部分?jǐn)?shù)據(jù)。
實踐中,在服務(wù)器B中加入此選項后,機(jī)器C中就能夠獲得所有的數(shù)據(jù)。