最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL故障排查與運(yùn)維案例詳解

 更新時(shí)間:2026年04月13日 09:16:42   作者:SPC的存折  
文章討論了MySQL故障排查與運(yùn)維案例,涵蓋了連接類、性能類、復(fù)制類、數(shù)據(jù)恢復(fù)類、高可用故障、存儲(chǔ)引擎故障、內(nèi)存問題、安全相關(guān)、備份恢復(fù)、升級(jí)問題、配置錯(cuò)誤等多方面的故障排查和優(yōu)化方案,同時(shí)提到了一些關(guān)鍵監(jiān)控指標(biāo)和災(zāi)難恢復(fù)流程,感興趣的朋友跟隨小編一起看看吧

MySQL故障排查與運(yùn)維案例全集

一、連接類故障

1. 連接超時(shí)

現(xiàn)象ERROR 2003 (HY000): Can't connect to MySQL server on 'host' (110 "Connection timed out")
排查流程

# 檢查網(wǎng)絡(luò)連通性
nc -zv host 3306
mtr host
# 檢查防火墻
iptables -L -n | grep 3306
# 驗(yàn)證連接數(shù)限制
SHOW VARIABLES LIKE 'max_connections';
SHOW STATUS LIKE 'Threads_connected';

2. 認(rèn)證失敗

案例:升級(jí)后密碼策略變更導(dǎo)致應(yīng)用連接失敗
解決方案

-- 創(chuàng)建傳統(tǒng)認(rèn)證用戶
CREATE USER 'appuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
-- 臨時(shí)降低密碼強(qiáng)度
SET GLOBAL validate_password_policy=LOW;

二、性能類故障

1. CPU 100%問題

診斷步驟

-- 查找高消耗SQL
SELECT * FROM sys.processlist WHERE COMMAND != 'Sleep' ORDER BY TIME DESC;
-- 使用Performance Schema
SELECT * FROM performance_schema.threads WHERE PROCESSLIST_TIME > 60\G
-- 分析慢查詢
SHOW ENGINE INNODB STATUS;

2. 慢查詢優(yōu)化案例

場(chǎng)景:訂單查詢超時(shí)
調(diào)優(yōu)方案

-- 添加復(fù)合索引
ALTER TABLE orders ADD INDEX idx_customer_status (customer_id, status);
-- 重寫查詢語句
SELECT /*+ INDEX(idx_customer_status) */ * FROM orders 
WHERE customer_id=123 AND status IN ('shipped','completed');

三、復(fù)制類故障

1. 主從數(shù)據(jù)不一致

檢測(cè)工具

# 安裝校驗(yàn)工具
wget https://downloads.percona.com/downloads/percona-toolkit/3.5.0/binary/tarball/percona-toolkit-3.5.0_x86_64.tar.gz
# 數(shù)據(jù)一致性校驗(yàn)
pt-table-checksum -h master -u user -p pass --databases mydb

2. 主從延遲

優(yōu)化方案

# my.cnf 優(yōu)化
[mysqld]
slave_parallel_workers = 8
slave_pending_jobs_size_max = 2G
innodb_flush_log_at_trx_commit = 0
sync_binlog = 1000

四、數(shù)據(jù)恢復(fù)類

1. 誤刪除恢復(fù)

步驟

# 停止MySQL服務(wù)
systemctl stop mysqld
# 使用mysqlbinlog恢復(fù)
mysqlbinlog --start-position=107 /var/log/mysql-bin.000001 | mysql -uroot -p
# 使用延時(shí)從庫恢復(fù)
STOP SLAVE;
CHANGE MASTER TO MASTER_DELAY = 3600;
START SLAVE;

2. 分區(qū)表數(shù)據(jù)丟失

案例:DROP PARTITION誤操作
解決方案

-- 從備份恢復(fù)單分區(qū)
ALTER TABLE logs IMPORT PARTITION p202301 
    FROM '/backup/202301_partition.ibd';

五、高可用故障

1. MHA切換失敗

診斷流程

# 檢查SSH互信
masterha_check_ssh --conf=/etc/mha/app1.cnf
# 檢查復(fù)制健康
masterha_check_repl --conf=/etc/mha/app1.cnf
# 查看管理日志
tail -f /var/log/masterha/app1/manager.log

2. InnoDB Cluster腦裂

修復(fù)方案

-- 強(qiáng)制重啟集群
dba.rebootClusterFromCompleteOutage('cluster1');
-- 人工重新組集群
SELECT * FROM performance_schema.replication_group_members;

六、存儲(chǔ)引擎故障

1. InnoDB損壞修復(fù)

修復(fù)步驟

# 強(qiáng)制恢復(fù)模式啟動(dòng)
innodb_force_recovery = 6
# 導(dǎo)出數(shù)據(jù)
mysqldump -uroot -p --all-databases > full_backup.sql
# 重建數(shù)據(jù)庫
mysql_install_db --user=mysql
systemctl start mysqld
mysql -uroot -p < full_backup.sql

七、內(nèi)存問題

1. OOM崩潰

優(yōu)化方案

# my.cnf內(nèi)存優(yōu)化
[mysqld]
innodb_buffer_pool_size=64G
key_buffer_size=0
query_cache_size=0
table_open_cache=20000

八、安全相關(guān)

1. 入侵檢測(cè)

處理流程

-- 查找異常賬號(hào)
SELECT * FROM mysql.user WHERE authentication_string='' \G
-- 檢查數(shù)據(jù)庫文件權(quán)限
ls -l /var/lib/mysql
-- 審計(jì)可疑操作
mysqlbinlog /var/log/mysql-bin.000007 | grep -i 'ALTER\|CREATE\|DROP'

九、備份恢復(fù)

1. 大庫備份優(yōu)化

# Xtrabackup部分備份
xtrabackup --backup --databases="db1 db2" --target-dir=/backup/partial
# mysqldump分片備份
mysqldump -uroot -p db1 | split -b 2G - db1_part_

十、升級(jí)問題

1. 5.7升級(jí)8.0兼容問題

解決方案

-- 開啟兼容SQL模式
SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';
-- 移除廢棄功能
ALTER TABLE mytable ROW_FORMAT=DYNAMIC;

十一、配置錯(cuò)誤

1. 參數(shù)誤設(shè)置

恢復(fù)方法

# 安全模式啟動(dòng),高版本中不可用
mysqld_safe --skip-grant-tables --skip-networking &
# 重置配置
SET GLOBAL max_connections=100;
FLUSH PRIVILEGES;

十二、工具速查表

工具名稱使用場(chǎng)景命令示例
pt-query-digest慢日志分析pt-query-digest slow.log > report.txt
mysqladmin進(jìn)程管理mysqladmin -u root -p processlist
Percona Toolkit運(yùn)維工具包pt-online-schema-change
Mylogger實(shí)時(shí)審計(jì)mylogger -u root -p pass -h localhost
MySQL ShellInnoDB Cluster管理dba.checkInstanceConfiguration()

十三、關(guān)鍵監(jiān)控指標(biāo)

指標(biāo)報(bào)警閾值獲取方式
連接使用率> 85%Threads_connected/max_connections
復(fù)制延遲(秒)> 60SHOW SLAVE STATUS
InnoDB緩沖池命中率< 95%(1 - Innodb_pages_read/Innodb_buffer_pool_read_requests)*100
臨時(shí)表磁盤使用> 1GCreated_tmp_disk_tables
鎖等待時(shí)間(秒)> 5SHOW ENGINE INNODB STATUS

十四、災(zāi)難恢復(fù)流程

  1. 立即停止服務(wù)systemctl stop mysqld
  2. 保護(hù)現(xiàn)場(chǎng):拷貝數(shù)據(jù)目錄和日志文件
  3. 評(píng)估損壞
    innochecksum -v /var/lib/mysql/ibdata1
    mysqlcheck --all-databases
  4. 選擇恢復(fù)方案
    • 從主備份恢復(fù)
    • 使用Binlog增量恢復(fù)
    • 重建數(shù)據(jù)庫結(jié)構(gòu)
  5. 驗(yàn)證完整性pt-table-checksum
  6. 灰度恢復(fù)服務(wù)

十五、最佳實(shí)踐總結(jié)

  1. 備份策略
    • 每天全備 + Binlog實(shí)時(shí)同步
    • 備份恢復(fù)演練每月一次
  2. 高可用架構(gòu)

  1. 參數(shù)調(diào)優(yōu)原則
    • buffer_pool_size = 系統(tǒng)內(nèi)存的70-80%
    • max_connections = (最大連接數(shù)+冗余)
    • sync_binlog = 1 (數(shù)據(jù)安全) / 1000 (性能優(yōu)先)
  2. 安全基線
    • 禁用local-infile
    • 刪除test數(shù)據(jù)庫
    • 啟用SSL連接
    • 審計(jì)插件開啟

黃金準(zhǔn)則:

  1. 任何參數(shù)修改前進(jìn)行SET GLOBAL測(cè)試
  2. 維護(hù)窗口操作必須有回滾計(jì)劃
  3. 生產(chǎn)環(huán)境變更遵循"變更三板斧":方案評(píng)審->灰度實(shí)施->結(jié)果驗(yàn)證

到此這篇關(guān)于MySQL故障排查與運(yùn)維案例的文章就介紹到這了,更多相關(guān)mysql故障排查與運(yùn)維內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

博野县| 宁陕县| 西吉县| 庄浪县| 昌黎县| 厦门市| 全南县| 泽州县| 双牌县| 山西省| 衡阳县| 东阳市| 肥西县| 济南市| 镇康县| 太白县| 依兰县| 恩施市| 尉犁县| 林甸县| 万全县| 瑞安市| 买车| 崇州市| 潮州市| 靖江市| 凉城县| 南皮县| 独山县| 沁阳市| 桐乡市| 温泉县| 万盛区| 姚安县| 鄂州市| 德钦县| 常熟市| 拜城县| 石渠县| 营口市| 精河县|