主流数据库运维故障排查卡片式速查表与视觉图谱

发布于:2025-05-17 ⋅ 阅读:(17) ⋅ 点赞:(0)

主流数据库运维故障排查卡片式速查表与视觉图谱

本文件将主文档内容转化为模块化卡片结构,并补充数据库结构图、排查路径图、锁机制对比等视觉图谱,以便在演示、教学或现场排障中快速引用。


📌 故障卡片速查:连接失败

数据库 检查要点 工具/命令 提示
MySQL mysqld 是否运行;bind-address 设置;权限表 (user@host) systemctl status mysqlSHOW GRANTS localhost 默认走 socket
PostgreSQL listen_addresses, pg_hba.conf 配置 `ps aux grep postgrespg_isready` IP/MASK 需匹配,注意 auth 方法
SQL Server TCP/IP 是否启用;实例名正确;防火墙 SQL Server 配置管理器;telnet 默认端口 1433,命名实例需格式
Oracle Listener 启动;tnsnames.ora, sqlnet.ora 正确 lsnrctl statustnsping 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 iostatSHOW 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 应用慢



网站公告

今日签到

点亮在社区的每一天
去签到