监控mysql

时间:2022-02-12 00:55:35

Mysql服务器监控

管理MySql服务器属于应用程序监控范畴。这是因为绝大多数性能参数是有MySql软件产生的,而不属于主操作系统的一部分。

如当前所提到的,应该总是先监控基础操作系统,然后监控MySql,以为MySql对主机的操作系统很敏感。

如何显示MySql性能

可以使用两种机制来管理和监控MySql服务器的运行情况。使用服务器变量来控制其运行情况,并使用服务器状态变量读取其运行情况配置和关于功能和性能的统计信息。

服务器中有很多配置变量。有些变量只能在启动时设置(启动选项)。其他的一些变量可以被设置成适用于全局级(对于所有连接有效)、会话级别(单个连接)或同时适用于全局和会话两个级别。

会话变量只是在当前连接中生效,在连接关闭是被重置。

可以使用以下命令读取服务器变量:

  SHOW [GLOBAL | SESSION] VARIABLES;

可以使用以下命令更改非静态(只读)变量(可以用“,”分隔符在一条命令上同时进行多个变量的设置):

  SHOW [GLOBAL | SESSION] <variable_name> = <value>;

  SET [@@global. | @@session. | @@] <variable_name> = <value>;

可以使用以下命令读取状态变量。前两条命令显示所有会话或会话范围(默认情况下是会话)的变量值。第三条命令显示全局范围的变量:

  SHOW STATUS;

  SHOW SESSION STATUS;

  SHOW GLOBAL STATUS;

性能监控

MySql的性能监控是前面命令的应用。具体而言,就是设置和读取系统变量及读取状态变量。SHOW和SET命令是仅有的两个可以用于MySql服务器的工具。

Sql命令

所有Sql的监控命令都是SHOW命令的变体。他们显示系统及其子系统的内部信息。虽然SHOW命令的形式很多,以下命令列表是在监控MySql服务器时使用最多的SQL命令:

• SHOW INDEX FROM <TABLE>

  显示指定表的索引基数统计信息,在优化程序中使用它评估连接选择性(既索引列中非重复值)。这个命令有助于诊断性能低下的查询,尤其是查询是否使用了可用的索引。

• SHOW PLUGINS

  显示所有已知插件的列表。它显示插件的名称和当前状态。MySql最新发布版中的存储引擎是以插件形式实现的。使用这个命令获取当前可用插件及其状态的快照。

• SHOW [FULL ] PROCESSLIST

  显示系统上运行的所有线程(包括连接)。这个命令的主操作系统的进程命令类似。显示的信息包括命令执行时的连接数据、执行时间和当前状态。像操作系统命令一样,它可以诊断不良的响应(太多线程)、僵尸进程,

或者甚至诊断连接问题。当在处理低性能或未响应的线程时,使用KILL命令终止它们。默认行为是显示当前用户的进程。命令中使用FULL关键字则显示所有进程。

限定SHOW命令的输出结果

SHOW SESSION STATUS LIKE '%LOG%'

监控mysql

与存储引擎相关的命令如下:

• SHOW ENGINE <engine_name> LOGS

  显示指定存储引擎的日志信息,这些信息是由存储引擎提供的,且在优化存储引擎时是非常有用的,有些存储引擎不提供这些信息。

• SHOW ENGINE <engine_name> STATUS

  显示指定存储引擎的状态信息,这些信息是存储引擎提供的。有些存储引擎比其他的存储引擎提供更多或更少的信息。例如,InnoDB 存储引擎显示很多状态变量,而NDB存储引擎只显示少许的状态变量。MyISAM存储引擎则不显示任何信息。这个命令是查看一个给定的存储引擎的统计信息的基本方法,且它在优化某些存储引擎时非常重要。

• SHOW ENGINES

  显示MySql发行版的所有可用存储引擎的列表及其状态(入存储引擎是否可用)。这个命令有助于决定在数据上使用何种存储引擎,并有助于决定复制过程中是否在Master和Slave上存在相同的存储引擎。

监控mysql

与MySql复制相关的具体命令如下所示:

SHOW BINLOG EVENTS [IN <'log_file'>] [FROM <pos>] [LIMIT [<OFFSET>,]<ROW COUNT>]

show binlog events in 'mysql-bin.000009' from 4 limit 0 ,12 ; 查看mysql-bin.000009'二进制文件 从第4个位置开始 查看12行事件。

监控mysql

SHOW BINARY LOGS

  显示服务器上的二进制列表。使用这个命令获取过去和当前的binlog文件名的相关信息。每个文件的大小也被显示出来了。他是诊断复制问题的另一个有用的命令,因为它将允许你在指定的文件上使用SHOW BINLOG EVENTS命令

,从而减少在诊断问题是必须查看的数据量。SHOW MASTER LOGS是它的同义词.

监控mysql

SHOW RELAYLOG EVENTS [IN <'log_file'>] [FROM <pos>] [LIMIT [<OFFSET>,]<ROW COUNT>]

mysql> show relaylog events in 'slave-relay-bin.000038' from 4 limit 0 ,12 ;

监控mysql

SHOW MASTER STATUS

  显示Master的当前配置。它显示当前二进制日志文件、文件的当前位置和所有的排他性或包容性复制的设置。当连接或重新连接Slave时使用这个命令.

监控mysql

SHOW SLAVE STATUS

  使用-- report-host 选项显示连接到Master的Slave列表,根据这个列表可以确定哪些Slave链接到Master上。

监控mysql

监控mysql