MySQL常用监控项
- 2019 年 12 月 13 日
- 筆記
1
数据库版本
mysqladmin version
2
需要监控的基本状态信息
数据库的连接状态
mysqladmin ping
数据库启动时间
Uptime
数据库当前连接数
Threads_connected
数据库使用的连接最大个数
max_used_connections
数据库放弃的连接个数
aborted_clients
数据库尝试连接失败次数
aborted_connects
数据库软件目录
数据库数据目录
3
需要监控的参数
Server_Id
(主从不能相同)
Read_Only
(只读是否开启)
Max_Connections
(最大允许同时连接的数量)
Max_Connect_Errors
(允许一个主机最多的错误链接次数)
Wait_Timeout
(指的是mysql在关闭一个非交互的连接之前所要等待的秒数)
Skip_Name_Resolve
(禁用DNS主机名查找)
Sync_Binlog
(双一)
Innodb_Flush_Log_At_Trx_Commit
(双一)
Expire_Logs_Days
(Binlog保留的天数)
Table_Open_Cache
(所有线程打开表的数量)
Query_Cache_Size
(查询缓存大小)
Sort_Buffer_Size
(会话的排序空间)
Read_Buffer_Size
(MySQL读入缓冲区大小)
Join_Buffer_Size
(为链接操作分配的最小缓存大小)
Tmp_Table_Size
(临时表的大小)
open_files_limit
(操作系统允许mysql打开的文件数量)
Lower_Case_Table_Names
(大小写敏感)
Innodb_Buffer_Pool_Size
(innodb缓冲池大小)
Innodb_Thread_Concurrency
(并发线程数量)
Innodb_Flush_Method
(innodb数据文件及redo log的打开、刷写模式)
Innodb_File_Per_Table
(InnoDB为独立表空间模式)
Innodb_Lock_Wait_Timeout
(事务等待获取资源等待的最长时间)
Innodb_Open_Files
(限制Innodb能打开的表的数据)
Log_Bin
(二进制日志开关)
Log_Bin_Basename
(二进制日志文件名)
Log_Bin_Index
(二进制日志索引文件名)
Binlog_Format
(二进制日志的格式)
Binlog_Row_Image
(minimal只记录要修改的列的记录)
Log_Timestamps
(记录日志的显示时间参数,设置成SYSTEM)
Slow_Query_Log
(慢日志是否开启)
Slow_Query_Log_File
(慢日志存放位置)
Log_Error
(错误日志存放位置)
4
数据库主从状态监控项
Master/ Slave
判断是主库还是从库
SlaveIO Running
IO进程运行状态
SlaveSQL Running
SQL进程运行状态
MasterLog File
主库二进制日志文件
RelayMaster Log File
是否跟得上Master Log File
ReadMaster Log Pos
读到主库上的POS值
ExecMaster Log Pos
执行主库上的POS值
SecondsBehind Master
从库和主库的延迟时间
5
数据库其它监控项
数据库中的大表
selecttable_schema,table_name,round((sum(DATA_LENGTH)+sum(INDEX_LENGTH))/1024/1024,2)"Size(M)" from information_schema.tables group by table_schema,table_nameorder by round((sum(DATA_LENGTH)+sum(INDEX_LENGTH))/1024/1024,2) desc limit10G'
数据库未建主键索引的表
SELECTdistinct table_name,table_schema FROM information_schema.columns WHEREtable_schema not in ('sys','information_schema','performance_schema','mysql')AND table_name not in (select distinct table_name frominformation_schema.columns where column_key='PRI')G"
数据库锁统计
showstatus like 'table_locks_%'G"
数据库缓存命中率
如果Qcache_hits+Com_select<>0则为 Qcache_hits/(Qcache_hits+Com_select),否则为0
线程缓存命中率
如果Connections<>0,则为1-Threads_created/Connections,否则为0
创建磁盘存储的临时表比率
如果Created_tmp_disk_tables+Created_tmp_tables<>0,则Created_tmp_disk_tables/(Created_tmp_disk_tables+Created_tmp_tables),否则为0
连接使用率
如果max_connections<>0,则threads_connected/max_connections,否则为0
打开文件比率
如果open_files_limit<>0,则open_files/open_files_limit,否则为0,表缓存使用率如果table_open_cache<>0,则open_tables/table_open_cache,否则为0
数据库Innodb中Read命中率
showstatus like 'Innodb_buffer_pool_%'G"
数据库全表扫描情况
showglobal status like 'handler_read%'G"