视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysqlreport中文文档_MySQL
2020-11-09 17:32:26 责编:小采
文档

mysqlreport 以很友好的方式显示 MySQL状态变。事实上,它几乎报告了所有的状态。不像 SHOW STATUS 只是在显示了100多个状态值,mysqlreport 则以人性化的方式阐释和格式化了这些状态值,大大增加了其可读性。可以 点击这里 查看mysqlreport的例子。
mysqlreport 的好处是可以快速的查看各种状态参数组,从而了解服务器的运行状态情况,而无需从 SHOW STATUS 的结果中人工计算。例如索引读取比率是个重要的参数,但是 SHOW STATUS 中并没有显示;它是一个推断值(key_reads 和 key_read_requests 的比值)。


本文档描述了 mysqlreport 的所有命令行选项,大部分是用于控制如何显示结果的。本文并没有解释这些推断值是怎么计算得到的,可以点击 理解mysqlreport 查看具体的计算方法。

注意
命令行选项的格式是 --选项,不过 -选项 的格式也可以。所有的选项都有其缩写,只要是唯一的。例如,选项 --host 可以缩写成 --ho,不过不能写成 --h,因为 --h 有歧义,可能是 --host 或者 --help。
选项列表
--user USER
--password
--host ADDRESS
--port PORT
--socket SOCKET
--no-mycnf
--help 这些选项是模拟其他标准应用程序的。从 2.3 版本开始,--password 可以在后面加上参数,如 "--password FOO"。如果命令行中只指定了选项 --password,则会提示输入密码。--no-mycnf 告诉 mysqlreport 不要读取 ~/.my.cnf,默认会去读取这个文件。--user 和 --password 总是覆盖从 ~/.my.cnf 中取得的结果。
--infile FILE 直接从文件中读取状态文件,而不是从MySQL的 SHOW STATUS 中读取。文件内容通常是从 SHOW STATUS 的结果中取得,并且包含格式化字符(|, +, -)。mysqlreport 认为这样的文件"状态名 数值"格式的,状态包含字符和下划线(A-Z 和 _),数值则是非负整数。在状态名和数值之间的任何内容都会被忽略。mysqlreport 也需要以下MySQL服务器系统变量:version, table_cache, max_connections, key_buffer_size, query_cache_size, thread_cache_size。INFILE 的格式也可以是 "名字 = 数值"这样的,名字可以使是上面提到的各种变量名,数值是非负整数,可能后面带有M或者其他单位(根据版本不同而定)。例如,想要指定 18M 的 key_buffer_size:key_buffer_size = 18M。或者,256 个 table_cache:table_cache = 256。M 指兆字节,而非百万。因此 18M 是 18,874,368,而非 18,000,000。如果这些服务器变量没有指定,则使用默认以下默认值:0.0.0, , 100, 8M, 0, 0,就可能会让报告结果看起来很奇怪。
注意:MySQL 服务器版本在 5.1.3 或更新时,尽管系统变量 table_cache 改成了 table_open_cache,但是读取本地文件时仍采用 table_cache。

--outfile FILE 在屏幕显示完报告结果后,将结果写入文件中。mysqlreport 的内部机制总是先将结果写入临时文件中。然后将该临时文件里的内容打印到屏幕上。然后,如果指定了 --outfile 选项,则将临时文件拷贝成 OUTFILE。如果指定选项 --email,则会删除临时文件。
--email ADDRESS 在屏幕显示完结果后,将结果发送到邮件地址 ADDRESS 中去。欲该选项,需要在 /usr/sbin/ 目录下有 sendmail 程序,因此无法在 windows 平台下使用。/usr/sbin/sendmail 可以符号链接到 qmail,或者任何其他能模拟 sendmail -t 方式的 MTA 程序。邮件来源是:mysqlreport,主题是:MySQL status report on HOST,HOST 是 mysqlreport
所在的主机名,可能是读取到的 --host 值,默认是 localhost。
--flush-status 显示完报告后,执行 "FLUSH STATUS;" 语句。如果没有权限,则 DBD::mysql 会显示返回值。
--relative (-r) X mysqlreport 通常情况下报告的是自从 MySQL 服务器启动以来的状态信息。--relative 选项则是令 mysqlreport 产生一份自从上次报告以来的相关报告。


如果 --relative X 的 X 值是一个整数,则 mysqlreport 会在隔 X 秒后再次产生一份 MySQL 服务器的状态报告。产生报告的次数是由 --report-count 选项来控制的。默认是产生 1 份相关的报告。例如,指定 --relative 的值为 60,则会产生 2 份报告:第一份会马上生成,第二份会在 60 秒后再次生成。第二份报告中的数值会和前面的那份相关。例如,前面那份中总共有 10.00k 次查询,在这 60 秒的间隔时间里接受了新的 1.00k 次查询,则第二份的报告中的总查询次数是 1.00k 而非 11.00k 次。

如果 --relative 选项的值也可以是本地文件(类似 --infile 选项的用法),那么 mysqlreport 会按照参数值中文件的顺序来依次产生状态报告。因此,根据这些文件产生的时间来指定选项的值非常重要:较早产生的文件放在参数的前面。第一个文件中必须有手工添加的系统变量,例如:key_buffer_size、table_cache 等。每个文件中可以有多组 "SHOW STATUS" 的结果。注意:通过 "mysqladmin -r -i N extended" 产生的状态文件无法使用,因为 mysqladmin 的 -r 参数已经令其产生了具有相对性的状态值了。

由于 mysqlreport 首先会把状态报告写到临时文件中,如果 --relative 的值是 整数(而非 本地文件)时,mysqlreport 会显示它把文件写到哪了。那么就可以直接通过查看这些文件内容来观察服务器的状况了。
--report-count (-c) N 生成 N 份相关的报告。本选项只有在同时启用 --relative 选项后才有效。mysqlreport 会自动产生 N+1 份报告:第一份基本报告,以及后面的 N 份相关报告。
--detach 若指定本选项,则 mysqlreport 会派生出进程来,不只是在屏幕显示结果,还会转入后台继续运行。派生新进程后,mysqlreport 会报告它把结果写入哪个临时文件了。本选项还可以指定 --outfile 或 --email 的一个。如果没有指定 --outfile 或 --email 的值,则产生的临时文件会被删除,因为 mysqlreport 派生出新进程后,无法再将结果打印到终端屏幕上了。本选项如果和 --relative 一起使用的话就更有意义了,这样 mysqlreport 就能定时报告信息,而无需人工登录等方式在中断执行了。使用如下的命令,就能让 mysqlrepot 隔一个小时再次产生一次报告,并将结果发送到自己的信箱中去:
mysqlreport -r 3600 -detach -email host@domain.com

一个小时候后,mysqlreport 通过email发送报告,删除临时文件,并且干净地终止。
--debug 显示调试信息。
--dtq (Questions 报告的 Total 部分中)显示所有的查询分布报告。这些查询主要包括以下四部分:DMS (见下面)、COM_ (见下面)、COM_QUIT(见 COM_QUIT and Questions)、以及其他未知。每部分根据其总数倒序显示。
--dms (Questions 报告的 DMS 部分中)显示所有的数据维护语句(DMS)报告。DMS是下面文档 13.2. Data Manipulation Statements 中提到的那些(当前主要有:SELECT, INSERT, REPLACE, UPDATE, and DELETE)。每个 DMS 根据其总数倒序显示。
--com N (Questions 报告之后)以降序显示最多 N 个 非DMS Com_ 状态值。如果没有指定 N 的值,则默认是 3。所谓的非DMS Com_ 状态值,包括:Com_change_db、Com_show_tables、Com_rollback 等。
--sas (Questions 报告之后),显示所有的 Select_ 和 Sort_ 报告。详情请看 MySQL Select and Sort Status Variables。
--qcache 如果打开查询缓存的话,则显示查询缓存状态报告。
--tab (Create Temp 报告之后)显示 线程、放弃的、流量 等状态报告。从 mysqlreport v2.3 开始,线程状态是从 Threads_ 状态值读取。
--innodb 显示 InnoDB 状态报告,包括MySQL 5.0.2以后才支持的InnoDB 缓冲池,以及5.0.3以后才支持的InnoDB锁状态报告。
--innodb-only 只显示 InnoDB 报告;不显示其他报告。
--dpr 显示 InnoDB 数据,页,行报告。
--all 如果可能,则显示所有的状态报告。一些报告,比如查询缓存、InnoDB等需要特定版本的MySQL或者其他特性才能支持。例如,尽管服务器支持查询缓存,但是它被禁用了,则不管是否指定了 --qcache 或者 --all,都不会显示查询缓存的报告

下载本文
显示全文
专题