主從資料庫 主從同步理論

2021-10-09 10:57:17 字數 759 閱讀 1166

主從資料庫資料同步原理:

mysql的 replication 是乙個非同步的複製過程,從乙個 mysql instace(我們稱之為 主庫)複製到另乙個 mysqlinstance(我們稱之 從庫)。在 主庫 與 從庫 之間的實現整個複製過程主要由三個執行緒來完成,其中兩個執行緒(sql執行緒和io執行緒)在 從庫 端,另外乙個執行緒(io執行緒)在 主庫 端。

mysql 複製的基本過程如下:

從庫 上面的io執行緒連線上 主庫,並請求從指定日誌檔案的指定位置(或者從最開始的日誌)之後的日誌內容;

主庫 接收到來自 從庫 的 io 執行緒的請求後,通過負責複製的 io 執行緒根據請求資訊讀取指定日誌指定位置之後的日誌資訊,返回給 從庫 端的 io 執行緒。返回資訊中除了日誌所包含的資訊之外,還包括本次返回的資訊在 主庫 端的 binarylog 檔案的名稱以及在 binary log 中的位置;

從庫 的 io 執行緒接收到資訊後,將接收到的日誌內容依次寫入到 從庫 端的relay log檔案(mysql-relay-bin.******)的最末端,並將讀取到的主庫端的bin-log的檔名和位置記錄到主庫- info檔案中,以便在下一次讀取的時候能夠清楚的高速主庫「我需要從某個bin-log的哪個位置開始往後的日誌內容,請發給我」

從庫 的 sql 執行緒檢測到 relay log 中新增加了內容後,會馬上解析該 log 檔案中的內容成為在 主庫 端真實執行時候的那些可執行的 query 語句,並在自身執行這些 query。這樣,實際上就是在 主庫 端和 從庫 端執行了同樣的 query,所以兩端的資料是完全一樣的。

資料庫主從同步實踐

1 修改主庫的my.ini檔案,然後重啟主庫 主從複製關鍵配置 server id 1 主庫和從庫需要不一致,配乙個唯一的id編號,1至32。手動設定 log bin mysql bin 二進位制檔案存放路徑,存放在根目錄data binlog do db test 需要複製的庫,多個庫用逗號隔開,...

儲存過程 資料庫主從同步

儲存過程 為完成某一功能的一系列的sql語句集合。乙個儲存過程是乙個可程式設計的函式,它在資料庫中建立並儲存。它可以有sql語句和一些特殊的控制結構組成。儲存過程具有的優點如下 1,增加sql語句的靈活性跟功能性。儲存過程被建立後,可以在程式中被多次呼叫,而不必重新編寫該儲存過程的sql語句。2,加...

解決主從資料庫同步延遲問題

場景 需要在主機寫入之後,保證在備機一定能夠讀取到已經寫入的資料,也就是需要主從架構下的強一致性。主機與備機之間的物理延遲是不可控的,也是無法避免的。但是如果僅僅需要滿足這種強一致性,是相對簡單的事情 只需要在主機寫入時,確認更新已經同步到備機之後,再返回寫操作成功即可。主從資料庫支援這種完全的同步...