主流数据库运维故障排查卡片式速查表与视觉图谱
本文件将主文档内容转化为模块化卡片结构,并补充数据库结构图、排查路径图、锁机制对比等视觉图谱,以便在演示、教学或现场排障中快速引用。
📌 故障卡片速查:连接失败
数据库 | 检查要点 | 工具/命令 | 提示 | |
---|---|---|---|---|
MySQL | mysqld 是否运行;bind-address 设置;权限表 (user@host ) |
systemctl status mysql ;SHOW GRANTS |
localhost 默认走 socket |
|
PostgreSQL | listen_addresses , pg_hba.conf 配置 |
`ps aux | grep postgres; pg_isready` |
IP/MASK 需匹配,注意 auth 方法 |
SQL Server | TCP/IP 是否启用;实例名正确;防火墙 | SQL Server 配置管理器;telnet |
默认端口 1433,命名实例需格式 | |
Oracle | Listener 启动;tnsnames.ora , sqlnet.ora 正确 |
lsnrctl status ;tnsping |
ORA-12514 多见于服务名不一致 |
口诀: 连-端-网-权
📌 慢查询分析卡片
数据库 | 常用手段 | 推荐工具/命令 | 优化重点 |
---|---|---|---|
MySQL | 开启慢查询日志;EXPLAIN 分析 | EXPLAIN ANALYZE ;Performance Schema |
避免全表扫,控制子查询 |
PostgreSQL | auto_explain 捕捉执行计划 |
EXPLAIN (ANALYZE, BUFFERS) |
数据类型匹配与统计信息准确 |
SQL Server | 使用执行计划与 DMV | sys.dm_exec_query_stats + query_plan |
避免隐式转换、参数嗅探 |
Oracle | SQL Trace + TKPROF 分析 | DBMS_XPLAN.DISPLAY_CURSOR ;SQL Profile |
并行度、hint、统计信息 |
口诀: 慢-查-索-优
📌 锁等待排查卡片
数据库 | 查看锁信息方法 | 典型排查视图/命令 | 优化技巧 |
---|---|---|---|
MySQL | INNODB STATUS ; Performance Schema |
SHOW ENGINE INNODB STATUS\G |
避免 gap lock,缩事务 |
PostgreSQL | pg_locks , pg_blocking_pids() |
SELECT * FROM pg_locks JOIN pg_stat_activity |
长查询+长事务要拆分 |
SQL Server | dm_tran_locks , dm_os_waiting_tasks |
sys.dm_exec_requests ;Profiler |
使用行版隔离减少冲突 |
Oracle | V$LOCK , V$SESSION , LOCKED_OBJECT |
SELECT * FROM dba_blockers/dba_waiters |
alert 日志含死锁栈信息 |
口诀: 事-锁-索-释
📌 主从延迟诊断卡片
数据库 | 查看同步状态命令 | 延迟字段 | 优化建议 |
---|---|---|---|
MySQL | SHOW SLAVE STATUS\G |
Seconds_Behind_Master |
多线程复制;避免大事务 |
PostgreSQL | pg_stat_replication , replay_lag |
flush_lag , replay_lag |
热备反馈;异步切同步看 sync_state |
SQL Server | dm_hadr_database_replica_states |
redo_queue_size |
分发器性能/日志网络瓶颈 |
Oracle | V$DATAGUARD_STATS , V$ARCHIVE_DEST |
APPLY LAG |
增带宽/并发;定期观测归档堆积 |
口诀: 主-网-从-延
📌 存储瓶颈排查卡片
数据库 | 缓存相关参数 | I/O 检查方法/指标 | 典型优化措施 |
---|---|---|---|
MySQL | innodb_buffer_pool_size |
iostat 、SHOW ENGINE INNODB STATUS |
加大 buffer、调整 flush 策略 |
PostgreSQL | shared_buffers , work_mem |
pg_stat_io , blks_hit/blks_read 比率 |
VACUUM/避免顺扫 |
SQL Server | Buffer Pool, TempDB 使用率 | dm_io_virtual_file_stats , PerfMon |
拆 TempDB;优化日志写 |
Oracle | DB_CACHE_SIZE , LOG_BUFFER |
AWR、V$FILESTAT , V$SYSSTAT 中 I/O wait |
ASM + IOPS 策略调优 |
口诀: 存-IO-缓-满
🔍 可视化图谱(建议配合展示使用)
✅ 锁类型与死锁图谱(跨数据库对比)
MySQL (InnoDB): Record Lock, Gap Lock, Next-Key Lock
PostgreSQL: Row Exclusive, Share, Access Exclusive
SQL Server: RID, PAGE, KEY, TABLE, INTENT 锁
Oracle: TX (行锁), TM (表锁)
🧠 死锁检测原则:等待图 + 回滚成本最低事务优先
✅ InnoDB 存储架构图(简化示意)
+-------------------------+
| Buffer Pool |
| +---------------------+ |
| | Page Cache / Dirty | |
| | Undo / Redo | |
+-------------------------+
↓ Flush
+-------------------------+
| Tablespace (.ibd) |
| Doublewrite Buffer |
+-------------------------+
✅ 主从复制流程图(通用模型)
[主库 Binlog] → [IO Thread] → [Relay Log (从)] → [SQL Thread 执行]
🛠 延迟常见位置:大事务 → Relay 写慢 → SQL 应用慢