大致思路:
1: 2臺伺服器都設定上二進位制日誌和relay日誌
2: 都設定上replcation賬號
3: 都設定對方為自己的master
主主複製下一定要注意避免的問題---------同步衝突
例:create table stu (
id int primary key auto_increment.
)......
2臺mysql地位相等, 假如2個請求同時到達2臺伺服器,
請求的a節點, stu 的id為1
請求的b 節點, stu的id為1 ,
同步--->衝突
如何解決?
讓1臺伺服器 1,3,5,7來增長
另1臺伺服器 2,4,6,8來增長
一台伺服器:
set global auto_increment_increment = 2;//每步增長2
set global auto_increment_offset = 1; //從1開始增長
set session auto_increment_increment = 2;
set session auto_increment_offset = 1;
另一台伺服器:
set global auto_increment_increment = 2;
set global auto_increment_offset = 2;
set session auto_increment_increment=2;
set session auto_increment_offset = 2;
注:auto-increment-increment 和 auto-increment-offset 要寫到配置檔案 中,防止下次重啟後失效.
操作後得到如下類似效果
如果後期需要加伺服器,這個辦法就有限制了.
我們可以在業務邏輯上來解決,
比如在oracle 有sequnce,序列.
序列每次訪問,生成遞增/遞減的資料.
以redis為例, 我們可以專門構建乙個 global:userid
每次php插入mysql前,先 incr->global:userid, 得到乙個不重複的userid.
mysql集群技術 主主複製
主從複製,2臺伺服器地位有差別,一主一從.從伺服器一是起到備份作用,一是起到分擔查詢壓力的作用.接下來的配置,2臺伺服器之間,沒有明顯的地位差距,兩者可以同步對方的內容.一般的格局如下圖 兩台伺服器相互複製 1 2臺伺服器都設定上二進位制日誌和relay日誌 2 都設定上replcation賬號 3...
MySQL NGINX設定主主複製高可用
該實驗目的是為了 1,使用nginx輪詢來配置mysql主主複製集群的高可用,當兩台mysql正常使用的時候,在他們之間輪詢,分擔伺服器壓力。當其中一台mysql down了之後,nginx會自動輪詢up的那台。當down的mysql啟動之後,資料會自動同步。2,遠端連線mysql的時候,採用ngi...
mysql雙主複製的缺點 mysql雙主複製總結
雙主複製 1 在兩台伺服器上各自建立乙個具有複製許可權的使用者 2 修改配置檔案 主伺服器a上 mysqld server id 10 log bin mysql bin relay log relay mysql auto increment offset 1 起始值 auto increment...