GoGPT Best VPN GoSearch

OnWorks 网站图标

pt-deadlock-loggerp - 云端在线

在 OnWorks 免费托管服务提供商中通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器运行 pt-deadlock-loggerp

这是 pt-deadlock-loggerp 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


pt-deadlock-logger - 记录 MySQL 死锁。

概要


用法:pt-deadlock-logger [OPTIONS] DSN

pt-deadlock-logger 在给定的 DSN 上记录有关 MySQL 死锁的信息。 信息
打印到“STDOUT”,也可以通过指定“--dest”保存到表中。 这
除非指定了“--run-time”或“--iterations”,否则工具将永远运行。

在 host1 上打印死锁:

pt-死锁记录器 h=host1

在 host1 上打印一次死锁然后退出:

pt-deadlock-logger h=host1 --iterations 1

将 host1 上的死锁保存到 host2 上的 percona_schema.deadlocks:

pt-deadlock-logger h=host1 --dest h=host2,D=percona_schema,t=死锁

风险


Percona Toolkit 是成熟的,在现实世界中得到验证,并经过良好测试,但所有数据库
工具会给系统和数据库服务器带来风险。 在使用这个工具之前,
请:

· 阅读工具的文档

· 查看工具已知的“BUGS”

· 在非生产服务器上测试该工具

· 备份您的生产服务器并验证备份

商品描述


pt-deadlock-logger 通过轮询和解析“SHOW”来打印有关 MySQL 死锁的信息
ENGINE INNODB STATUS”。当一个新的死锁发生时,它被打印到“STDOUT”,如果
指定,保存到“--dest”。

只打印新的死锁。 每个死锁的指纹是使用
死锁的服务器、ts 和线程值(即使这些列不是由
“ - 列”)。 如果其指纹与上一个不同,则打印死锁
死锁的指纹。

“--dest”语句使用“INSERT IGNORE”来消除重复的死锁,所以每
每次“--iterations”都会保存死锁。

OUTPUT


除非指定了“--quiet”,否则新的死锁会打印到“STDOUT”。 错误和警告
被打印到“STDERR”。

另请参阅“--columns”和“--tab”。

创新数据库 洞穴 AND 详细信息


InnoDB 的输出很难解析,有时无法正确解析。

有时并非所有信息(例如,用户名或 IP 地址)都包含在
死锁信息。 在这种情况下,该工具不会在这些列中放入任何内容。
也可能是死锁输出这么长的情况(因为有很多
锁)整个事情都被截断了。

虽然死锁通常涉及两个事务,但锁的数量更多
比起那个来说; 至少需要比事务多一个锁来创建一个循环
等待图。 pt-deadlock-logger 打印事务(在 InnoDB 中总是两个
输出,即使等待图中的事务比那个多)并填充
在锁。 在选择要输出的锁信息时,它更喜欢等待超时,但是
你可以想一想其余的。 如果你看到一个等待和一个持有
锁,你在看同一个锁,所以当然你更喜欢看到两个等待
锁定并获取更多信息。 如果两个等待的锁不在同一张表上,
僵局涉及两笔以上的交易。

最后,请记住,因为 InnoDB 没有引用带空格的用户名,所以
工具通常会将这些用户名的第二个单词误报为主机名。

配置


此工具接受额外的命令行参数。 参考“概要”和用法
详细信息。

--询问通行证
连接 MySQL 时提示输入密码。

--字符集
简写:-A; 类型:字符串

默认字符集。 如果值为 utf8,则将 STDOUT 上的 Perl 的 binmode 设置为 utf8,
将 mysql_enable_utf8 选项传递给 DBD::mysql,然后运行 ​​SET NAMES UTF8
连接到 MySQL。 任何其他值在没有 utf8 层的 STDOUT 上设置 binmode,
并在连接到 MySQL 后运行 SET NAMES。

--清除死锁
类型:字符串

使用这个表来创建一个小的死锁。 这通常有清除的作用
解决一个巨大的死锁,否则会消耗“SHOW INNODB”的整个输出
STATUS”。该表必须不存在。pt-deadlock-logger 将使用
以下结构:

创建表 percona_schema.clear_deadlocks (
一个 INT 主键
) 引擎=InnoDB

创建表并造成小死锁后,该工具将删除该表
一次。

- 列
类型:数组; 默认值:服务器、ts、线程、txn_id、txn_time、用户、主机名、ip、db、
tbl、idx、lock_type、lock_mode、wait_hold、受害者、查询

列是:

服务器
发生死锁的(源)服务器。 这可能有用,如果
您正在跟踪许多服务器上的死锁。

ts 最后检测到死锁的日期和时间。


MySQL线程数,与SHOW FULL中的连接ID相同
处理程序。

txn_id
InnoDB 事务 ID,InnoDB 表示为两个无符号整数。 一世
将它们相乘为一个数。

交易时间
发生死锁时事务处于活动状态的时间。

用户
连接的数据库用户名。

主机
连接的主机。

ip 连接的 IP 地址。 如果您指定“--numeric-ip”,则将其转换为
一个无符号整数。

db 发生死锁的数据库。

tbl 发生死锁的表。

idx 发生死锁的索引。

锁类型
锁类型在导致死锁的锁上持有的事务。

锁模式
导致死锁的锁的锁模式。

等待保持
事务是等待锁还是持有锁。 通常你
将看到两个等待的锁。

受害者
事务是否被选为死锁受害者并回滚。

询问
导致死锁的查询。

--配置
类型:数组

阅读这个逗号分隔的配置文件列表; 如果指定,这必须是第一个
命令行选项。

--创建目标表
创建由“--dest”指定的表。

通常“--dest”表应该已经存在。 此选项导致 pt-
死锁记录器使用建议的表结构自动创建表。

--守护进程
叉到后台并从外壳上分离。 仅限 POSIX 操作系统。

- 数据库
简写:-D; 类型:字符串

连接到这个数据库。

--defaults-文件
简写:-F; 类型:字符串

仅从给定文件中读取 mysql 选项。 您必须提供绝对路径名。

--目标
类型:DSN

DSN 用于存储死锁的位置; 至少指定一个数据库 (D) 和表 (t)。

缺失值用源主机的相同值填充,因此您可以
如果您将死锁存储在同一个
它们发生的服务器。

如果要存储所有信息,建议使用以下表结构
pt-deadlock-logger 可以提取关于死锁的信息:

创建表死锁(
服务器 坦克(20) 非空,
ts 时间戳 NOT NULL DEFAULT CURRENT_TIMESTAMP,
线程 int unsigned NOT NULL,
txn_id bigint 无符号非空,
txn_time smallint 无符号非空,
用户 坦克(16) 非空,
主机 坦克(20) 非空,
ip 坦克(15) NOT NULL, -- 或者,ip int unsigned NOT NULL
db 坦克(64) 非空,
坦克(64) 非空,
IDX 坦克(64) 非空,
锁类型 坦克(16) 非空,
锁模式 坦克(1) 非空,
等待保持 坦克(1) 非空,
受害者tinyint unsigned NOT NULL,
查询文本非空,
PRIMARY KEY(服务器,ts,线程)
) 引擎=InnoDB

如果您使用“--columns”,您可以省略您不想存储的任何列。

- 帮帮我
显示帮助并退出。

- 主持人
简写:-h; 类型:字符串

连接到主机。

- 间隔
类型:时间; 默认值:30

检查死锁的频率。 如果没有指定“--run-time”,pt-deadlock-logger
永远运行,在每个时间间隔检查死锁。 另请参见“--run-time”。

--迭代次数
类型:int

检查死锁的次数。 默认情况下,此选项未定义
意味着无限次迭代。 该工具始终退出“--run-time”,
无论为此选项指定的值如何。 例如,该工具将退出
使用“--run-time 1m --iterations 1 --interval 4” 30 分钟后,因为 4 次迭代
在 30 秒的间隔将需要 2 分钟,比 1 分钟的运行时间更长。

- 日志
类型:字符串

守护进程时将所有输出打印到此文件。

--数字IP
将 IP 地址表示为整数。

- 密码
简写形式:-p; 类型:字符串

连接时使用的密码。 如果密码包含逗号,则必须对其进行转义
带反斜杠:“exam\,ple”

--pid
类型:字符串

创建给定的 PID 文件。 如果 PID 文件已经存在并且该工具将不会启动
它包含的 PID 与当前 PID 不同。 但是,如果 PID 文件
存在并且它包含的 PID 不再运行,该工具将覆盖 PID
带有当前 PID 的文件。 工具退出时,PID 文件会自动删除。

- 港口
简写形式:-P; 类型:int

用于连接的端口号。

- 安静的
不要死锁; 只将错误和警告打印到“STDERR”。

- 运行
类型:时间

退出前运行多长时间。 默认情况下 pt-deadlock-logger 永远运行,检查
每隔“--interval”秒就会出现死锁。

--设置变量
类型:数组

在这个逗号分隔的“变量=值”对列表中设置 MySQL 变量。

默认情况下,工具集:

等待超时=10000

在命令行上指定的变量会覆盖这些默认值。 例如,
指定“--set-vars wait_timeout=500”会覆盖默认值 10000。

如果无法设置变量,该工具会打印警告并继续。

- 插座
简写:-S; 类型:字符串

用于连接的套接字文件。

- 标签
使用制表符来分隔列而不是空格。

- 用户
简写:-u; 类型:字符串

如果不是当前用户,则用于登录的用户。

- 版
显示版本并退出。

--[无]版本检查
默认:是

检查 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-deadlock-logger ...> 文件 2>&1

请注意:调试输出量很大,可能会生成几兆字节的输出。

系统 参赛要件


你需要 Perl、DBI、DBD::mysql 和一些应该安装在任何地方的核心包。
相当新版本的 Perl。

使用 onworks.net 服务在线使用 pt-deadlock-loggerp


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。