Nagios Zabbix
对数据库服务可用性进行监控
数据库或者端口存在并不意味数据库就是可用的(不够)
通过网络连接到数据库并且确定数据库是可以对外提供服务的
对数据库性能进行监控
QPS和TPS
对主从复制进行监控
对服务器资源的监控
数据库可用性的监控:
mysqkadmin -umonitor_user -p -h ping
teinet ip db_port
·使用程序通过网络建立数据库连接
如何确定数据库是否可读写
检查数据库的read_only参数是否为off
建立监控表并对表中数据进行更改
执行简单的查询select@@version
如何监控数据库的连接数
原因出现阻塞、memcahe这样的缓存失效
时刻关注数量
show variables like 'max_connections';
show global status like'Threads_connented'
Threads_connected/max_connections>0.8
性能监控:
记录性能监控过程中所采集到的数据库的状态
如何计算QPS和TPS
CPU的使用率
如何监控数据库的并发请求数量
数据库系统的性能会随着并发处理数量的增加而下降
show global status like'Threads_running'
并发处理的数量通常会远小于同一时间连接到数据库的线程的数量
--数据库出现大量阻塞
如何监控Innodb的阻塞
select b.rex_mysql_thread_id as'被阻塞线程',b.trx_query as '阻塞的sql',c.trx_mysql_thread_id as '阻塞线程',(UXIX_TIMESTAMP()-UNIX_TIMESTAMP(C.TRX_STARTED))AS '阻塞时间'
from information_schema.inndb_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;
MySQL主从复制进行监控
主从复制的延迟
主:show master status;
从:show slave status;
已经传输完成的主上二进制的名字和偏移量
如何检验蛀虫复制的数据是否一致:
pt_checksum u=dba,p="password"
--adtabases mysql\
--replicate tast.checksums