MySQL常用监控项 MySQL的binlog格式详解

                                                  MySQ L常用监控项

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 limit10\G'

数据库未建主键索引的表

    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"

 

###########################################################################

                                                     MySQL的binlog格式详解

说明:此文不长篇大论,仅言简意赅地解释binlog的3种复制方法,可帮助加深理解记忆。

简单介绍下MySQL的二进制日志

MySQL的二进制日志是不依赖于存储引擎的,而是依赖于SQL层,记录和SQL语句有关的信息。
主要用来备份数据和时间点恢复、主从同步。


binglog的格式有3种

statment(SBR)格式、Row(RBR)格式、MIXED(MBR)综合格式。
可以用sql语句进行查看(show variables like "binlog_format";)

MySQL常用监控项 MySQL的binlog格式详解_第1张图片
statment格式

定义:
.基于sql语句复制,每一条会修改数据的sql都会记录在binlog中。      


优点:
.Binlog文件较小,节约IO,提高性能。
.日志是包含用户执行的原始SQL,方便统计和审计。
.Binlog方便阅读,方便故障修复。


缺点:
 .存在安全隐患,可能导致主从不同步一致。
 .对一些系统函数不能准复制或是不能复制。

Row格式

定义:
.不记录sql语句上下文相关信息,只保留被修改的记录。


优点:
.相比statment更加安全的复制格式。
.在某些情况下复制速度更快(SQL复杂,表有主键)。
.系统的特殊函数也可以复制。
.更少锁。


缺点:
.Binary log比较大(支持 binlog_row_image)。
.单语句更新表的行数过多,会形成大量binlog。
.无法从binlog看见用户执行的SQL。

MIXED格式

定义:
.混合使用row和statment格式。


优点:
.当DML(操纵语言语)句更新一个表时,或者当函数中包含UUID()时,自动将binlog的模式由statment模式改为Row模式。

缺点:
.对于DDL记录会STATMENT,对于TABLE里的行操作记录为row格式。
.如果使用Innodb表,事务级别使用了 READ COMMIT or READ UNCOMMITTED 日志级别只能使用row格式。

你可能感兴趣的:(数据库)