91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)

發布時間:2020-08-11 07:42:30 來源:ITPUB博客 閱讀:152 作者:wangwenan6 欄目:MySQL數據庫
這是有生之年系列的填坑_(:з」∠)_
Nginx的TCP反向代理的聯動帖:http://blog.itpub.net/29510932/viewspace-1842929/
-------------------------------------------------------------------------------------正文------------------------------------------------------------------------------------
背景:懶癌晚期,整理好發上來;
環境:MySQL-5.7.9 x 4,Nging-1.9.7 x 1,五臺虛擬機
總體思路:
四個MySQL實例組成雙主雙從的多源復制結構,Nginx放在前端,對應用層屏蔽DB層細節
有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)

配置簡記:
MySQL的雙主配置和普通的雙主配置沒什么區別,并且在這次搭建中打開了GTID
從庫開啟多源復制需要設置
--master-info-repository=TABLE --relay-log-info-repository=TABLE
從庫開啟多源復制用的channel,注意一下語法就好;

Nginx的TCP轉發功能參考另外一篇博客,這次試驗的簡單配置如截圖
有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)

驗證:
先是看看復制的情況,建立一個測試表
有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)
隨便插入幾條數據,看看從庫的status
有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)
可以看到從庫的status里面有兩個主庫的GTID信息
提問:為什么指向67的channel會有兩個主庫的GTID信息?
解惑:看一下67的relay-log的信息
有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)
看到relay-log同時包含了兩個主庫的事務信息,原因在于兩個主庫同時開啟了log-slave-updates,所以在relay-log里面包含了兩個主庫的事務;
追問:那么channel_67的relay-log包含兩個主庫的事務,是不是這個67主庫的channel在復現事務時,過濾掉了65主庫的日志呢
解惑:關掉channel_67的SQL_THREAD之后,在兩個主庫上分別執行一下語句,再看看從庫的status
有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)
發現停掉channel_67的SQL_THREAD之后,67的事務依然被更新了,從對比上來看,是channel_65的SQL_THREAD更新的,
那么同時停掉65和67的SQL_THREAD,看看效果;
有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)
基本可以得出一個結論:channel的SQL_THREAD并沒有過濾掉非master的日志,而是忠實的復現了每一個記錄在relay-log里面的事務;
追問:既然兩個channel都會執行relay-log的所有事務,那么為什么沒有報錯?
解惑/推測SQL_THREAD在復現relay-log的時候,會檢查一下
已經執行過的事務,如果是重復的,則會跳過;

提問:在雙主的MySQL上關閉log-slave-updates,從庫的同步是否會有問題/不同?
解惑:動手測試,關閉slave-log-update之后再觀察從庫的relay-log;
有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)
可以看到relay-log里面沒有主庫65的事務信息了,那么再看一下slave status
有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)

有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)
可以發現,各個channel不再收到另外的主庫的日志,不過已執行事務的GTID信息還是有同步的
得出的結論:沒有出現問題,且各個channel都單獨處理各自主庫的事務信息,為了數據流向的清晰和明確,在雙主配置中關閉slave-log-update比較好;

延伸提問:假設channel_67的SQL_THREAD停止一段時間,使得67的insert語句沒有復現(假設插入值為18),而65的insert全部復現了(插入值為19和21),
從庫上的AUTO_INCREMENT計數器是否會出錯?
準備完環境以后,處于缺少18的狀態,效果如下圖
有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)
relay-log的信息中包含了缺少的事務;
有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)
從結果來看,一切ok
有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)
試驗還在進行中, Nginx的部分留給下半部分,先欠著..._(:з」∠)_...
-------------------------------------------------------------------------------------待續------------------------------------------------------------------------------------
PS:在5.6.x版本,開啟GTID必須要開啟log-slave-updates,通過查閱資料,推斷為auto_position所需要,所以需要開啟這個選項,不過在5.7.9已經不是必要條件了。
有生之年系列----MySQL5.7之多源復制&Nginx中間件(上)
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

朝阳县| 东兰县| 四子王旗| 庄浪县| 松桃| 容城县| 莱州市| 应城市| 崇阳县| 锡林郭勒盟| 朝阳区| 策勒县| 堆龙德庆县| 克拉玛依市| 伊宁市| 荆州市| 阜城县| 灵山县| 河西区| 唐河县| 丹巴县| 棋牌| 新蔡县| 普安县| 陵川县| 通海县| 邳州市| 曲阜市| 丰都县| 白水县| 芒康县| 静宁县| 贡嘎县| 桐柏县| 抚州市| 右玉县| 治多县| 双流县| 邹平县| 搜索| 临沂市|