外观
MySQL 故障排查工具使用
MySQL 故障排查是 DBA 日常工作的重要组成部分,而选择合适的工具可以显著提高故障排查的效率和准确性。本文将详细介绍 MySQL 故障排查常用的工具,包括内置工具、第三方工具、监控工具、备份恢复工具和性能分析工具,帮助 DBA 掌握这些工具的使用方法,有效诊断和解决数据库故障。
内置工具
SHOW 命令
作用:显示 MySQL 服务器的各种状态和配置信息
常用命令:
SHOW STATUS:显示服务器状态信息SHOW VARIABLES:显示服务器配置参数SHOW PROCESSLIST:显示当前线程列表SHOW ENGINE INNODB STATUS:显示 InnoDB 引擎状态SHOW SLAVE STATUS:显示主从复制状态SHOW TABLE STATUS:显示表状态SHOW INDEX:显示表的索引信息
示例:
sql
-- 查看连接相关状态
SHOW GLOBAL STATUS LIKE 'Threads_%';
-- 查看当前运行的查询
SHOW FULL PROCESSLIST;
-- 查看 InnoDB 状态
SHOW ENGINE INNODB STATUS\G;
-- 查看主从复制状态
SHOW SLAVE STATUS\G;SELECT 命令查询系统表
作用:从系统表中查询详细的数据库信息
常用系统表:
information_schema:提供数据库元数据performance_schema:提供性能监控数据sys:基于前两者的高级监控视图
示例:
sql
-- 从 information_schema 中查询表信息
SELECT * FROM information_schema.tables WHERE table_schema = 'mydb';
-- 从 performance_schema 中查询慢查询
SELECT * FROM performance_schema.events_statements_summary_by_digest ORDER BY sum_timer_wait DESC LIMIT 10;
-- 从 sys 架构中查询锁等待
SELECT * FROM sys.innodb_lock_waits;mysqladmin 工具
作用:管理 MySQL 服务器的命令行工具
常用命令:
bash
# 查看服务器状态
mysqladmin -u root -p status
# 查看变量
mysqladmin -u root -p variables
# 刷新日志
mysqladmin -u root -p flush-logs
# 关闭服务器
mysqladmin -u root -p shutdown
# 检查服务器健康状态
mysqladmin -u root -p pingmysqlbinlog 工具
作用:查看和解析二进制日志
常用命令:
bash
# 查看二进制日志列表
mysqlbinlog --list
# 查看二进制日志内容
mysqlbinlog mysql-bin.000001
# 按时间范围查看
mysqlbinlog --start-datetime="2023-01-01 00:00:00" --stop-datetime="2023-01-02 00:00:00" mysql-bin.000001
# 输出为 SQL 语句,用于恢复
mysqlbinlog mysql-bin.000001 > binlog.sqlmysqldumpslow 工具
作用:分析慢查询日志
常用命令:
bash
# 按执行时间排序,显示前 10 条
mysqldumpslow -s t -t 10 /var/lib/mysql/slow.log
# 按锁定时间排序
mysqldumpslow -s l -t 10 /var/lib/mysql/slow.log
# 按查询次数排序
mysqldumpslow -s c -t 10 /var/lib/mysql/slow.log
# 只显示 SELECT 语句
mysqldumpslow -s t -t 10 -g "SELECT" /var/lib/mysql/slow.log第三方工具
Percona Toolkit
简介:Percona Toolkit 是一套用于 MySQL 数据库管理和性能优化的开源工具集,包含 30 多个实用工具。
安装方法:
bash
# Debian/Ubuntu
apt-get install percona-toolkit
# CentOS/RHEL
yum install percona-toolkit
# 源码安装
git clone https://github.com/percona/percona-toolkit.git
cd percona-toolkit
perl Makefile.PL
make
make installpt-query-digest
作用:分析慢查询日志、二进制日志和通用查询日志
常用命令:
bash
# 分析慢查询日志
pt-query-digest /var/lib/mysql/slow.log > slow_report.txt
# 分析二进制日志
pt-query-digest --type=binlog mysql-bin.000001 > binlog_report.txt
# 分析通用查询日志
pt-query-digest --type=genlog /var/lib/mysql/general.log > genlog_report.txt
# 实时分析慢查询
pt-query-digest --processlist h=localhost,u=root,p=password --interval=5 > realtime_report.txtpt-table-checksum
作用:检查主从库数据一致性
常用命令:
bash
# 检查主库数据一致性,从库自动检测
pt-table-checksum --host=master-ip --user=root --password=password
# 只检查特定数据库
pt-table-checksum --host=master-ip --user=root --password=password --databases=mydb
# 只检查特定表
pt-table-checksum --host=master-ip --user=root --password=password --tables=mydb.orderspt-table-sync
作用:同步主从库数据,修复数据不一致
常用命令:
bash
# 查看需要同步的语句,不执行
pt-table-sync --dry-run --verbose --sync-to-master h=slave-ip,u=root,p=password
# 执行同步,修复数据不一致
pt-table-sync --execute --verbose --sync-to-master h=slave-ip,u=root,p=password
# 只同步特定表
pt-table-sync --execute --verbose --sync-to-master h=slave-ip,u=root,p=password --tables=mydb.orderspt-archiver
作用:归档表数据,删除旧数据
常用命令:
bash
# 归档 orders 表中 2022 年以前的数据到 archive_orders 表
pt-archiver --source h=localhost,D=mydb,t=orders --where "order_date < '2023-01-01'" --dest h=localhost,D=mydb,t=archive_orders --limit 1000 --commit-each
# 直接删除旧数据,不归档
pt-archiver --source h=localhost,D=mydb,t=orders --where "order_date < '2022-01-01'" --purge --limit 1000 --commit-eachpt-index-usage
作用:分析查询对索引的使用情况
常用命令:
bash
# 分析慢查询日志中的索引使用
pt-index-usage /var/lib/mysql/slow.log --host=localhost --user=root --password=password
# 分析二进制日志中的索引使用
pt-index-usage --type=binlog mysql-bin.000001 --host=localhost --user=root --password=passwordPercona XtraBackup
作用:开源的 MySQL 热备份工具,支持在线备份和增量备份
安装方法:
bash
# Debian/Ubuntu
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
apt-get update
apt-get install percona-xtrabackup-80
# CentOS/RHEL
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install percona-xtrabackup-80常用命令:
bash
# 全量备份
xtrabackup --backup --target-dir=/backup/full --user=root --password=password
# 增量备份,基于上次全量备份
xtrabackup --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/full --user=root --password=password
# 增量备份,基于上次增量备份
xtrabackup --backup --target-dir=/backup/inc2 --incremental-basedir=/backup/inc1 --user=root --password=password
# 准备全量备份
xtrabackup --prepare --target-dir=/backup/full
# 准备增量备份
xtrabackup --prepare --apply-log-only --target-dir=/backup/full
xtrabackup --prepare --apply-log-only --target-dir=/backup/full --incremental-dir=/backup/inc1
xtrabackup --prepare --target-dir=/backup/full --incremental-dir=/backup/inc2
# 恢复备份
xtrabackup --copy-back --target-dir=/backup/full --datadir=/var/lib/mysqlMyDumper
作用:高性能的 MySQL 备份和恢复工具,支持并行备份
安装方法:
bash
# Debian/Ubuntu
apt-get install mydumper
# CentOS/RHEL
yum install mydumper
# 源码安装
git clone https://github.com/maxbube/mydumper.git
cd mydumper
cmake .
make
make install常用命令:
bash
# 全量备份
mydumper --host=localhost --user=root --password=password --outputdir=/backup/mydumper --compress
# 只备份特定数据库
mydumper --host=localhost --user=root --password=password --outputdir=/backup/mydumper --databases=mydb --compress
# 只备份特定表
mydumper --host=localhost --user=root --password=password --outputdir=/backup/mydumper --tables=mydb.orders --compress
# 恢复备份
myloader --host=localhost --user=root --password=password --directory=/backup/mydumper --overwrite-tables监控工具
Prometheus + Grafana
作用:开源的监控和可视化平台,用于监控 MySQL 性能指标
组件:
- Prometheus:时间序列数据库,收集和存储监控指标
- MySQL Exporter:收集 MySQL 性能指标,暴露给 Prometheus
- Grafana:可视化监控指标,创建仪表盘
安装和配置:
- 安装 Prometheus
- 安装 MySQL Exporter
- 配置 Prometheus 采集 MySQL Exporter 指标
- 安装 Grafana
- 配置 Grafana 连接 Prometheus
- 导入 MySQL 监控仪表盘
常用 MySQL 监控指标:
- 连接数:
mysql_global_status_threads_connected - 查询数:
mysql_global_status_questions - 慢查询数:
mysql_global_status_slow_queries - 缓冲池命中率:
mysql_global_status_innodb_buffer_pool_read_requests/mysql_global_status_innodb_buffer_pool_reads - 锁等待时间:
mysql_global_status_innodb_row_lock_time
Zabbix
作用:企业级开源监控解决方案,支持 MySQL 监控
安装和配置:
- 安装 Zabbix Server
- 安装 Zabbix Agent 到 MySQL 服务器
- 配置 Zabbix Agent 监控 MySQL
- 导入 MySQL 监控模板
- 配置告警规则
常用 MySQL 监控项:
- MySQL 服务状态
- 连接数
- 查询数
- 慢查询数
- 缓冲池使用率
- 锁等待数
Nagios
作用:传统的开源监控系统,支持 MySQL 监控
安装和配置:
- 安装 Nagios Core
- 安装 Nagios Plugins
- 安装 MySQL 监控插件
check_mysql - 配置 Nagios 监控 MySQL
- 配置告警规则
常用 MySQL 监控命令:
bash
# 检查 MySQL 连接
check_mysql -H localhost -u root -p password
# 检查 MySQL 查询时间
check_mysql_query -H localhost -u root -p password -q "SELECT 1" -w 1 -c 5
# 检查 MySQL 慢查询数
check_mysql -H localhost -u root -p password -S slow_queries -w 10 -c 50性能分析工具
pt-query-digest
作用:分析慢查询日志和二进制日志,识别性能瓶颈
详细使用方法见上文
mysqlsla
作用:慢查询日志分析工具,生成汇总报告
安装方法:
bash
# Debian/Ubuntu
apt-get install mysqlsla
# CentOS/RHEL
yum install mysqlsla常用命令:
bash
# 分析慢查询日志
mysqlsla -lt slow /var/lib/mysql/slow.log
# 分析并输出 HTML 报告
mysqlsla -lt slow /var/lib/mysql/slow.log -o html > slow_report.htmlMySQL Workbench
作用:MySQL 官方的图形化管理工具,提供性能分析功能
主要功能:
- 可视化查询执行计划
- 性能仪表盘
- 慢查询日志分析
- 索引分析
- 表分析
使用方法:
- 下载并安装 MySQL Workbench
- 连接到 MySQL 服务器
- 打开 Performance 选项卡
- 使用 Dashboard 查看实时性能指标
- 使用 Query Analyzer 分析查询
- 使用 Index Advisor 优化索引
FlameGraph
作用:生成火焰图,可视化性能分析结果
安装和使用:
- 安装 FlameGraph
- 使用
perf工具收集 MySQL 性能数据 - 生成火焰图
- 分析火焰图,识别性能瓶颈
示例:
bash
# 安装 FlameGraph
git clone https://github.com/brendangregg/FlameGraph.git
# 使用 perf 收集数据
perf record -F 99 -p $(pgrep -x mysqld) -g -- sleep 30
# 生成火焰图
perf script | ./FlameGraph/stackcollapse-perf.pl > out.perf-folded
./FlameGraph/flamegraph.pl out.perf-folded > mysql-perf.svg安全工具
mysql_secure_installation
作用:提高 MySQL 服务器安全性的脚本
使用方法:
bash
mysql_secure_installation主要功能:
- 设置 root 密码
- 移除匿名用户
- 禁止 root 远程登录
- 移除测试数据库
- 刷新权限表
Percona Toolkit pt-secure-collect
作用:安全地收集 MySQL 服务器信息,用于诊断
常用命令:
bash
# 收集服务器信息
pt-secure-collect --host=localhost --user=root --password=password > server_info.txt版本差异与特性
MySQL 5.6
- 基础的 Performance Schema 支持,功能有限
- 不支持 sys schema
- 有限的内置监控指标
- 不支持基于组提交的并行复制
- 支持基于库的并行复制
- 支持半同步复制(实验性)
- 支持 GTID(实验性)
- 支持 Online DDL
MySQL 5.7
- 增强的 Performance Schema,支持更多监控指标
- 引入 sys schema,提供更简单的监控视图
- 增强的半同步复制
- 稳定的 GTID 支持
- 支持基于组提交的并行复制(LOGICAL_CLOCK)
- 支持多源复制
- 支持 replica 角色(替代 slave 术语)
- 增强的 Online DDL
MySQL 8.0
- 增强的 Performance Schema,提供更详细的监控数据
- 增强的 sys schema,提供更多诊断视图
- 增强的半同步复制(无损半同步)
- 增强的 GTID 支持
- 支持基于写集的并行复制(WRITESET)
- 支持并行复制的动态调整
- 支持 replica 术语替换 slave 术语
- 支持多源复制的增强功能
- 引入角色管理
- 增强的加密功能
- 增强的审计功能
故障排查工具最佳实践
工具选择原则
- 根据需求选择工具:根据故障类型和排查目标选择合适的工具
- 优先使用内置工具:内置工具无需额外安装,使用方便
- 熟练掌握常用工具:深入学习和使用 2-3 个核心工具
- 结合多种工具使用:不同工具提供不同视角,结合使用效果更好
- 考虑工具性能影响:避免在生产环境使用性能开销大的工具
工具使用最佳实践
- 定期更新工具:保持工具版本最新,获取新功能和 bug 修复
- 测试工具在非生产环境:在测试环境验证工具效果和性能
- 备份数据:在执行修改操作前,先备份数据
- 记录操作过程:记录工具使用命令和输出,便于后续分析
- 遵循最小权限原则:使用最小权限用户运行工具
- 监控工具运行状态:监控工具运行对系统性能的影响
构建故障排查工具链
- 监控工具:实时监控数据库状态,及时发现异常
- 日志分析工具:分析错误日志、慢查询日志,定位问题
- 性能分析工具:分析查询执行计划,优化性能
- 备份恢复工具:确保数据安全,支持灾难恢复
- 一致性检查工具:确保主从数据一致
- 安全工具:保障数据库安全
自动化工具使用
- 编写脚本:自动化常用工具的使用
- 配置 cron 任务:定期执行工具,生成报告
- 集成到监控系统:将工具输出集成到监控系统
- 使用配置管理工具:使用 Ansible、Puppet 等管理工具配置
故障排查工具自动脚本
bash
#!/bin/bash
# MySQL 故障排查工具自动脚本
MYSQL_HOST="localhost"
MYSQL_PORT="3306"
MYSQL_USER="root"
MYSQL_PASS="password"
REPORT_DIR="/var/reports/mysql/troubleshooting"
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
REPORT_FILE="$REPORT_DIR/troubleshooting_report_$DATE.txt"
# 确保报告目录存在
mkdir -p $REPORT_DIR
# 初始化报告
echo "MySQL 故障排查工具报告" > $REPORT_FILE
echo "生成时间: $DATE" >> $REPORT_FILE
echo "=========================" >> $REPORT_FILE
echo "" >> $REPORT_FILE
# 1. 服务器基本信息
echo "1. 服务器基本信息" >> $REPORT_FILE
echo "-------------------" >> $REPORT_FILE
echo "操作系统信息:" >> $REPORT_FILE
uname -a >> $REPORT_FILE
echo "CPU 信息:" >> $REPORT_FILE
lscpu | head -20 >> $REPORT_FILE
echo "内存信息:" >> $REPORT_FILE
free -h >> $REPORT_FILE
echo "磁盘信息:" >> $REPORT_FILE
df -h >> $REPORT_FILE
echo "" >> $REPORT_FILE
# 2. MySQL 基本状态
echo "2. MySQL 基本状态" >> $REPORT_FILE
echo "-------------------" >> $REPORT_FILE
echo "MySQL 版本:" >> $REPORT_FILE
mysql -u $MYSQL_USER -p$MYSQL_PASS -h $MYSQL_HOST -P $MYSQL_PORT -e "SELECT VERSION();" >> $REPORT_FILE
echo "MySQL 状态:" >> $REPORT_FILE
mysql -u $MYSQL_USER -p$MYSQL_PASS -h $MYSQL_HOST -P $MYSQL_PORT -e "SHOW GLOBAL STATUS LIKE 'Uptime'; SHOW GLOBAL STATUS LIKE 'Threads_%'; SHOW GLOBAL STATUS LIKE 'Queries';" >> $REPORT_FILE
echo "" >> $REPORT_FILE
# 3. 慢查询分析
echo "3. 慢查询分析" >> $REPORT_FILE
echo "-------------------" >> $REPORT_FILE
if [ -f /var/lib/mysql/slow.log ]; then
echo "慢查询日志基本信息:" >> $REPORT_FILE
ls -lh /var/lib/mysql/slow.log >> $REPORT_FILE
echo "慢查询TOP 5:" >> $REPORT_FILE
mysqldumpslow -s t -t 5 /var/lib/mysql/slow.log >> $REPORT_FILE
else
echo "慢查询日志不存在或未启用" >> $REPORT_FILE
fi
echo "" >> $REPORT_FILE
# 4. 锁等待分析
echo "4. 锁等待分析" >> $REPORT_FILE
echo "-------------------" >> $REPORT_FILE
echo "当前锁等待情况:" >> $REPORT_FILE
mysql -u $MYSQL_USER -p$MYSQL_PASS -h $MYSQL_HOST -P $MYSQL_PORT -e "SELECT * FROM sys.innodb_lock_waits LIMIT 5;" >> $REPORT_FILE
echo "" >> $REPORT_FILE
# 5. 复制状态分析
echo "5. 复制状态分析" >> $REPORT_FILE
echo "-------------------" >> $REPORT_FILE
SLAVE_STATUS=$(mysql -u $MYSQL_USER -p$MYSQL_PASS -h $MYSQL_HOST -P $MYSQL_PORT -e "SHOW SLAVE STATUS\G" 2>/dev/null)
if [ $? -eq 0 ] && [ ! -z "$SLAVE_STATUS" ]; then
echo "从库状态:" >> $REPORT_FILE
echo "$SLAVE_STATUS" | grep -E "Slave_IO_Running|Slave_SQL_Running|Seconds_Behind_Master|Master_Host|Master_Port" >> $REPORT_FILE
else
echo "未配置主从复制或从库状态查询失败" >> $REPORT_FILE
fi
echo "" >> $REPORT_FILE
# 6. 性能 Schema 分析
echo "6. 性能 Schema 分析" >> $REPORT_FILE
echo "-------------------" >> $REPORT_FILE
echo "慢查询语句TOP 5:" >> $REPORT_FILE
mysql -u $MYSQL_USER -p$MYSQL_PASS -h $MYSQL_HOST -P $MYSQL_PORT -e "SELECT * FROM performance_schema.events_statements_summary_by_digest ORDER BY sum_timer_wait DESC LIMIT 5;" >> $REPORT_FILE
echo "" >> $REPORT_FILE
# 7. 索引使用分析
echo "7. 索引使用分析" >> $REPORT_FILE
echo "-------------------" >> $REPORT_FILE
echo "未使用的索引(示例):" >> $REPORT_FILE
mysql -u $MYSQL_USER -p$MYSQL_PASS -h $MYSQL_HOST -P $MYSQL_PORT -e "SELECT * FROM sys.schema_unused_indexes LIMIT 5;" >> $REPORT_FILE
echo "" >> $REPORT_FILE
# 8. 表空间分析
echo "8. 表空间分析" >> $REPORT_FILE
echo "-------------------" >> $REPORT_FILE
echo "最大的表TOP 5:" >> $REPORT_FILE
mysql -u $MYSQL_USER -p$MYSQL_PASS -h $MYSQL_HOST -P $MYSQL_PORT -e "SELECT table_schema, table_name, round(((data_length + index_length) / 1024 / 1024), 2) AS 'Size (MB)' FROM information_schema.tables ORDER BY (data_length + index_length) DESC LIMIT 5;" >> $REPORT_FILE
echo "" >> $REPORT_FILE
# 9. 服务器负载分析
echo "9. 服务器负载分析" >> $REPORT_FILE
echo "-------------------" >> $REPORT_FILE
echo "CPU 使用率:" >> $REPORT_FILE
top -bn1 | grep "Cpu(s)" >> $REPORT_FILE
echo "磁盘 I/O:" >> $REPORT_FILE
iostat -x 1 5 | tail -n 5 >> $REPORT_FILE
echo "" >> $REPORT_FILE
echo "故障排查工具报告生成完成: $REPORT_FILE"案例分析
使用 pt-query-digest 优化慢查询
问题描述:电商平台订单查询页面响应缓慢,用户体验差
解决步骤:
- 使用 pt-query-digest 分析慢查询日志bash
pt-query-digest /var/lib/mysql/slow.log > slow_report.txt - 分析报告,发现订单查询语句执行时间超过 5 秒sql
SELECT * FROM orders WHERE customer_id = 1000 AND order_date > '2023-01-01'; - 查看执行计划,发现全表扫描sql
EXPLAIN SELECT * FROM orders WHERE customer_id = 1000 AND order_date > '2023-01-01'; -- 结果:type = ALL(全表扫描) - 为 customer_id 和 order_date 添加复合索引sql
CREATE INDEX idx_orders_customer_date ON orders(customer_id, order_date); - 再次分析执行计划,发现使用了索引sql
EXPLAIN SELECT * FROM orders WHERE customer_id = 1000 AND order_date > '2023-01-01'; -- 结果:type = range(范围扫描) - 监控慢查询日志,确认该查询不再被记录
优化效果:
- 订单查询时间从 5 秒降低到 0.1 秒
- 页面响应速度显著提升
- 用户体验得到改善
使用 pt-table-checksum 和 pt-table-sync 修复主从数据不一致
问题描述:主从库数据不一致,从库缺少部分数据
解决步骤:
- 使用 pt-table-checksum 检查主从数据一致性bash
pt-table-checksum --host=master-ip --user=root --password=password - 分析结果,发现 orders 表数据不一致
- 使用 pt-table-sync 查看需要同步的语句bash
pt-table-sync --dry-run --verbose --sync-to-master h=slave-ip,u=root,p=password --tables=mydb.orders - 执行同步,修复数据不一致bash
pt-table-sync --execute --verbose --sync-to-master h=slave-ip,u=root,p=password --tables=mydb.orders - 再次使用 pt-table-checksum 验证数据一致性bash
pt-table-checksum --host=master-ip --user=root --password=password --tables=mydb.orders
优化效果:
- 主从库数据恢复一致
- 复制状态正常
- 建立了定期检查数据一致性的机制
使用 XtraBackup 进行灾难恢复
问题描述:MySQL 服务器磁盘损坏,需要从备份恢复
解决步骤:
- 停止 MySQL 服务bash
systemctl stop mysql - 清理数据目录bash
rm -rf /var/lib/mysql/* - 使用 XtraBackup 恢复最近的全量备份bash
xtrabackup --copy-back --target-dir=/backup/full --datadir=/var/lib/mysql - 设置正确的权限bash
chown -R mysql:mysql /var/lib/mysql - 启动 MySQL 服务bash
systemctl start mysql - 应用增量备份(如果有)
- 验证数据完整性sql
SELECT COUNT(*) FROM orders;
恢复效果:
- 数据库成功恢复
- 数据完整,没有丢失
- 服务恢复正常运行
总结
MySQL 故障排查工具是 DBA 不可或缺的助手,它们能够帮助 DBA 快速定位和解决问题,提高系统的可用性和可靠性。本文介绍了 MySQL 故障排查常用的工具,包括内置工具、第三方工具、监控工具、性能分析工具和安全工具,并通过案例分析展示了这些工具的实际应用。
在实际运维中,DBA 应该:
- 熟练掌握常用工具:深入学习和使用核心工具
- 根据需求选择工具:根据故障类型和排查目标选择合适的工具
- 结合多种工具使用:不同工具提供不同视角,结合使用效果更好
- 遵循最佳实践:安全、高效地使用工具
- 自动化工具使用:提高工作效率,减少人为失误
- 持续学习:关注工具的更新和新工具的出现
- 考虑版本差异:根据 MySQL 版本选择合适的工具和功能
通过不断学习和实践,DBA 可以提高故障排查的效率和准确性,确保数据库系统的高可用性和可靠性。不同 MySQL 版本在故障排查工具方面有不同的特性和支持,DBA 需要根据实际使用的版本选择合适的工具和策略。
