91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql主從復制作用和工作原理

發布時間:2020-07-08 10:58:45 來源:網絡 閱讀:618 作者:荊襄鐵衛 欄目:MySQL數據庫

一、什么是主從復制

主從復制,是用來建立一個和主數據庫完全一樣的數據庫環境,稱為從數據庫,主數據庫一般是準實時的業務數據庫。在最常用的mysql數據庫中,支持單項、異步賦值。在賦值過程中,一個服務器充當主服務器,而另外一臺服務器充當從服務器;此時主服務器會將更新信息寫入到一個特定的二進制文件中。并會維護文件的一個索引用來跟蹤日志循環。這個日志可以記錄并發送到從服務器的更新中去。當一臺從服務器連接到主服務器時,從服務器會通知主服務器從服務器的日志文件中讀取最后一次成功更新的位置。然后從服務器會接收從哪個時刻起發生的任何更新,然后鎖住并等到主服務器通知新的更新。

二、主從復制的作用

一是確保數據安全;做數據的熱備,作為后備數據庫,主數據庫服務器故障后,可切換到從數據庫繼續工作,避免數據的丟失。
二是提升I/O性能;隨著日常生產中業務量越來越大,I/O訪問頻率越來越高,單機無法滿足,此時做多庫的存儲,有效降低磁盤I/O訪問的頻率,提高了單個設備的I/O性能。
三是讀寫分離,使數據庫能支持更大的并發;在報表中尤其重要。由于部分報表sql語句非常的慢,導致鎖表,影響前臺服務。如果前臺使用master,報表使用slave,那么報表sql將不會造成前臺鎖,保證了前臺速度。

三、主從復制的原理

主從復制中涉及的文件
主庫: binlog
從庫:
relaylog 中繼日志
master.info 主庫信息文件
relaylog.info relaylog應用的信息

主從復制中涉及的三個線程
主庫:
Binlog_Dump Thread :
從庫:
SLAVE_IO_THREAD
SLAVE_SQL_THREAD

具體原理如圖所示:Mysql主從復制作用和工作原理
1.從數據庫執行change master to 命令(主數據庫的連接信息+復制的起點)
2.從數據庫會將以上信息,記錄到master.info文件
3.從數據庫執行 start slave 命令,立即開啟SLAVE_IO_THREAD 和SLAVE_SQL_THREAD這兩個線程

  1. 從數據庫 SLAVE_SQL_THREAD,讀取master.info文件中的信息獲取到IP,PORT,User,Pass,binlog的位置信息
  2. 從數據庫SLAVE_IO_THREAD請求連接主數據庫,主數據庫專門提供一個MASTER_DUMP_THREAD,負責和SLAVE_IO_THREAD交互
  3. SLAVE_IO_THREAD根據binlog的位置信息,請求主數據庫新的binlog
  4. 主數據庫通過Binlog_DUMP_Thread將最新的binlog,通過網絡TP給從數據庫的SALVE_IO_THREAD
  5. SLAVE_IO_THREAD接收到新的binlog日志,存儲到TCP/IP緩存,立即返回ACK給主庫,并更新master.info
    9.SLAVE_IO_THREAD將TCP/IP緩存中數據,轉儲到磁盤relaylog中.
  6. SLAVE_SQL_THREAD讀取relay.info中的信息,獲取到上次已經應用過的relaylog的位置信息
  7. SLAVE_SQL_THREAD會按照上次的位置點回放最新的relaylog,再次更新relay.info信息
  8. 從數據庫會自動purge應用過relay進行定期清理

一旦主從復制構建成功,主數據庫當中發生了新的變化,都會通過 Binlog_dump_THREAD發送信號給SLAVE_IO_THREAD,增強了主從復制的實時性.

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

城固县| 定兴县| 建德市| 安溪县| 东辽县| 漯河市| 大新县| 西乌| 伊吾县| 武陟县| 余干县| 乐清市| 锡林浩特市| 友谊县| 玛曲县| 洱源县| 成武县| 彰武县| 若羌县| 泰安市| 峨边| 鱼台县| 耿马| 石首市| 永兴县| 达拉特旗| 资兴市| 孟村| 滦南县| 龙岩市| 儋州市| 蒲城县| 栾城县| 嘉义县| 措勤县| 漾濞| 施秉县| 临夏县| 杂多县| 雷山县| 井研县|