成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL數據庫主從同步延遲分析及解決方案

數據庫 MySQL
從MySQL5.5開始,MySQL已經支持半同步復制了,半同步復制介于異步復制和同步復制之間,主庫在執行完事務后不立刻返回結果給客戶端,需要等待至少一個從庫接收到并寫到relay log中才返回結果給客戶端。相對于異步復制,半同步復制提高了數據的安全性,同時它也造成了一個TCP/IP往返耗時的延遲。

一、MySQL的數據庫主從復制原理

MySQL主從復制實際上基于二進制日志,原理可以用一張圖來表示:

MySQL數據庫主從同步延遲分析及解決方案

MySQL數據庫主從同步延遲分析及解決方案

分為四步走:

1. 主庫對所有DDL和DML產生的日志寫進binlog;

2. 主庫生成一個 log dump 線程,用來給從庫I/O線程讀取binlog;

3. 從庫的I/O Thread去請求主庫的binlog,并將得到的binlog日志寫到relay log文件中;

4. 從庫的SQL Thread會讀取relay log文件中的日志解析成具體操作,將主庫的DDL和DML操作事件重放。

關于DDL和DML

SQL語言共分為四大類:查詢語言DQL,控制語言DCL,操縱語言DML,定義語言DDL。

DQL:可以簡單理解為SELECT語句;

DCL:GRANT、ROLLBACK和COMMIT一類語句;

DML:可以理解為CREATE一類的語句;

DDL:INSERT、UPDATE和DELETE語句都是;

二、主從復制存在的問題

1. 主庫宕機后,數據可能丟失;

2. 主從同步延遲。

三、MySQL數據庫主從同步延遲產生原因

原因分析:MySQL的主從復制都是單線程的操作,主庫對所有DDL和DML產生的日志寫進binlog,由于binlog是順序寫,所以效率很高。Slave的SQL Thread線程將主庫的DDL和DML操作事件在slave中重放。DML和DDL的IO操作是隨即的,不是順序的,成本高很多。另一方面,由于SQL Thread也是單線程的,當主庫的并發較高時,產生的DML數量超過slave的SQL Thread所能處理的速度,或者當slave中有大型query語句產生了鎖等待那么延時就產生了。

常見原因:Master負載過高、Slave負載過高、網絡延遲、機器性能太低、MySQL配置不合理。

四、主從延時排查方法

通過監控 show slave status 命令輸出的Seconds_Behind_Master參數的值來判斷:

NULL,表示io_thread或是sql_thread有任何一個發生故障;

0,該值為零,表示主從復制良好;

正值,表示主從已經出現延時,數字越大表示從庫延遲越嚴重。

五、解決方案

解決數據丟失的問題:

1. 半同步復制

從MySQL5.5開始,MySQL已經支持半同步復制了,半同步復制介于異步復制和同步復制之間,主庫在執行完事務后不立刻返回結果給客戶端,需要等待至少一個從庫接收到并寫到relay log中才返回結果給客戶端。相對于異步復制,半同步復制提高了數據的安全性,同時它也造成了一個TCP/IP往返耗時的延遲。

2. 主庫配置sync_binlog=1,innodb_flush_log_at_trx_commit=1

sync_binlog的默認值是0,MySQL不會將binlog同步到磁盤,其值表示每寫多少binlog同步一次磁盤。

innodb_flush_log_at_trx_commit為1表示每一次事務提交或事務外的指令都需要把日志flush到磁盤。

注意:將以上兩個值同時設置為1時,寫入性能會受到一定限制,只有對數據安全性要求很高的場景才建議使用,比如涉及到錢的訂單支付業務,而且系統I/O能力必須可以支撐!

解決從庫復制延遲的問題:

1. 優化網絡

2. 升級Slave硬件配置

3. Slave調整參數,關閉binlog,修改innodb_flush_log_at_trx_commit參數值

 

4. 升級MySQL版本到5.7,使用并行復制 

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2019-07-16 06:30:19

MySQL同步延遲數據庫

2017-06-21 08:30:20

MySQL原因解決辦法

2024-11-28 09:37:28

2011-03-07 16:42:05

MySQL數據庫安全

2022-03-24 12:15:50

MySQL數據庫讀寫分離

2011-07-12 16:42:41

2011-03-28 13:11:18

MySQL數據庫安全

2010-05-27 18:24:09

MySQL數據庫密碼

2024-10-21 08:21:12

數據庫主從延遲

2009-11-18 16:10:00

2011-07-26 16:05:19

Oracle數據庫服務器

2010-05-28 11:22:07

2024-08-02 09:36:03

2011-08-22 15:31:51

SQL Servermssqlserver數據庫復制

2011-05-25 09:45:40

Oracle數據庫

2011-01-21 09:43:10

安恒數據庫安全安全審計

2011-03-24 15:41:42

數據庫

2011-07-18 09:36:42

Mysql數據庫root@localh

2025-04-07 04:45:00

數據架構訂單

2010-09-15 09:50:55

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久综合狠狠综合久久综合88 | 成人免费精品视频 | 午夜精品久久久久久久久久久久久 | 美女黄网 | 欧美一级久久精品 | 国产成人精品一区二区三区四区 | 天堂在线中文 | 久久久久久亚洲 | 亚洲国产精品va在线看黑人 | 一区二区三区四区在线 | 亚洲一区二区久久 | 久久国产一区二区三区 | 精品国产一区二区国模嫣然 | 欧美一区二区视频 | 米奇狠狠鲁 | 福利视频一区 | 激情六月天 | 欧美日韩一区二区三区四区 | 91看片网 | 成人免费在线视频 | 久久日韩精品一区二区三区 | 欧美国产日韩在线 | 国产91综合一区在线观看 | 亚洲综合国产精品 | 国产精品日日做人人爱 | 国产日韩欧美在线 | 人妖一区 | 黄免费在线 | 本道综合精品 | 黄瓜av | 亚洲一区二区三区视频在线 | 亚洲精彩视频 | 国产精品久久久久久久久图文区 | av三级 | 久久福利电影 | 欧美日韩成人影院 | 国产欧美综合在线 | 中文字幕日韩一区 | 欧美日韩国产三级 | 伊人二区 | 成人在线精品 |