MySQL的原理以及流程_MySQL的复制原理以及流程?
主從復制:將主數據庫中的DDL和DML操作通過二進制日志(BINLOG)傳輸到從數據庫上,然后將這些日志重新執行(重做);從而使得從數據庫的數據與主數據庫保持一致。
主從復制的作用
主數據庫出現問題,可以切換到從數據庫。
可以進行數據庫層面的讀寫分離。
可以在從數據庫上進行日常備份。
MySQL主從復制解決的問題
數據分布:隨意開始或停止復制,并在不同地理位置分布數據備份
負載均衡:降低單個服務器的壓力
高可用和故障切換:幫助應用程序避免單點失敗
升級測試:可以用更高版本的MySQL作為從庫
MySQL主從復制工作原理
在主庫上把數據更高記錄到二進制日志
從庫將主庫的日志復制到自己的中繼日志
從庫讀取中繼日志的事件,將其重放到從庫數據中
**基本原理流程,3個線程以及之間的關聯 ** 主:binlog線程——記錄下所有改變了數據庫數據的語句,放進master上的binlog中;
從:io線程——在使用start slave 之后,負責從master上拉取 binlog 內容,放進自己的relay log中;
從:sql執行線程——執行relay log中的語句;
復制過程
Binary log:主數據庫的二進制日志
Relay log:從服務器的中繼日志
第一步:master在每個事務更新數據完成之前,將該操作記錄串行地寫入到binlog文件中。
第二步:salve開啟一個I/O Thread,該線程在master打開一個普通連接,主要工作是binlog dump process。如果讀取的進度已經跟上了master,就進入睡眠狀態并等待master產生新的事件。I/O線程最終的目的是將這些事件寫入到中繼日志中。
第三步:SQL Thread會讀取中繼日志,并順序執行該日志中的SQL事件,從而與主數據庫中的數據保持一致。
總結
以上是生活随笔為你收集整理的MySQL的原理以及流程_MySQL的复制原理以及流程?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fraction+mysql_MySQL
- 下一篇: powerdesigner 同步mysq