IT咨询服务MySQLmysql巡检

求mysql日常巡检步骤及方法?

请求mysql日常巡检步骤及方法及相关文档,谢谢。

参与10

2同行回答

liucj2004liucj2004其它undefined
主要还是对监控的内容进行巡检,具体如下主机系统:1、系统负载2、存储可用空间3、内存使用情况4、网络流量5、异常或硬件告警数据库:0、数据库是否存活1、日志中报错信息2、数据量大小(估算增长速度更佳)3、慢查询汇总4、主从健康情况与延迟情况5、其他调优使用的巡检(比如内存...显示全部

主要还是对监控的内容进行巡检,具体如下
主机系统:
1、系统负载
2、存储可用空间
3、内存使用情况
4、网络流量
5、异常或硬件告警
数据库:
0、数据库是否存活
1、日志中报错信息
2、数据量大小(估算增长速度更佳)
3、慢查询汇总
4、主从健康情况与延迟情况
5、其他调优使用的巡检(比如内存命中率、锁情况、配置文件优化等等)

收起
农业其它 · 2019-03-08
浏览3000
彬彬 邀答
匿名用户匿名用户
MySQL本身的监控应该包含重点参数的检查,MySQL状态的检查,除此以外还应该包含自增id的使用情况(小心因为自增id使用满了 不能insert写入从而引发报警哦),及主从健康状态的巡检。重点参数"innodb_buffer_pool_size" "sync_binlog" 'binlog_format' 'innodb_flush_log_at_trx_co...显示全部

MySQL本身的监控应该包含重点参数的检查,MySQL状态的检查,除此以外还应该包含自增id的使用情况(小心因为自增id使用满了 不能insert写入从而引发报警哦),及主从健康状态的巡检。

重点参数

"innodb_buffer_pool_size"
"sync_binlog"
'binlog_format'
'innodb_flush_log_at_trx_commit'
'read_only': 
'log_slave_updates'
'innodb_io_capacity'
'query_cache_type'
'query_cache_size'
'max_connections'
'max_connect_errors'
'server_id'

MySQL的状态

例如:每秒的tps、qps,提交了多少事务、回滚了多少事务、打开文件数、打开表数、连接数、innodb buffer使用率,及锁等待等等。

首先,查看mysql状态

mysql> show full processlis;
mysql> show global status;
mysql> show engine innodb status\G

show status中的一些状态信息

1、wait事件

Innodb_buffer_pool_wait_free
Innodb_log_waits

2、MySQL锁监控

表锁
Table_locks_waited
Table_locks_immediate

行锁
Innodb_row_lock_current_waits,当前等待锁的行锁数量
Innodb_row_lock_time,请求行锁总耗时
Innodb_row_lock_time_avg,请求行锁平均耗时
Innodb_row_lock_time_max,请求行锁最久耗时
Innodb_row_lock_waits,行锁发生次数

还可以定时收集INFORMATION_SCHEMA里面的信息:

INFORMATION_SCHEMA.INNODB_LOCKS; 
INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

临时表/临时文件

Created_tmp_disk_tables/Created_tmp_files

打开表/文件数

Open_files/Open_table_definitions/Open_tables

并发连接数

Threads_running /Threads_created/Threads_cached

Aborted_clients 

客户端没有正确关闭连接导致客户端终止而中断的连接数

Aborted_connects

试图连接到mysql服务器而失败的连接数

Binlog

Binlog_cache_disk_use 
使用临时二进制日志缓冲但超过 binlog_cache_size 值并使用临时文件
Binlog_cache_use
使用临时二进制日志缓冲的事务数量
Binlog_stmt_cache_disk_use
当非事务语句使用二进制日志缓存
Binlog_stmt_cache_use
使用二进制日志缓冲非事务语句数量

链接数:

Connections 
试图连接到(不管成不成功)mysql服务器的链接数

临时表:

Created_tmp_disk_tables
服务器执行语句时,在硬盘上自动创建的临时表的数量,是指在排序时,内存不够用(tmp_table_size小于需要排序的结果集),所以需要创建基于磁盘的临时表进行排序

Created_tmp_files
服务器执行语句时自动创建的内存中的临时表的数量

索引:

Handler_commit 内部交语句

Handler_rollback 内部 rollback语句数量

Handler_read_first 索引第一条记录被读的次数,如果高,则它表明服务器正执行大量全索引扫描

Handler_read_key 根据索引读一行的请求数,如果较高,说明查询和表的索引正确

Handler_read_last 查询读索引最后一个索引键请求数

Handler_read_next 按照索引顺序读下一行的请求数

Handler_read_prev 按照索引顺序读前一行的请求数

Handler_read_rnd 根据固定位置读一行的请求数,如果值较高,说明可能使用了大量需要mysql扫整个表的查询或没有正确使用索引

Handler_read_rnd_next 在数据文件中读下一行的请求数,如果你正进行大量的表扫,该值会较高

Open_table_definitions 
被缓存的.frm文件数量
Opened_tables
已经打开的表的数量,如果较大,table_open_cache值可能太小
Open_tables
当前打开的表的数量
Queries
已经发送给服务器的查询个数
Select_full_join 
没有使用索引的联接的数量,如果该值不为0,你应该仔细检查表的所有
Select_scan
对第一个表进行完全扫的联接的数量
Slow_queries 
查询时间超过long_query_time秒的查询个数
Sort_merge_passes
排序算法已经执行的合并的数量,如果值较大,增加sort_buffer_size大小

线程:

Threads_cached 线程缓存内的线程数量
Threads_connected 当前打开的连接数量
Threads_created 创建用来处理连接的线程数
Threads_running 激活的(非睡眠状态)线程数

MySQL自增id的使用情况

mysql> SELECT table_schema,table_name,engine, Auto_increment
 FROM information_schema.tables where 
  INFORMATION_SCHEMA.TABLE_SCHEMA 
 not in ("INFORMATION_SCHEMA" ,"PERFORMANCE_SCHEMA", "MYSQL", "SYS")

存储引擎是否为innodb

mysql> SELECT TABLE_SCHEMA,TABLE_NAME,ENGINE FROM
INFORMATION_SCHEMA.TABLES WHERE
ENGINE != 'innodb' AND
TABLE_SCHEMA NOT IN
("INFORMATION_SCHEMA" ,"PERFORMANCE_SCHEMA", "MYSQL", "SYS");

MySQL主从检测

mysql> show slave status\G

主从状态

主从状态是否双yes?

主从是否延迟

Master_Log_File == Relay_Master_Log_File 
&& Read_Master_Log_Pos == Exec_Master_Log_Pos

最后,同样要检查MySQL的日志,提前发现潜在风险:

MySQL error log 

MySQL 慢查询日志

高可用巡检

MHA && keepalived

观察日志看是否有频繁主从切换,如果有的话就分析一下是什么原因导致频繁切换?

中间件的巡检 mycat && pproxysql

这些中间件的巡检,首先参考系统巡检,再看一下中间件本身的日志类和状态类信息,网络延迟或丢包的检查,也是必须要做工作。

总结

关于巡检来说,每个环境都是不一样的,所以巡检的侧重点也是不一样的,但基本的巡检步骤是避免不了的,如果有其他的巡检姿势也欢迎一起讨论。

收起
银行 · 2019-03-08
浏览2841

提问者

dw289042702
系统运维工程师tskj
擅长领域: 服务器AIXUnix

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2019-03-08
  • 关注会员:3 人
  • 问题浏览:3709
  • 最近回答:2019-03-08
  • X社区推广