MySql巡检脚本

查询MySql所有状态

show global status; 或者select * from `performance_schema`.`global_status`;

检查MySql数据库连接

select * from `performance_schema`.`global_status` where variable_name = 'Aborted_clients'; --由于客户端没有正确关闭连接导致客户端终止而中断的连接数
select * from `performance_schema`.`global_status` where variable_name = 'Aborted_connects'; --试图连接到MySQL服务器而失败的连接数
select * from `performance_schema`.`global_status` where variable_name = 'Max_used_connections';-- 服务器启动后已经同时使用的连接的最大数量
select * from `performance_schema`.`global_variables` where variable_name = 'max_connections'; --最大连接数

检查MySql数据库线程明细

select * from `performance_schema`.`global_status` where variable_name = 'Threads_cached'; --线程缓存内的线程数量
select * from `performance_schema`.`global_status` where variable_name = 'Threads_connected';-- 当前打开的连接数量
select * from `performance_schema`.`global_status` where variable_name = 'Threads_created'; --创建用来处理连接的线程数
select * from `performance_schema`.`global_status` where variable_name = 'Threads_running'; --激活的(非睡眠状态)线程数

检查MySql数据库明细

select schema_name from `information_schema`.`SCHEMATA`; --查询所有数据库
select * from `information_schema`.`TABLES` where table_schema = 数据库名; --查询数据库所有表
检查MySql锁信息
select * from `performance_schema`.`global_status` where variable_name = 'Table_locks_waited'; --等待表锁的次数
select * from `performance_schema`.`global_status` where variable_name = 'Table_locks_immediate';-- 立即获得表锁的次数
select * from `performance_schema`.`global_status` where variable_name = 'Innodb_row_lock_current_waits'; --当前等待锁的行锁数量
select * from `performance_schema`.`global_status` where variable_name = 'Innodb_row_lock_time'; --请求行锁总耗时
select * from `performance_schema`.`global_status` where variable_name = 'Innodb_row_lock_time_avg'; --请求行锁平均耗时
select * from `performance_schema`.`global_status` where variable_name = 'Innodb_row_lock_time_max'; --请求行锁最久耗时
select * from `performance_schema`.`global_status` where variable_name = 'Innodb_row_lock_waits'; --行锁发生次数

检查等待事件

select * from `performance_schema`.`global_status` where variable_name = 'Innodb_buffer_pool_wait_free'; --等待InnoDB缓冲池清空
select * from `performance_schema`.`global_status` where variable_name = 'Innodb_log_waits'; --等待InnoDB日志缓冲区清空

检查MySQL数据库请求缓存命中

select * from `performance_schema`.`global_status` where variable_name = 'Qcache_hits'; --查询缓存被访问的次数
select * from `performance_schema`.`global_status` where variable_name = 'Qcache_total_blocks'; --查询缓存内的总块数
select * from `performance_schema`.`global_status` where variable_name = 'Qcache_free_blocks'; --查询缓存内自由内存块的数量
select * from `performance_schema`.`global_status` where variable_name = 'Qcache_lowmem_prunes'; --由于内存较少从缓存删除的查询数量

检查MySql临时表

select * from `performance_schema`.`global_status` where variable_name = 'Created_tmp_disk_tables';-- 服务器执行语句时在硬盘上自动创建的临时表的数量
select * from `performance_schema`.`global_status` where variable_name = 'Created_tmp_tables';-- 服务器执行语句时自动创建的内存中的临时表的数量
select * from `performance_schema`.`global_status` where variable_name = 'Created_tmp_files'; --mysqld已经创建的临时文件的数量
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL脚本是一种通过Shell脚本编写的工具,用于MySQL数据库的运行状态和配置是否符合预期,并提供相应的报告和建议。 首先,在巡脚本中,我们需要连接到MySQL数据库,可以使用MySQL的命令行工具如mysql或者mysqldump,通过传入用户名、密码和数据库的连接信息来实现连接。 接下来,我们可以通过查询系统表如information_schema或者执行一些特定的命令,获取MySQL数据库的相关信息。这些信息包括数据库的版本、状态、运行时间、连接数、存储引擎使用情况等。 通过分析这些信息,我们可以查数据库的性能瓶颈,如查询慢、锁争用、IO负载等。我们可以使用一些性能分析工具如EXPLAIN、SHOW STATUS、SHOW PROCESSLIST等来获取更详细的性能数据。 此外,巡脚本还可以查数据库的配置参数是否合理。我们可以通过查询或者读取my.cnf配置文件,来验证配置参数如缓冲区大小、并发连接数、日志记录等是否符合最佳实践。 除了性能和配置方面的查,巡脚本还可以执行一些数据完整性和一致性的查。例如,查表的行数是否正确、索引是否存在冗余、约束是否被满足等。 最后,在执行完查逻辑后,巡脚本可以生成一份报告。报告中可以包含查项的执行结果、问题的详细描述和修复建议。可以将报告输出到日志文件或者通过邮件发送给管理员。 总之,MySQL脚本是一种实用的工具,可以帮助管理员自动化MySQL数据库的运行状态和配置,减少人工巡的工作量,并提供及时的问题发现和解决。 ### 回答2: MySQL脚本是一种在Linux或Unix系统上使用的Shell脚本,用于自动执行一系列与MySQL数据库相关的巡任务和诊断操作。这些巡任务包括查数据库的运行状态、性能指标、连接数、数据完整性等,并且可以根据需要进行灵活的配置和定制。 MySQL脚本的主要功能包括以下几个方面: 1. 数据库连接和运行状态查:脚本可以查数据库是否正常运行、是否能够连接,并在数据库出现异常时及时报警。 2. 性能指标监测:可以定期查数据库的性能指标,如CPU利用率、内存利用率、磁盘IO等,以便及时发现潜在的性能问题并采取相应的优化措施。 3. 数据库参数及配置查:脚本可以查数据库的参数设置是否合理,比如是否开启了慢查询日志、是否启用了查询缓存等,以保证数据库的最佳性能。 4. 数据完整性查:可以定期查数据库中的表结构、索引、外键约束等是否完整和一致,以避免数据损坏和不一致的情况发生。 5. 数据库备份和恢复查:脚本可以查数据库的备份策略是否完善,并定期执行恢复测试,以确保备份数据的可用性和完整性。 通过使用MySQL脚本,可以简化数据库巡和监控的工作,提高数据库的可用性和性能,并且能够及时发现和解决潜在的问题,保证数据库系统的稳定运行。 ### 回答3: MySQL脚本Shell是一种自动化脚本,用于监控和MySQL数据库的运行状况。它可以帮助数据库管理员快速发现和解决潜在的问题,以确保数据库的可用性和性能。 MySQL脚本Shell可以执行一系列查来评估数据库的健康状况。它可以查数据库的运行状态,包括连接数、线程使用情况、缓冲区等。它还可以查数据库的性能指标,如查询响应时间、查询缓存命中率等。 通过MySQL脚本Shell,可以收集数据库的关键指标,并生成详细的报告。这些报告可以被用来监控数据库的性能和瓶颈,并在需要时采取相应的措施进行优化。此外,巡脚本还可以创建备份和快照,以防止数据丢失和故障恢复。 MySQL脚本Shell的好处还包括自动化,节省时间和资源。通过定期运行脚本,可以及时发现和解决问题,提高数据库的稳定性和可靠性。此外,巡脚本Shell还可以自定义设置,根据具体需求进行巡和报告生成。 总之,MySQL脚本Shell是一个强大的工具,用于监控和MySQL数据库的运行状况。它可以帮助数据库管理员更加高效地管理和优化数据库,确保其稳定性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值