Posted on 2011-06-29 10:01
云自無心水自閑 閱讀(709)
評論(0) 編輯 收藏 所屬分類:
MySQL
mysql數據復制的一個非常有用的選項。
大部分情況下,我使用兩個mysql數據庫雙向復制。 結構大致如下: A <==> B
但是,現在有了新需要,要求在另一個機器上復制出生產環境的所有數據,但是這些數據的復制是單向,也就是說數據只會從生產環境復制到新的服務器上,而所有新數據庫的數據變化不會復制到生產環境中。
新的結構大致如下: A <==> B --> C (新的服務器)
設置數據單向復制的步驟其實非常簡單,只要在新的服務器(也就是slave端)指定master的
1,在服務器端B,先stop slave;
2, show master status, 記錄文件名和position
3,backup the whole database
4,start slave
5, 在slave端,restore database
6, change master ....
到目前為止,看上去一切都進展順利,但是馬上我就發現slave端只有服務器B的數據。因為服務器B沒有把從服務器A中復制過來的數據記錄到日志中。
所以,slave C就無法得到此部分數據。
后來,經過網上搜索發現有一個選項 -log_slave_update,可以讓服務器B記錄此部分數據。
實踐中,在服務器B中加入此選項后,機器C中就能夠獲得所有的數據。