99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

mysql主從怎么監控 查看mysql主從

如何監控MySQL

首先介紹下 pt-stalk,它是 Percona-Toolkit 工具包中的一個工具,說起 PT 工具包大家都不陌生,平時常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自于這個工具包,這里就不多介紹了。

為婺城等地區用戶提供了全套網頁設計制作服務,及婺城網站建設行業解決方案。主營業務為成都網站建設、網站制作、婺城網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

pt-stalk 的主要功能是在出現問題時收集 OS 及 MySQL 的診斷信息,這其中包括:

1. OS 層面的 CPU、IO、內存、磁盤、網絡等信息;

2. MySQL 層面的行鎖等待、會話連接、主從復制,狀態參數等信息。

而且 pt-stalk 是一個 Shell腳本,對于我這種看不懂 perl 的人來說比較友好,腳本里面的監控邏輯與監控命令也可以拿來參考,用于構建自己的監控體系。

三、使用

接著我們來看下如何使用這個工具。

pt-stalk 通常以后臺服務形式監控 MySQL 并等待觸發條件,當觸發條件時收集相關診斷數據。

觸發條件相關的參數有以下幾個:

function:

°?默認為 status,代表監控 SHOW GLOBAL STATUS 的輸出;

°?也可以設置為 processlist,代表監控 show processlist 的輸出;

variable:

°?默認為 Threads_running,代表 監控參數,根據上述監控輸出指定具體的監控項;

threshold:

°?默認為 25,代表 監控閾值,監控參數超過閾值,則滿足觸發條件;

°?監控參數的值非數字時,需要配合 match 參數一起使用,如 processlist 的 state 列;

cycles:

°?默認為 5,表示連續觀察到五次滿足觸發條件時,才觸發收集;

連接參數:host、password、port、socket。

其他一些重要參數:

iterations:該參數指定 pt-stalk 在觸發收集幾次后退出,默認會一直運行。

run-time:觸發收集后,該參數指定收集多長時間的數據,默認 30 秒。

sleep:該參數指定在觸發收集后,sleep 多久后繼續監控,默認 300 秒。

interval:指定狀態參數的檢查頻率,判斷是否需要觸發收集,默認 1 秒。

dest:監控數據存放路徑,默認為 /var/lib/pt-stalk。

retention-time :監控數據保留時長,默認 30 天。

daemonize:以后臺服務運行,默認不開啟。

log:后臺運行日志,默認為 /var/log/pt-stalk.log。

collect:觸發發生時收集診斷數據,默認開啟。

°?collect-gdb:收集 GDB 堆棧跟蹤,需要 gdb 工具。

°?collect-strace:收集跟蹤數據,需要 strace 工具。

°?collect-tcpdump:收集 tcpdump 數據,需要 tcpdump 工具。

MySQL 主從,5 分鐘帶你掌握

MySQL 主從一直是面試??停锩娴闹R點雖然基礎,但是能回答全的同學不多。

比如樓哥之前面試小米,就被問到過主從復制的原理,以及主從延遲的解決方案,因為回答的非常不錯,給面試官留下非常好的印象。你之前面試,有遇到過哪些 MySQL 主從的問題呢?

所謂 MySQL 主從,就是建立兩個完全一樣的數據庫,一個是主庫,一個是從庫, 主庫對外提供讀寫的操作,從庫對外提供讀的操作 ,下面是一主一從模式:

對于數據庫單機部署,在 4 核 8G 的機器上運行 MySQL 5.7 時,大概可以支撐 500 的 TPS 和 10000 的 QPS, 當遇到一些活動時,查詢流量驟然,就需要進行主從分離。

大部分系統的訪問模型是讀多寫少,讀寫請求量的差距可能達到幾個數量級,所以我們可以通過一主多從的方式, 主庫只負責寫入和部分核心邏輯的查詢,多個從庫只負責查詢,提升查詢性能,降低主庫壓力。

MySQL 主從還能做到服務高可用,當主庫宕機時,從庫可以切成主庫,保證服務的高可用,然后主庫也可以做數據的容災備份。

整體場景總結如下:

MySQL 的主從復制是依賴于 binlog 的,也就是記錄 MySQL 上的所有變化并以二進制形式保存在磁盤上二進制日志文件。

主從復制就是將 binlog 中的數據從主庫傳輸到從庫上,一般這個過程是異步的,即主庫上的操作不會等待 binlog 同步的完成。

詳細流程如下:

當主庫和從庫數據同步時,突然中斷怎么辦?因為主庫與從庫之間維持了一個長鏈接,主庫內部有一個線程,專門服務于從庫的這個長鏈接的。

對于下面的情況,假如主庫執行如下 SQL,其中 a 和 create_time 都是索引:

我們知道,數據選擇了 a 索引和選擇 create_time 索引,最后 limit 1 出來的數據一般是不一樣的。

所以就會存在這種情況:在 binlog = statement 格式時,主庫在執行這條 SQL 時,使用的是索引 a,而從庫在執行這條 SQL 時,使用了索引 create_time,最后主從數據不一致了。

那么我們改如何解決呢?

可以把 binlog 格式修改為 row,row 格式的 binlog 日志記錄的不是 SQL 原文,而是兩個 event:Table_map 和 Delete_rows。

Table_map event 說明要操作的表,Delete_rows event用于定義要刪除的行為,記錄刪除的具體行數。 row 格式的 binlog 記錄的就是要刪除的主鍵 ID 信息,因此不會出現主從不一致的問題。

但是如果 SQL 刪除 10 萬行數據,使用 row 格式就會很占空間的,10 萬條數據都在 binlog 里面,寫 binlog 的時候也很耗 IO。但是 statement 格式的 binlog 可能會導致數據不一致。

設計 MySQL 的大叔想了一個折中的方案,mixed 格式的 binlog,其實就是 row 和 statement 格式混合使用, 當 MySQL 判斷可能數據不一致時,就用 row 格式,否則使用就用 statement 格式。

有時候我們遇到從數據庫中獲取不到信息的詭異問題時,會糾結于代碼中是否有一些邏輯會把之前寫入的內容刪除,但是你又會發現,過了一段時間再去查詢時又可以讀到數據了,這基本上就是主從延遲在作怪。

主從延遲,其實就是“從庫回放” 完成的時間,與 “主庫寫 binlog” 完成時間的差值, 會導致從庫查詢的數據,和主庫的不一致 。

談到 MySQL 數據庫主從同步延遲原理,得從 MySQL 的主從復制原理說起:

總結一下主從延遲的主要原因 :主從延遲主要是出現在 “relay log 回放” 這一步,當主庫的 TPS 并發較高,產生的 DDL 數量超過從庫一個 SQL 線程所能承受的范圍,那么延時就產生了,當然還有就是可能與從庫的大型 query 語句產生了鎖等待。

我們一般會把從庫落后的時間作為一個重點的數據庫指標做監控和報警,正常的時間是在毫秒級別,一旦落后的時間達到了秒級別就需要告警了。

解決該問題的方法,除了縮短主從延遲的時間,還有一些其它的方法,基本原理都是盡量不查詢從庫。

具體解決方案如下:

在實際應用場景中,對于一些非常核心的場景,比如庫存,支付訂單等,需要直接查詢從庫,其它非核心場景,就不要去查主庫了。

兩臺機器 A 和 B,A 為主庫,負責讀寫,B 為從庫,負責讀數據。

如果 A 庫發生故障,B 庫成為主庫負責讀寫,修復故障后,A 成為從庫,主庫 B 同步數據到從庫 A。

一臺主庫多臺從庫,A 為主庫,負責讀寫,B、C、D為從庫,負責讀數據。

如果 A 庫發生故障,B 庫成為主庫負責讀寫,C、D負責讀,修復故障后,A 也成為從庫,主庫 B 同步數據到從庫 A。

如何監控MySQL主從同步情況

MySQL同步功能由3個線程(master上1個,slave上2個)來實現,簡單的說就是:master發送日志一個,slave接收日志一個,slave運行日志一個。

首先,我們解釋一下 show slave status 中重要的幾個參數:

Slave_IO_Running: I/O線程是否被啟動并成功地連接到主服務器上。

Slave_SQL_Running: SQL線程是否被啟動。

Seconds_Behind_Master:

本字段是從屬服務器“落后”多少的一個指示。當從屬SQL線程正在運行時(處理更新),本字段為在主服務器上由此線程執行的最近的一個事件的時間標記開始,已經過的秒數。當此線程被從屬服務器I/O線程趕上,并進入閑置狀態,等待來自I/O線程的更多的事件時,本字段為零??傊?,本字段測量從屬服務器SQL線程和從屬服務器I/O線程之間的時間差距,單位以秒計。

mysql主從同步延遲zabbix怎么監控

使用 bcc 工具觀測 MySQL:1)dbstat功能:將 MySQL/PostgreSQL 的查詢延遲匯總為直方圖

語法:

dbstat [-h] [-v] [-p [PID [PID ...]]] [-m THRESHOLD] [-u] [-i INTERVAL] ? ? ? ? ? ? ?{mysql,postgres}

選項:

{mysql,postgres} ? ? ? ? ? ? ? ? ? ? ? ? ? # 觀測哪種數據庫-h, --help ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 顯示幫助然后退出-v, --verbose ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 顯示BPF程序-p [PID [PID ...]], --pid [PID [PID ...]] ?# 要觀測的進程號,空格分隔-m THRESHOLD, --threshold THRESHOLD ? ? ? ?# 只統計查詢延遲比此閾值高的-u, --microseconds ? ? ? ? ? ? ? ? ? ? ? ? # 以微秒為時間單位來顯示延遲(默認單位:毫秒)-i INTERVAL, --interval INTERVAL ? ? ? ? ? # 打印摘要的時間間隔(單位:秒)

示例:

# 使用 sysbench 在被觀測數據庫上執行 select[root@liuan tools]# dbstat mysql -p `pidof mysqld` -uTracing database queries for pids 3350 slower than 0 ms...^C[14:42:26] ? ? query latency (us)

2)dbslower

功能:跟蹤 MySQL/PostgreSQL 的查詢時間高于閾值

語法:

dbslower [-h] [-v] [-p [PID [PID ...]]] [-x PATH] [-m THRESHOLD] ? ? ? ? ? ? ? ? {mysql,postgres}

參數:

{mysql,postgres} ? ? ? ? ? ? ? ? ? ? ? ? ? # 觀測哪種數據庫 -h, --help ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 顯示幫助然后退出 -v, --verbose ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 顯示BPF程序 -p [PID [PID ...]], --pid [PID [PID ...]] ?# 要觀測的進程號,空格分隔 -m THRESHOLD, --threshold THRESHOLD ? ? ? ?# 只統計查詢延遲比此閾值高的 -x PATH, --exe PATH ? ? ? ? ? ? ? ? ? ? ? ?# 數據庫二進制文件的位置

示例:

# 使用sysbench在被觀測數據庫上執行update_index [root@liuan tools]# dbslower mysql -p `pidof mysqld` -m 2 Tracing database queries for pids 3350 slower than 2 ms... TIME(s) ? ? ? ?PID ? ? ? ? ?MS QUERY 1.765087 ? ? ? 3350 ? ? ?2.996 UPDATE sbtest1 SET k=k+1 WHERE id=963 3.187147 ? ? ? 3350 ? ? ?2.069 UPDATE sbtest1 SET k=k+1 WHERE id=628 5.945987 ? ? ? 3350 ? ? ?2.171 UPDATE sbtest1 SET k=k+1 WHERE id=325 7.771761 ? ? ? 3350 ? ? ?3.853 UPDATE sbtest1 SET k=k+1 WHERE id=5955. 使用限制

bcc 基于 eBPF 開發(需要 Linux 3.15 及更高版本)。bcc 使用的大部分內容都需要 Linux 4.1 及更高版本。

"bcc.usdt.USDTException: failed to enable probe 'query__start'; a possible cause can be that the probe requires a pid to enable" 需要 MySQL 具備 Dtrace tracepoint。

名稱欄目:mysql主從怎么監控 查看mysql主從
網站URL:http://www.yijiale78.com/article48/hihjhp.html

成都網站建設公司_創新互聯,為您提供網站導航、建站公司、網站內鏈、云服務器、用戶體驗、網站排名

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營