MySQL 資料庫雙向鏡像、迴圈鏡像(複製)

來源:互聯網
上載者:User

對於雙向資料庫鏡像,就是資料庫A的資料變化要鏡像到資料庫B中,同時資料庫B裡的修改也要同時複製到資料庫A裡。

  對於迴圈資料庫鏡像,就是多個資料庫A、B、C、D等,對其中任一個資料庫的修改,都要同時鏡像到其它的資料庫裡。

應用:同一個Zen Cart網店的資料庫和程式,可以放置在不同的主機上,在任一台主機上新增的訂單、客戶資料,都會同時加入其它的主機資料庫裡。

  要實現雙向或迴圈資料庫鏡像,首先要解決的就是防止資料庫中自動遞增(AUTO_INCREMENT)欄位的衝突,以免多資料庫各自產生一樣的增量值。

  下面以三台主機迴圈鏡像為例,A是B的主鏡像,B是C的主鏡像,C是A的主鏡像。三台主機上MySQL設定檔案 /etc /my.cnf 中分別加入下面的參數:

# 主機一:美國主機 A, IP: 100.101.102.201
[mysqld]
server-id = 10
log-bin = mysql-bin
log-slave-updates
replicate-same-server-id = 0
auto_increment_increment = 10
auto_increment_offset = 1
master-host = 100.101.102.203
master-user = repl_user
master-password = repl_password
report-host = 100.101.102.201

# 主機二:中國主機 B, IP: 100.101.102.202
[mysqld]
server-id = 20
log-bin = mysql-bin
log-slave-updates
replicate-same-server-id = 0
auto_increment_increment = 10
auto_increment_offset = 2
master-host = 100.101.102.201
master-user = repl_user
master-password = repl_password
report-host = 100.101.102.202

# 主機三:本地主機 C, IP: 100.101.102.203
[mysqld]
server-id = 30
log-bin = mysql-bin
log-slave-updates
replicate-same-server-id = 0
auto_increment_increment = 10
auto_increment_offset = 3
master-host = 100.101.102.202
master-user = repl_user
master-password = repl_password
report-host = 100.101.102.203

簡單說明:
server-id:資料庫標識,每個資料庫標識必須唯一;
replicate-same-server-id:設定為0,防止資料迴圈更新;
auto_increment_increment:這是迴圈鏡像裡最重要的參數之一,表示自動增量為10,這將允許最多10台資料庫加入這個迴圈鏡像的陣列,而自動遞增欄位不會重複。
auto_increment_offset:這是迴圈鏡像裡最重要的參數之一,表示位移值,每個資料庫的位移值必須唯一,且在1和auto_increment_increment之間。
master-host:主要資料庫伺服器的IP;
master-user:用於串連主要資料庫的鏡像使用者名稱;
master-password:用於串連主要資料庫的鏡像密碼;
report-host:提供給主要資料庫用於反向串連的IP,因為主要資料庫有時無法正確判斷從伺服器的IP,所以這裡最好填上從伺服器自己的IP地址。

另外,有時只需要鏡像某些資料庫,可以在 my.cnf 中加入:
replicate-do-db = db_name1
replicate-do-db = db_name2
replicate-do-db = db_name3

這樣就僅僅鏡像db_name1/db_name2/db_name3

如果只是某些資料庫不要鏡像,可以在 my.cnf 中加入:
replicate-ignore-db=db_name1
replicate-ignore-db=db_name2
replicate-ignore-db=db_name3

這樣鏡像時就忽略 db_name1/db_name2/db_name3 這三個資料庫。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.