您好,登錄后才能下訂單哦!
MySQL數據庫中怎么實現復制操作,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
MySQL數據庫復制操作大致可以分為三個步驟:
步驟1:主服務器將數據的改變記錄到二進制日志中。
步驟2:從服務器將主服務器的binary log events復制到它的中繼日志(relay log)中。
步驟3:從服務器重做中繼日志中的事件,將數據的改變與從服務器保持同步。
詳細步驟如下:
首先,主服務器會記錄二進制日志,每個事務更新數據完成之前,主服務器將這些操作的信息記錄在二進制日志里面,在事件寫入二進制日志完成后,主服務器通知存儲引擎
提交事務。
Slave上面的I/O進程連接上Master,并發出日志請求,Master接收到來自Slave的IO進程的請求后,通過負責復制的IO進程根據請求信息讀取制定日志指定位置之后的日志信息,
返回給Slave的IO進程。返回信息中除了日志所包含的信息之外,還包括本次返回的信息已經到Master端的bin-log文件的名稱已經bin-log的位置。
Slave的I/O進程接收到信息后,將接收到的日志內容依次添加到Slave端的relay-log文件的最末端,并將讀取到Master端的bin-log的文件和位置記錄到master-info文件中。
Slave的SQL進程檢測到replay-log中新增了內容后,會馬上解析replay-log的內容成為在Master端真實執行時候的那些可執行的內容,并在自身執行。
MySQL的復制環境90%以上都是一個Master帶一個或者多個Slave的架構模式,如果master和slave的壓力不是太大的話,異步
復制的延時一般都很少。尤其是slave端的復制方式改成兩個進程處理以后,更是減小了slave端的延時。
備注:對于數據實時性要求不是特別嚴格的應用,只需要通過廉價的PC服務器來擴展slave的數量,將讀壓力分散到多臺slave
的機器上面,即可解決數據庫端的讀壓力瓶頸。這在很大程度上解決了目前很多中小企業網站的數據庫壓力瓶頸問題,甚至有些
大型網站也在使用類似方案解決MySQL數據庫瓶頸。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。