这是 pt-variable-advisorp 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
pt-variable-advisor - 分析 MySQL 变量并就可能出现的问题提出建议。
概要
用法:pt-variable-advisor [OPTIONS] [DSN]
pt-variable-advisor 分析变量并就可能出现的问题提出建议。
从本地主机获取显示变量:
pt-variable-advisor 本地主机
获取保存在 vars.txt 中的 SHOW VARIABLES 输出:
pt-variable-advisor --变量源 vars.txt
风险
Percona Toolkit 是成熟的,在现实世界中得到验证,并经过良好测试,但所有数据库
工具会给系统和数据库服务器带来风险。 在使用这个工具之前,
请:
· 阅读工具的文档
· 查看工具已知的“BUGS”
· 在非生产服务器上测试该工具
· 备份您的生产服务器并验证备份
商品描述
pt-variable-advisor 根据错误值和设置检查“显示变量”
“规则”描述如下。 它报告符合规则的变量,因此您可以找到
MySQL 服务器中的错误设置。
在此版本发布时,pt-variable-advisor 仅示例“显示变量”,但其他示例
输入源计划为“显示状态”和“显示从属状态”。
规则
这些是 pt-variable-advisor 将应用于 SHOW VARIABLES 的规则。 每个规则都有
三部分:ID、严重性和描述。
规则的 ID 是规则的简短唯一名称。 它通常与变量有关
规则审查。 如果一个变量被多个规则检查,那么规则的 ID
编号为“-1”、“-2”、“-N”。
规则的严重性表明此规则与
询问。 我们使用 NOTE、WARN 和 CRIT 来表示这些级别。
规则的描述是一个文本的、人类可读的解释,当
变量匹配此规则。 根据您生成的报告的详细程度,您
将在说明中看到更多文字。 默认情况下,您只会看到第一个
句子,这是规则含义的简洁概要。 在更高的冗长,
你会看到后面的句子。
自动递增
严重程度:注意
您是否尝试在双主复制或环复制中写入多个服务器
配置? 这可能非常危险,并且在大多数情况下是严重的
错误。 大多数人这样做的理由实际上根本站不住脚。
并发插入
严重程度:注意
MyISAM 表中的空洞(删除留下的空间)可能永远不会被重用。
连接超时
严重程度:注意
此设置的较大值可能会造成拒绝服务漏洞。
调试
严重性:暴击
不应该在生产中使用带有调试功能的服务器,因为
大的性能影响。
延迟_密钥_写入
严重程度:警告
MyISAM 索引块在必要时不会被刷新。 如果服务器崩溃,
MyISAM 表上的数据损坏可能比平时严重得多。
红晕
严重程度:警告
此选项可能会大大降低性能。
冲洗时间
严重程度:警告
此选项可能会大大降低性能。
有_bdb
严重程度:注意
BDB 引擎已弃用。 如果你不使用它,你应该用
skip_bdb 选项。
初始化连接
严重程度:注意
此服务器上启用了 init_connect 选项。
初始化文件
严重程度:注意
此服务器上启用了 init_file 选项。
初始化从机
严重程度:注意
此服务器上启用了 init_slave 选项。
innodb_additional_mem_pool_size
严重程度:警告
这个变量一般不需要大于20MB。
innodb_buffer_pool_size
严重程度:警告
InnoDB 缓冲池大小未配置。 在生产环境中应该
总是显式配置,默认的 10MB 大小不好。
innodb_校验和
严重程度:警告
InnoDB 校验和被禁用。 您的数据不受硬件损坏或
其他错误!
innodb_doublewrite
严重程度:警告
InnoDB 双写被禁用。 除非您使用的文件系统可以防止
部分页面写入,您的数据不安全!
innodb_fast_shutdown
严重程度:警告
InnoDB 的关闭行为不是默认的。 这可能会导致性能不佳,或
需要在启动时执行崩溃恢复。
innodb_flush_log_at_trx_commit-1
严重程度:警告
InnoDB 没有在严格的 ACID 模式下配置。 如果发生碰撞,一些
交易可能会丢失。
innodb_flush_log_at_trx_commit-2
严重程度:警告
将 innodb_flush_log_at_trx_commit 设置为 0 与设置相比没有性能优势
它到 2,可能会丢失更多类型的数据。 如果你想改变它
出于性能原因,从 1 开始,您应该将其设置为 2 而不是 0。
innodb_force_recovery
严重程度:警告
InnoDB 处于强制恢复模式! 这应该仅在以下情况下临时使用
从数据损坏或其他错误中恢复,而不是正常使用。
innodb_lock_wait_timeout
严重程度:警告
这个选项有一个异常长的值,如果锁定会导致系统过载
没有被释放。
innodb_log_buffer_size
严重程度:警告
InnoDB 日志缓冲区大小一般不应设置为大于 16MB。 如果你是
在进行大型 BLOB 操作时,InnoDB 无论如何都不是一个很好的引擎选择。
innodb_log_file_size
严重程度:警告
InnoDB 日志文件大小设置为其默认值,该值不适用于
生产系统。
innodb_max_dirty_pages_pct
严重程度:注意
innodb_max_dirty_pages_pct 低于默认值。 这会导致过度
主动刷新并增加 I/O 系统的负载。
冲洗时间
严重程度:警告
此设置可能会导致每flush_time 秒的性能非常差。
key_buffer_size的
严重程度:警告
密钥缓冲区大小设置为其默认值,这对大多数生产不利
系统。 在生产环境中,key_buffer_size 应该大于
默认 8MB 大小。
大页面
严重程度:注意
大页面已启用。
锁定内存
严重程度:注意
服务器使用--memlock 锁定在内存中。
log_warnings-1
严重程度:注意
Log_warnings 被禁用,因此不安全的复制语句等异常事件
并且中止的连接不会记录到错误日志中。
log_warnings-2
严重程度:注意
Log_warnings 必须设置为大于 1 以记录异常事件,例如中止
连接。
低优先级更新
严重程度:注意
服务器正在以非默认的更新锁定优先级运行。 这可能会导致
更新查询以意外等待读取查询。
最大二进制日志大小
严重程度:注意
max_binlog_size 小于默认值 1GB。
最大连接错误
严重程度:注意
max_connect_errors 可能应该设置为您的平台允许的尽可能大。
MAX_CONNECTIONS
严重程度:警告
如果服务器真的有超过一千个线程在运行,那么系统是
可能花更多的时间来调度线程而不是真正做有用的工作。 这个
应根据您的工作量考虑变量的值。
myisam_repair_threads
严重程度:注意
myisam_repair_threads > 1 启用多线程修复,相对未经测试
并且仍然在官方文档中列为测试质量代码。
旧密码
严重程度:警告
旧式密码不安全。 它们通过网络以纯文本形式发送。
优化器修剪级别
严重程度:警告
优化器在规划复杂查询时将使用穷举搜索,这可以
导致规划过程需要很长时间。
端口
严重程度:注意
服务器正在侦听非默认端口。
查询缓存大小-1
严重程度:注意
查询缓存不会扩展到大尺寸,并且在以下情况下会导致性能不稳定
大于 128MB,尤其是在多核机器上。
查询缓存大小-2
严重程度:警告
查询缓存在大于 256MB 时会导致严重的性能问题,
尤其是在多核机器上。
读取缓冲区大小-1
严重程度:注意
read_buffer_size 变量通常应保留其默认值,除非专家
确定有必要改变它。
读取缓冲区大小-2
严重程度:警告
read_buffer_size 变量不应大于 8MB。 一般应该是
保留其默认值,除非专家确定有必要更改它。 制作
它大于 2MB 会显着影响性能,并可能导致服务器崩溃,
交换到死,或者只是变得非常不稳定。
read_rnd_buffer_size-1
严重程度:注意
read_rnd_buffer_size 变量通常应保留其默认值,除非
专家认为有必要改变它。
read_rnd_buffer_size-2
严重程度:警告
read_rnd_buffer_size 变量不应大于 4M。 一般应该
保留其默认值,除非专家确定有必要更改它。
中继日志空间限制
严重程度:警告
设置relay_log_space_limit 会导致副本停止从
他们的主人立即。 这可能会增加您的数据丢失的风险,如果
主崩溃。 如果副本遇到中继日志空间的限制,则
有可能最新的交易只存在于master上,而没有replica
已经找回了它们。
从机网络超时
严重程度:警告
此变量设置得太高。 等太久了,才注意到
与主站的连接失败并正在重试。 这可能应该设置为 60
秒或更短。 使用 pt-heartbeat 来确保
当主机只是空闲时,连接似乎不会超时。
从机跳过错误
严重性:暴击
您不应设置此选项。 如果复制出现错误,您需要查找并
解决其原因; 你的奴隶的数据很可能与
掌握。 你可以用 pt-table-checksum 找出来。
排序缓冲区大小-1
严重程度:注意
sort_buffer_size 变量通常应保留其默认值,除非专家
确定有必要改变它。
排序缓冲区大小-2
严重程度:注意
sort_buffer_size 变量通常应保留其默认值,除非专家
确定有必要改变它。 使其大于几 MB 可能会造成伤害
性能显着,并且可能导致服务器崩溃、交换死亡,或者只是
变得极其不稳定。
sql_notes
严重程度:注意
此服务器配置为不将注释级别的警告记录到错误日志中。
同步帧
严重程度:警告
最好设置 sync_frm,以便 .frm 文件安全地刷新到磁盘,以防万一
服务器崩溃。
tx_isolation-1
严重程度:注意
此服务器的事务隔离级别是非默认的。
tx_isolation-2
严重程度:警告
大多数应用程序应该使用默认的 REPEATABLE-READ 事务隔离级别,
或者在少数情况下是 READ-COMMITTED。
过期日志天数
严重程度:警告
二进制日志已启用,但未启用自动清除。 如果不清除
二进制日志,您的磁盘将被填满。 如果您在 MySQL 外部删除二进制日志,
你会导致不必要的行为。 总是要求 MySQL 清除过时的日志,从不
从外部删除它们。
innodb_文件_io_线程
严重程度:注意
除了在 Windows 上,此选项没有用。
innodb_数据文件_路径
严重程度:注意
自动扩展 InnoDB 文件会消耗大量磁盘空间,这很难
稍后收回。 有些人更喜欢设置 innodb_file_per_table 并分配一个固定的-
ibdata1 的大小文件。
innodb_flush_method
严重程度:注意
大多数使用 InnoDB 的生产数据库服务器应该将 innodb_flush_method 设置为
O_DIRECT 避免双缓冲,除非 I/O 系统的性能非常低。
innodb_locks_unsafe_for_binlog
严重程度:警告
此选项可以从二进制日志和复制中进行时间点恢复,
如果使用基于语句的日志记录,则不可信。
innodb_support_xa
严重程度:警告
MySQL 的 InnoDB 和二进制日志之间的内部 XA 事务支持被禁用。
崩溃恢复后,二进制日志可能与 InnoDB 的状态不匹配,并且复制
由于二进制日志中的乱序语句,可能会失去同步。
日志箱
严重程度:警告
二进制日志被禁用,因此时间点恢复和复制不是
可能。
日志输出
严重程度:警告
将日志输出定向到表具有很高的性能影响。
最大中继日志大小
严重程度:注意
定义了自定义 max_relay_log_size。
myisam_recover_options
严重程度:警告
myisam_recover_options 应设置为某个值,例如 BACKUP,FORCE 以确保
注意到表损坏。
存储引擎
严重程度:注意
服务器默认使用非标准存储引擎。
同步二进制日志
严重程度:警告
启用了二进制日志记录,但未配置 sync_binlog 以便每个事务
刷新到二进制日志以获得持久性。
tmp_表大小
严重程度:注意
内部使用的内存隐式临时表的有效最小大小
在查询执行期间是 min(tmp_table_size, max_heap_table_size),所以
max_heap_table_size 应该至少与 tmp_table_size 一样大。
旧的 mysql 版本
严重程度:警告
这些是每个主要版本的推荐最低版本:3.23、4.1.20、
5.0.37,5.1.30。
终止生命的 mysql 版本
严重程度:注意
每个早于 5.1 的版本现在都正式终止。
配置
此工具接受额外的命令行参数。 参考“概要”和用法
详细信息。
--询问通行证
连接 MySQL 时提示输入密码。
--字符集
简写:-A; 类型:字符串
默认字符集。 如果值为 utf8,则将 STDOUT 上的 Perl 的 binmode 设置为 utf8,
将 mysql_enable_utf8 选项传递给 DBD::mysql,然后运行 SET NAMES UTF8
连接到 MySQL。 任何其他值在没有 utf8 层的 STDOUT 上设置 binmode,
并在连接到 MySQL 后运行 SET NAMES。
--配置
类型:数组
阅读这个逗号分隔的配置文件列表; 如果指定,这必须是第一个
命令行选项。
--守护进程
叉到后台并从外壳上分离。 仅限 POSIX 操作系统。
- 数据库
简写:-D; 类型:字符串
连接到这个数据库。
--defaults-文件
简写:-F; 类型:字符串
仅从给定文件中读取 mysql 选项。 您必须提供绝对路径名。
- 帮帮我
显示帮助并退出。
- 主持人
简写:-h; 类型:字符串
连接到主机。
--忽略规则
类型:哈希
忽略这些规则 ID。
指定要忽略的规则 ID(例如 LIT.001、RES.002 等)的逗号分隔列表。
- 密码
简写形式:-p; 类型:字符串
连接时使用的密码。 如果密码包含逗号,则必须对其进行转义
带反斜杠:“exam\,ple”
--pid
类型:字符串
创建给定的 PID 文件。 如果 PID 文件已经存在并且该工具将不会启动
它包含的 PID 与当前 PID 不同。 但是,如果 PID 文件
存在并且它包含的 PID 不再运行,该工具将覆盖 PID
带有当前 PID 的文件。 工具退出时,PID 文件会自动删除。
- 港口
简写形式:-P; 类型:int
用于连接的端口号。
--设置变量
类型:数组
在这个逗号分隔的“变量=值”对列表中设置 MySQL 变量。
默认情况下,工具集:
等待超时=10000
在命令行上指定的变量会覆盖这些默认值。 例如,
指定“--set-vars wait_timeout=500”会覆盖默认值 10000。
如果无法设置变量,该工具会打印警告并继续。
- 插座
简写:-S; 类型:字符串
用于连接的套接字文件。
--变量来源
类型:字符串; 默认值:mysql
从此来源阅读“显示变量”。 可能的值是“mysql”、“none”或一个文件
姓名。 如果指定了“mysql”,那么您还必须在命令行上指定 DSN。
- 用户
简写:-u; 类型:字符串
如果不是当前用户,则用于登录的用户。
--详细
简短形式:-v; 累计:是; 默认值:1
增加输出的详细程度。 在默认的详细级别,程序打印
只有每个规则描述的第一句话。 在更高级别,该计划
打印更多的描述。
- 版
显示版本并退出。
--[无]版本检查
默认:是
检查 Percona Toolkit、MySQL 和其他程序的最新版本。
这是一个标准的“自动检查更新”功能,还有两个额外的
特征。 首先,该工具在本地系统中检查其他程序的版本
除了它自己的版本。 例如,它检查每个 MySQL 服务器的版本
它连接到 Perl 和 Perl 模块 DBD::mysql。 其次,它检查并警告
关于存在已知问题的版本。 例如,MySQL 5.5.25 有一个严重的错误并且
被重新发布为 5.5.25a。
在工具正常输出之前,任何更新或已知问题都会打印到 STDOUT。
此功能不应干扰工具的正常操作。
欲了解更多信息,请访问.
DSN 配置
这些 DSN 选项用于创建 DSN。 每个选项都像“option=value”一样给出。
选项区分大小写,因此 P 和 p 不是同一个选项。 不可能有
“=”之前或之后的空格,如果该值包含空格,则必须用引号引起来。
DSN 选项以逗号分隔。 有关完整详细信息,请参阅 percona-toolkit 联机帮助页。
· 一种
dsn:字符集; 副本:是
默认字符集。
·D
dsn:数据库; 副本:是
默认数据库。
F
dsn: mysql_read_default_file; 副本:是
仅从给定文件中读取默认选项
· H
dsn:主机; 副本:是
连接到主机。
·p
dsn:密码; 副本:是
连接时使用的密码。 如果密码包含逗号,则必须对其进行转义
带反斜杠:“exam\,ple”
·P
dsn:端口; 副本:是
用于连接的端口号。
·S
dsn: mysql_socket; 副本:是
用于连接的套接字文件。
·你
dsn:用户; 副本:是
如果不是当前用户,则用于登录的用户。
环境
环境变量“PTDEBUG”启用对 STDERR 的详细调试输出。 启用
调试并将所有输出捕获到文件中,运行该工具,如:
PTDEBUG=1 pt-variable-advisor ...> 文件 2>&1
请注意:调试输出量很大,可能会生成几兆字节的输出。
系统 参赛要件
你需要 Perl、DBI、DBD::mysql 和一些应该安装在任何地方的核心包。
相当新版本的 Perl。
使用 onworks.net 服务在线使用 pt-variable-advisorp