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"