阿里云服務器數據庫故障排查指南?
以下是針對阿里云服務器(如ECS自建數據庫或阿里云RDS等托管數據庫)的故障排查指南,涵蓋常見問題的定位與解決方案:
一、數據庫連接失敗
-
檢查網絡連通性
-
ECS自建數據庫
-
確認安全組規則放行數據庫端口(如MySQL:3306, Redis:6379)。
-
檢查ECS實例的防火墻(iptables/firewalld)是否允許外部訪問。
-
使用?
telnet <IP> <端口>
?或?nc -zv <IP> <端口>
?測試端口可達性。
-
-
RDS/PolarDB等托管數據庫
-
檢查白名單(IP白名單、安全組)是否包含客戶端IP。
-
確保連接地址正確(區分內網地址與公網地址)。
-
-
-
驗證賬號權限
-
檢查數據庫賬號是否有遠程訪問權限(如MySQL的
user
表Host字段是否為%
)。 -
確認賬號密碼正確,避免因密碼錯誤導致拒絕連接。
-
-
檢查數據庫服務狀態
-
ECS自建數據庫:執行?
systemctl status mysqld
?或?ps -ef | grep mysql
?查看進程是否運行。 -
RDS實例:在控制臺查看實例狀態是否為“運行中”,確認無重啟或遷移操作。
-
-
DNS解析問題
-
若使用域名連接,檢查域名解析是否正常(
nslookup <域名>
?或?ping <域名>
)。
-
二、數據庫性能緩慢
-
資源監控
-
阿里云控制臺監控:查看CPU、內存、磁盤IOPS、連接數是否達到瓶頸。
-
RDS:控制臺 > 監控與報警 > 性能監控。
-
ECS自建:使用?
top
,?htop
,?iostat
,?vmstat
?分析資源占用。
-
-
慢查詢日志
-
MySQL:開啟慢查詢日志(
slow_query_log=ON
),分析?mysqldumpslow
?或阿里云DMS的慢SQL分析工具。 -
MongoDB:使用?
db.setProfilingLevel(1, 100)
?記錄慢查詢。
-
-
鎖等待
-
MySQL:
SHOW ENGINE INNODB STATUS
?查看鎖爭用情況,或查詢?information_schema.INNODB_TRX
。 -
Redis:檢查是否因大量
KEYS *
或復雜命令阻塞服務。
-
-
-
SQL優化
-
使用?
EXPLAIN
?分析查詢執行計劃,檢查是否缺少索引或全表掃描。 -
優化高頻查詢,避免
SELECT *
,減少JOIN復雜度。
-
-
連接池與配置
-
檢查最大連接數(如MySQL的
max_connections
),避免連接耗盡。 -
調整連接池配置(如HikariCP、Druid)避免頻繁創建連接。
-
三、數據異常或丟失
-
主從同步問題(如使用讀寫分離)
-
MySQL:執行?
SHOW SLAVE STATUS
?查看?Slave_IO_Running
?和?Slave_SQL_Running
?狀態。 -
MongoDB:通過?
rs.status()
?檢查副本集狀態。
-
-
數據一致性校驗
-
使用阿里云DBS(數據庫備份服務)進行全量校驗。
-
對關鍵表執行?
CHECKSUM TABLE
(MySQL)或?db.collection.validate()
(MongoDB)。
-
-
事務與回滾
-
檢查是否有未提交的大事務(MySQL的
information_schema.INNODB_TRX
)。 -
確認存儲引擎是否支持事務(如MyISAM不支持事務)。
-
四、磁盤與存儲問題
-
磁盤空間不足
-
檢查數據目錄使用率(
df -h
),清理日志(如Binlog、錯誤日志)或歸檔歷史數據。 -
RDS實例可在控制臺擴容存儲空間。
-
-
磁盤性能瓶頸
-
ECS自建數據庫:升級云盤類型(如SSD->ESSD PL3)。
-
RDS:監控IOPS和吞吐量,升級實例規格或啟用讀寫分離。
-
五、阿里云工具輔助排查
-
數據庫自治服務(DAS)
-
自動提供SQL優化建議、死鎖分析、實時性能監控。
-
-
日志管理
-
RDS:控制臺下載錯誤日志、慢查詢日志、審計日志。
-
ECS自建:通過SLS(日志服務)收集數據庫日志。
-
-
一鍵診斷
-
在RDS控制臺使用“一鍵診斷”功能,自動檢測實例健康狀態。
-
六、災備與恢復
-
備份驗證
-
檢查自動備份是否正常(RDS控制臺 > 備份恢復)。
-
定期執行備份恢復演練。
-
-
數據恢復
-
RDS支持按時間點恢復(PITR),ECS自建可使用XtraBackup(MySQL)或mongodump(MongoDB)恢復。
-
七、聯系阿里云支持
若問題無法定位:
-
提交工單,附上錯誤日志、時間點、問題現象。
-
提供實例ID、錯誤代碼(如MySQL error 1045)。
-
使用阿里云“健康診斷”生成報告并提交。
通過以上步驟,可系統性排查大部分數據庫問題,確保業務快速恢復。