程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL 數據庫雙向鏡像、輪回鏡像(復制)

MySQL 數據庫雙向鏡像、輪回鏡像(復制)

編輯:MySQL綜合教程

MySQL 數據庫雙向鏡像、輪回鏡像(復制)。本站提示廣大學習愛好者:(MySQL 數據庫雙向鏡像、輪回鏡像(復制))文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL 數據庫雙向鏡像、輪回鏡像(復制)正文


關於雙向數據庫鏡像,就是數據庫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 這三個數據庫。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved