前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[1156]MySQL数据库可用性监控脚本

[1156]MySQL数据库可用性监控脚本

作者头像
周小董
发布2022-08-23 15:18:25
1.1K0
发布2022-08-23 15:18:25
举报
文章被收录于专栏:python前行者python前行者

文章目录

MySQL数据库可用性监控脚本

代码语言:javascript
复制
方法一:通过测试账号ping命令返回的信息判断数据库可以通过网络连接

[root@host-39-108-217-12 scripts]# cat mysql-available-status.sh 
#!/bin/bash

MYSQL_PING=`/usr/bin/mysqladmin -uroot -p123456 -P3306 ping`

MYSQL_OK="mysqld is alive"

if [[ "$MYSQL_PING" != "$MYSQL_OK" ]];then

        echo "MySQL is not ok !"
        sleep 5
        systemctl restart mariadb

else

        echo "MySQL is ok !"
fi

可用行

1.监控数据库是否可以连接

方法:

代码语言:javascript
复制
mysqladmin -umonitor_user -p -h ping

telnet ip db_port

2.监控数据库是否可以读写

方法:

  • 检查数据库read_only参数是否为off.
  • 建立监控表对表中数据进行操作
  • 连接后可以执行 select @@version

3.监控数据库的连接数

方法:

代码语言:javascript
复制
show variables like 'max_connections'

show global status like 'Threads_connected'

Threads_connected / max_connections>0.8 就需要报警

性能监控

1.监控数据库并发请求数量

代码语言:javascript
复制
show global status like 'Thread_running'

如何监控Innodb的阻塞:

从mysql性能字典表,innodb_lock_waits 是锁信息,innodb_trx是事务信息,有两条记录,需要放到一行中,因此,需要关联2次。

代码语言:javascript
复制
select b.trx_mysql_thread_id as ‘被阻塞线程’, 
b.trx_query as ‘被阻塞SQL’, 
b.trx_mysql_thread_id as ‘阻塞线程’, 
b.trx_query as ‘阻塞SQL’, 
(UNIX_TIMESTAMP() - UNIX_TIMESTAMP(b.trx_started)) as ‘阻塞时间’ 
from 
information_schema.innodb_lock_waits a 
join information_schema.innodb_trx b 
on a.requesting_trx_id=b.trx_id 
join information_schema.innodb_trx c 
on a.blocking_trx_id=c.trx_id 
where (UNIX_TIMESTAMP() - UNIX_TIMESTAMP(c.trx_started))>60; 

设置全局锁的超时时间:
 set global innodb_lock_wait_timeout=180;

查看线程相互阻塞的方法:

代码语言:javascript
复制
show engine innodb status \G 查看详细事务内容 
SELECT b.,a. FROM information_schema.INNODB_TRX a,information_schema.PROCESSLIST b 
WHERE a.trx_mysql_thread_id=b.ID AND a.trx_state=’RUNNING’ ;

参考: https://blog.csdn.net/m0_37814112/article/details/80936388 https://blog.csdn.net/weixin_43549578/article/details/88905102 https://cloud.tencent.com/developer/article/1068377 https://blog.csdn.net/bisal/article/details/78372919

六个最常用的 MySQL 数据库监控工:https://blog.csdn.net/alexwei2009/article/details/125323483

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • MySQL数据库可用性监控脚本
  • 可用行
  • 性能监控
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档