主流数据库运维故障排查卡片式速查表与视觉图谱
主流数据库运维故障排查卡片式速查表与视觉图谱
本文件将主文档内容转化为模块化卡片结构,并补充数据库结构图、排查路径图、锁机制对比等视觉图谱,以便在演示、教学或现场排障中快速引用。
📌 故障卡片速查:连接失败
数据库 | 检查要点 | 工具/命令 | 提示 | |
---|---|---|---|---|
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 应用慢