【數據庫相關】mysql數據庫巡檢

mysql數據庫巡檢

    • 巡檢步驟
      • **一、基礎狀態檢查**
      • **二、服務器資源監控**
        • **CPU使用**
        • **內存使用**
        • **磁盤I/O**
        • **網絡流量**
      • **三、數據庫內部健康度**
        • **全局狀態**
        • **慢查詢監控**
        • **鎖與并發**
      • **四、存儲引擎健康**
        • **InnoDB引擎**
        • **MyISAM引擎**
      • **五、日志與備份**
      • **六、安全與權限**
      • **七、高可用性檢查**
        • **主從復制**
        • **集群狀態(MySQL Group Replication/InnoDB Cluster)**
      • **八、自動化監控建議**
      • **九、維護與調優建議**
      • **十、附錄:關鍵命令速查**

巡檢步驟

一、基礎狀態檢查

  1. 服務可用性
    ? systemctl status mysql(檢查服務狀態)
    ? telnet <IP> 3306 / nc -zv <IP> 3306(測試端口連通性)
    ? SHOW GLOBAL VARIABLES LIKE 'server_id';(確認實例唯一性)

  2. 版本與配置
    ? SELECT VERSION();(核對MySQL版本)
    ? 檢查my.cnf配置文件(內存分配、線程池、字符集等關鍵參數)

二、服務器資源監控

CPU使用

? top/htop(觀察MySQL進程CPU占比)
? mpstat 1 5(1秒間隔采樣5次,分析CPU周期分布)
? 警戒值:持續>70%需排查慢查詢或鎖爭用。

內存使用

? free -m(查看物理內存)
? ps aux --sort -rss | grep mysql(MySQL進程內存占用)
? InnoDB緩沖池SHOW ENGINE INNODB STATUS LIKE 'Innodb_buffer_pool_size';
? 緩沖池使用率>90%時需擴容。

磁盤I/O

? iostat -dx 2(監控磁盤讀寫延遲與吞吐量)
? iotop -o(實時查看I/O密集型進程)
? 重點指標await(平均等待時間)<20ms為佳。

網絡流量

? netstat -antp | grep ESTABLISHED(檢查 active 連接)
? ss -s(統計TCP連接數)
? 風險閾值TIME_WAIT連接數>1000可能需調整tcp_fin_timeout

三、數據庫內部健康度

全局狀態

? SHOW GLOBAL STATUS;(關鍵指標解析):
? Threads_connected(當前連接數 vs max_connections
? Queries_per_second(QPS趨勢)
? Slow_queries(慢查詢數量)

? SHOW ENGINE INNODB STATUS;(分析事務、鎖、死鎖):
? 檢查Innodb_row_lock_waits(行級鎖等待)
? Innodb_trx(活躍事務數)

慢查詢監控

? 啟用慢查詢日志:slow_query_log=1 + long_query_time=2
? 分析工具:pt-query-digest /var/log/mysql/slow.log
? 優化方向:索引缺失、臨時表使用、全表掃描。

鎖與并發

? SHOW STATUS LIKE 'innodb_lock_waits';(鎖等待事件)
? INFORMATION_SCHEMA.INNODB_TRX(查看長事務):
? trx_stateRUNNING且持續時間過長需終止。

四、存儲引擎健康

InnoDB引擎

? 表空間文件檢查:

SELECT file_name, tablespace_name, ROUND((data_length + index_length)/1024/1024, 2) AS size_mb 
FROM information_schema.tables 
WHERE engine='InnoDB';

? 自適應哈希索引命中率:SHOW ENGINE INNODB STATUS LIKE 'adaptive_hash_index';
? 風險點ibdata1文件過大時考慮表空間拆分。

MyISAM引擎

? CHECK TABLE <table_name>(修復表損壞)
? ANALYZE TABLE(更新統計信息)

五、日志與備份

  1. 錯誤日志
    ? 檢查/var/log/mysql/error.log中的警告/錯誤(如主鍵沖突、連接拒絕)。

  2. 二進制日志
    ? SHOW MASTER STATUS;(確認binlog寫入位置)
    ? PURGE BINARY LOGS BEFORE '<date>';(清理舊日志)

  3. 備份驗證
    ? 物理備份:xtrabackup --check --backup-dir=/path
    ? 邏輯備份:mysqlcheck --all-databases --auto-repair

六、安全與權限

? SHOW GRANTS FOR USER '<user>'@'host';(最小權限原則)
? mysql_secure_installation(加固配置)
? 授權審計:定期清理過期賬戶。

七、高可用性檢查

主從復制

? SHOW SLAVE STATUS\G(檢查Slave_IO_RunningSlave_SQL_Running
? 延遲監控:SHOW MASTER STATUS vs SHOW SLAVE STATUSRelay_Master_Log_FileExec_Master_Log_Pos
? 工具推薦:Percona Toolkit的pt-table-checksum校驗數據一致性。

集群狀態(MySQL Group Replication/InnoDB Cluster)

? SELECT * FROM mysql.group_replication_members;(節點健康)
? 集群控制節點(CN)日志:/var/log/mysql/innodb-cluster.log

八、自動化監控建議

  1. Prometheus + MySQL Exporter
    ? 拉取指標:up{job="mysql", instance="localhost"}(服務狀態)
    ? 關鍵告警:QPS突增、慢查詢率>5%、鎖等待超時。

  2. 自定義腳本
    ? 示例:監控連接數腳本:

    mysql -e "SHOW STATUS LIKE 'Threads_connected'" | awk '/Threads_connected/ {print $2}'
    
  3. 巡檢工具
    ? Percona Monitoring and Management (PMM)
    ? Datadog MySQL Integration

九、維護與調優建議

  1. 定期優化
    ? OPTIMIZE TABLE(整理碎片)
    ? ALTER TABLE ... ENGINE=InnoDB(遷移MyISAM表)

  2. 參數調優示例
    ? 根據內存調整InnoDB緩沖池:

    innodb_buffer_pool_size = (70-80% of total RAM)
    innodb_log_file_size = 256M
    

    ? 限制并發連接:

    max_connections = 500
    thread_pool_size = 16
    
  3. 版本升級
    ? 評估MySQL 8.0的特性(如窗口函數、資源組管理)對業務的影響。

十、附錄:關鍵命令速查

-- 查看實時線程狀態
SHOW PROCESSLIST;-- 獲取InnoDB指標
SHOW ENGINE INNODB STATUS LIKE 'innodb_';-- 分析慢查詢
SELECT * FROM sys.slow_log;

通過以上清單,可系統性排查MySQL性能瓶頸與潛在風險。建議結合自動化工具實現持續監控,并根據業務增長動態調整資源配置。若遇到復雜問題(如死鎖風暴、內存泄漏),建議啟用innodb_force_recovery模式并聯系專業支持。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/898015.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898015.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898015.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python進階編程總結

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;…

Redis復制(replica)主從模式

Redis主從復制 Redis 的復制&#xff08;replication&#xff09;功能允許用戶根據一個 Redis 服務器來創建任意多個該服務器的復制品&#xff0c;其中被復制的服務器為主服務器&#xff08;master&#xff09;&#xff0c;而通過復制創建出來的服務器復制品則為從服務器&#…

Adobe Premiere Pro2023配置要求

Windows 系統 最低配置 處理器&#xff1a;Intel 第六代或更新版本的 CPU&#xff0c;或 AMD Ryzen? 1000 系列或更新版本的 CPU&#xff0c;需要支持 Advanced Vector Extensions 2&#xff08;AVX2&#xff09;。操作系統&#xff1a;Windows 10&#xff08;64 位&#xff…

【Kubernets】Deployment 和 StatefulSet 有什么區別?什么時候用 StatefulSet?

Deployment 和 StatefulSet 的區別 在 Kubernetes 中&#xff0c;Deployment 和 StatefulSet 都用于管理 Pod&#xff0c;但它們適用于不同的場景。 1. Deployment&#xff1a;管理無狀態應用 特點&#xff1a; 無狀態&#xff1a;Pod 之間相互獨立&#xff0c;不需要保持順…

R語言零基礎系列教程-03-RStudio界面介紹與關鍵設置

代碼、講義、軟件回復【R語言03】獲取。 設置位置: 菜單欄 - Tools - Blobal Options 設置 通用設置 設置面板左側General選項 版本選擇: 一般只用一個版本即可 默認工作目錄設置: 你希望RStudio打開時是基于哪個目錄進行工作可以不設置, 因為腳本一般都是放置在特定項目路…

車載以太網測試-9【網絡層】-子網劃分的子網掩碼VLAN

目錄 1 摘要2 子網劃分2.1 子網掩碼2.2 VLAN&#xff08;虛擬局域網&#xff09;2.2.1 IEEE 802.1Q VLAN標簽2.2.1.1 VLAN標簽的結構2.2.1.2 VLAN標簽的插入2.2.1.3 VLAN標簽的處理2.1.2.4 PVID&#xff08;Port VLAN Identifier&#xff09; 和 VID&#xff08;VLAN Identifie…

微信小程序刷題邏輯實現:技術揭秘與實踐分享

頁面展示&#xff1a; 概述 在當今數字化學習的浪潮中&#xff0c;微信小程序以其便捷性和實用性&#xff0c;成為了眾多學習者刷題備考的得力工具。今天&#xff0c;我們就來深入剖析一個微信小程序刷題功能的實現邏輯&#xff0c;從代碼層面揭開其神秘面紗。 小程序界面布局…

JVM--垃圾回收

垃圾回收的概念 垃圾回收主要針對的是堆中的對象&#xff0c;堆是一個共享的區域&#xff0c;創建的對象和數組都放在這個位置。但是我們不能一直的創建對象&#xff0c;也不是所有的對象能一直存放&#xff0c;如果不進行垃圾回收&#xff0c;內存遲早會耗盡&#xff0c;及時…

【教程】繼承中的訪問控制 C++

目錄 簡介public&#xff0c;protected 和 private繼承中的 public&#xff0c;protected 和 private示例 簡介 在 C 中派生類可以通過 public&#xff0c;protected 和 private 三種修飾符決定基類成員在派生類中的訪問級別 public&#xff0c;protected 和 private 公有成…

【2025】基于python+django的駕校招生培訓管理系統(源碼、萬字文檔、圖文修改、調試答疑)

課題功能結構圖如下&#xff1a; 駕校招生培訓管理系統設計 一、課題背景 隨著機動車保有量的不斷增加&#xff0c;人們對駕駛技能的需求也日益增長。駕校作為駕駛培訓的主要機構&#xff0c;面臨著激烈的市場競爭和學員需求多樣化等挑戰。傳統的駕校管理模式往往依賴于人工操作…

要登錄的設備ip未知時的處理方法

目錄 1 應用場景... 1 2 解決方法&#xff1a;... 1 2.1 wireshark設置... 1 2.2 獲取網口mac地址&#xff0c;wireshark抓包前預過濾掉自身mac地址的影響。... 2 2.3 pc網口和設備對接... 3 2.3.1 情況1&#xff1a;... 3 2.3.2 情…

一.ffmpeg打開麥克風,錄制音頻并重采樣

一.windows windows下使用msys編譯ffmpeg&#xff0c;先編譯libx264和libx265&#xff0c;然后編譯ffmpeg的時候需要添加這兩個庫的路徑才能--enable&#xff1b;為什么ffplay--enable了還是沒有呢&#xff0c;仔細看編譯打印&#xff0c;可能剛有一段報錯提示SDL找不到&#…

go 安裝swagger

1、依賴安裝&#xff1a; # 安裝 swag 命令行工具 go install github.com/swaggo/swag/cmd/swaglatest# 安裝 gin-swagger 和 swagger 文件的依賴 go get -u github.com/swaggo/gin-swagger go get -u github.com/swaggo/files 2、測試 cmd中輸入&#xff1a; swag -v 如果…

網絡安全反滲透 網絡安全攻防滲透

網絡滲透防范主要從兩個方面來進行防范&#xff0c;一方面是從思想意識上進行防范&#xff0c;另一方面就是從技術方面來進行防范。 1.從思想意識上防范滲透 網絡攻擊與網絡安全防御是正反兩個方面&#xff0c;縱觀容易出現網絡安全事故或者事件的公司和個人&#xff0c;在這些…

java泛型通配符?及上下界(extends,super)保證安全性、靈活性、可讀性

在 Java 中&#xff0c;泛型通配符&#xff08;?&#xff09;用于表示未知類型&#xff0c;通常用于增強泛型的靈活性。通配符可以與上下限結合使用&#xff0c;以限制泛型的范圍。以下是通配符及上下限的使用示例&#xff1a; 1. 無界通配符 (?) 無界通配符表示可以接受任意…

技術視界|構建理想仿真平臺,加速機器人智能化落地

在近期的 OpenLoong 線下技術分享會 上&#xff0c;松應科技聯合創始人張小波進行了精彩的演講&#xff0c;深入探討了仿真技術在機器人智能化發展中的關鍵作用。他結合行業趨勢&#xff0c;剖析了現有仿真平臺的挑戰&#xff0c;并描繪了未來理想仿真系統的設計理念與實現路徑…

uniapp-x 之useAttrs只讀

數據類型&#xff1a; useAttrs在web端拿到的是obj&#xff0c;app拿到的是map 是否可以修改內部元素&#xff1a; 否&#xff0c;只讀 這意味著你想這樣寫代碼將會無效 let attrsuseAttrs();console.log("attrs",attrs, attrs instanceof Map)//appif(attrs ins…

Python 正則表達式模塊 re

Python 正則表達式模塊 re flyfish 一、正則表達式基礎 1. 什么是正則表達式&#xff1f; 正則表達式&#xff08;Regular Expression, RE&#xff09;是一種用于匹配、查找和替換文本模式的工具&#xff0c;由普通字符&#xff08;如字母、數字&#xff09;和特殊字符&…

【商城實戰(33)】解鎖版本迭代與更新策略

【商城實戰】專欄重磅來襲&#xff01;這是一份專為開發者與電商從業者打造的超詳細指南。從項目基礎搭建&#xff0c;運用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用戶、商品、訂單等核心模塊開發&#xff0c;再到性能優化、安全加固、多端適配&#xf…

環境配置 | 5分鐘極簡Git入門:從零上手版本控制

你是否剛接觸Git&#xff1f;別擔心&#xff01;這篇指南將用最簡單的步驟帶你掌握Git核心操作&#xff0c;快速開啟版本控制之旅&#xff01;? 1.git在win10上的下載安裝 1.1.下載git 打開官方網站 Git - Downloadshttps://git-scm.com/downloads ? ?? 1.2.git安裝 …