MySQL複製總述

2021-10-01 11:01:39 字數 954 閱讀 5262

mysql的複製功能是大規模、高效能應用的基礎,是「水平擴充套件」的架構。mysql複製解決的基本問題是讓一台伺服器的資料與其他伺服器保持同步。備庫本身也可以配置為其他伺服器的主庫。

從技術角度看, mysql支援2中複製方式:基於行的複製和基於語句的複製。基於行的複製在5.1之後才開始出現。這兩種方式都是主庫上記錄的二進位制日誌,在備庫重放日誌的方式來實現非同步的資料複製。這就意味著,在同一時間點備庫上的資料可能與主庫存在不一致,並且無法保證主備之間的延遲。

各mysql版本複製是向後相容的,新版本的伺服器可以作為老版本伺服器的備庫,反過來通常不行。

複製通常不會增加主庫的開銷,主要是啟用二進位制日誌帶來的開銷。備庫也會對主庫增加一些負載,比如網路i/o。當備庫請求從主庫讀取就得二進位制檔案時,可能造成較高的i/o開銷。如果是乙個高吞吐量的主庫(5000或更高的tps)的主庫上覆制到多個備庫,喚醒多個複製現成傳送時間的開銷將會累加很大。

通過複製可以將讀操作指向備庫,來獲得更好的讀擴充套件性。而在寫操作擴充套件上,則不合適。因為存在寫操作被執行多次的可能性。

一主多備架構,會造成資源浪費,因為複製了大量不必要的重複資料,這不太經濟。規劃者要認真評估從中獲得的價值。

複製工作機制如下:

1.主庫把資料更改記錄到二進位制日誌中。

2.備庫將主庫上的日誌複製到自己的中繼日誌(relaylog)中。

3.備庫讀取中繼日誌中的時間,將其重放到備庫資料支上。

複製執行中以下幾點請牢記:

1.mysql是按照失誤提交的順序而非每條語句的執行順序來記錄二進位制日誌的。

2.在記錄二進位制日誌之後,主庫會通知儲存引擎提交事務。

3.備庫由i/o執行緒、二進位制轉儲執行緒負責連線主庫和讀取主庫二進位制日誌。

4.備庫s二進位制執行緒追趕上主庫時,會進入睡眠狀態,直到主庫發訊號通知。

5.要注意的是備庫複製複製單執行緒的,

了解這些基礎知識,結合實際需要,設計出的mysql複製架構會給你帶來最大效率。

負載均衡總述

internet 的規模每一百天就會增長一倍,客戶希望獲得 7 天 24 小時的不間斷可用性及較快的系統反應時間,而不願屢次看到某個站點 server too busy 及頻繁的系統故障。網路的各個核心部分隨著業務量的提高 訪問量和資料流量的快速增長,其處理能力和計算強度也相應增大,使得單一裝置 根...

設計原則總述

moon1128 設計原則 1.開 閉 原則 open closed principle,ocp 2.黎克特制代換原則 liskov substitution principle,lsp 3 依賴倒轉原則 dependency inversion principle,dip 4 介面隔離原則 int...

移動測試總述

主要測試程式的功能是否ok,是否能很好的實現該程式基本的業務形態。這裡的非功能性測試,根據被測程式的不同,其測試的側重點不同,被測程式可以分為以下幾大類 1 h5程式 2 小程式 3 web產品 非功能性測試,又可以從以下幾個模組進行測試 1 如果是h5程式,web端測試移動主流的瀏覽器 uc qq...