1. 程式人生 > >60.mysql主從的相關知識

60.mysql主從的相關知識

.mysql主從的相關知識

  • MYSQL主從作用大致分為數據備份和負載均衡兩類
    Master 節點,負責所有的「寫請求」
    Slave 節點,負責大部分的「讀請求」;
    MySQL 的主從復制:異步單線程。
    實現的具體邏輯方法:
    Master上 1 個IO線程,負責向Slave傳輸 binary log(binlog)
    Slave上 2 個線程:IO 線程和執行SQL的線程,其中:
    IO線程:將獲取的日誌信息,追加到relay log上;
    執行SQL的線程:檢測到relay log中內容有更新,則在Slave上執行sql;
  • 技術分享圖片

    1. 復制類型分為兩類,一種是記錄主數據庫的操作sql,然後在從數據庫執行;另一種是將主數據庫中數據的變動記錄為set語句,用set命令對從數據庫進行行的更新;
    2. 主從同步出錯時,有兩種方法解決
      解決方法一:跳過一步錯誤,繼續進行同步

    msyql> stop slave;

    msyql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

    msyql> start slave;
    方法二:重做主從
    msyql> stop slave;

    #查看主服務器上當前的 bin-log 日誌名和偏移量

    msyql> show master status;

    #然後到從服務器上執行手動同步
    4.對主數據庫的操作要註意

    • 不要用系統命令復制或刪除表數據文件,要用sql命令進行數據修改與表修改、創建或者刪除,不然會影響從數據庫,造成主從失敗;

    5.Mysql主從復制常見故障及解決方法
    http://www.10tiao.com/html/706/201603/403220961/1.html
    6.查看主從延遲的方法

    • 主從延時時間:Master 執行成功,到 Slave 執行成功,時間差
    • show slave status,通過比較SQL THREAD接受events時間的時間戳與IO THREAD執行事件events時間戳的差值--秒數,來確定slave落後於master多少
    • 使用pt-heartbeat工具
      http://f.dataguru.cn/thread-461916-1-1.html
      7.同步復制
    • 主數據庫數據寫入完畢之後,在從數據庫也將數據寫入之後,主數據庫才會向客戶端返回數據寫入成功
      異步復制
    • 主數據庫寫入之後,從數據庫隨後更新,只要求數據最終一致,允許延遲存在
      8.主從延遲的影響
    • 主從數據不一致,災備系統失效,負載均衡失效,降低系統性能
      9.常見的主從延遲原因:
      Master 上,大事務,耗時長:優化業務,拆分為小事務
      Master 上,SQL 執行速度慢:優化索引,提升索引區分度(事務內部有查詢操作)
      Master 上,批量 DML 操作:建議延遲至業務低峰期操作
      Master 上,多線程寫入頻繁, Slave 單線程速度跟不上:提升 Slave 硬件性能、借助中間件,改善主從復制的單線程模式

    60.mysql主從的相關知識