Mysql跨機房同步方案

        假設現有兩個機房,須要作到數據同步。mysql

        如下是架構圖(實際架構圖根據現有機房架構和實際會比下圖複雜,但總體思路不變):sql

        Mycat、Canal、Otter是關鍵的三項技術:數據庫

        Mycat:數據庫分庫分表中間件,能夠管理一個mysql集羣,屏蔽了mysql集羣,對外假裝成mysql server,用戶無感知mysql集羣。架構

        Canal:阿里巴巴開源產品,能夠讀取mysql二進制日誌文件,並解析成想要的數據。google

        Otter:阿里巴巴開源產品,配合Canal能夠作到讀取二進制文件,解析出增量數據sql,而後執行sql到指定鏈接。日誌

        流程:server

            一、用戶插入一條數據到mycat中間件

            二、mycat解析sql,分配sql到指定mysql數據庫同步

            三、mysql(假設M1接收到數據)數據庫接收數據,根據主從配置,寫出二進制日誌。產品

            四、mysql(M2)讀取二進制日誌同步數據,mysql(S)讀取二進制日誌同步數據,並寫出二進制日誌

            五、Canal讀取二進制日誌,解析成sql

            六、Otter接到sql,獲取鏈接,在機房B的mycat上執行sql

            七、Otter收到sql執行回執,執行完畢。

        注:

            本文給予思路及具體技術方案,具體技術的應用及使用,請自行google。

相關文章
相關標籤/搜索