这是 pt-slave-restartp 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
pt-slave-restart - 在出错后观察并重启 MySQL 复制。
概要
用法:pt-slave-restart [OPTIONS] [DSN]
pt-slave-restart 监视一个或多个 MySQL 复制从站是否有错误,并尝试
如果停止,则重新启动复制。
风险
Percona Toolkit 是成熟的,在现实世界中得到验证,并经过良好测试,但所有数据库
工具会给系统和数据库服务器带来风险。 在使用这个工具之前,
请:
· 阅读工具的文档
· 查看工具已知的“BUGS”
· 在非生产服务器上测试该工具
· 备份您的生产服务器并验证备份
商品描述
pt-slave-restart 监视一个或多个 MySQL 复制从属并尝试跳过语句
导致错误。 它以指数变化的睡眠智能地轮询奴隶
时间。 您可以指定错误以跳过并运行从站直到某个 binlog 位置。
虽然这个工具可以帮助一个奴隶克服错误,但你不应该依赖它来
“修复”复制。 如果从站错误频繁或意外发生,您应该识别
并解决根本原因。
OUTPUT
如果指定“--verbose”,pt-slave-restart 每次看到从站时都会打印一行
有错误。 有关详细信息,请参阅“--verbose”。
SLEEP
pt-slave-restart 在轮询从设备之间智能休眠。 当前睡眠时间
变化。
· 初始睡眠时间由“--sleep”给出。
· 如果它检查并发现错误,则将之前的睡眠时间减半。
· 如果没有发现错误,则将之前的睡眠时间加倍。
· 睡眠时间低于“--min-sleep”,高于“--max-sleep”。
· 发现错误后,pt-slave-restart 立即假设另一个错误非常
可能接下来发生,所以它休眠当前休眠时间或初始休眠时间,
以较少者为准。
全球 交易 IDS
从 Percona Toolkit 2.2.8 开始,pt-slave-restart 支持引入的全局事务 ID
在 MySQL 5.6.5 中。 重要的是要记住:
· pt-slave-restart 不会跳过多个复制线程时的事务
正在使用(slave_parallel_workers > 0)。 pt-slave-restart 不知道 GTID 是什么
事件是特定从属线程的失败事务。
· 默认行为是跳过来自从属主的下一个事务。 写
可以源自不同的服务器,每个服务器都有自己的 UUID。
请参阅“--master-uuid”。
退出 状态
退出状态 0(有时也称为返回值或返回码)表示
成功。 任何其他值表示 Perl 进程本身的退出状态,或
如果有多个服务器要监视,则退出的最后一个分叉进程。
兼容性
pt-slave-restart 应该适用于许多版本的 MySQL。 许多输出列的字母
来自 SHOW SLAVE STATUS 随时间变化,因此将它们全部视为小写。
配置
此工具接受额外的命令行参数。 参考“概要”和用法
详细信息。
- 总是
即使没有错误也启动从站。 启用此选项后,pt-slave-restart
如果你愿意,不会让你手动停止奴隶!
--询问通行证
连接 MySQL 时提示输入密码。
--字符集
简写:-A; 类型:字符串
默认字符集。 如果值为 utf8,则将 STDOUT 上的 Perl 的 binmode 设置为 utf8,
将 mysql_enable_utf8 选项传递给 DBD::mysql,然后运行 SET NAMES UTF8
连接到 MySQL。 任何其他值在没有 utf8 层的 STDOUT 上设置 binmode,
并在连接到 MySQL 后运行 SET NAMES。
--[否]检查中继日志
默认:是
在检查从站错误之前检查最后一个中继日志文件和位置。
默认情况下 pt-slave-restart 不会做任何事情(它只会睡觉),如果两者都不是
自上次检查以来,中继日志文件和中继日志位置都已更改。 这个
防止无限循环(即在相同的中继日志文件中重新启动相同的错误
相同的中继日志位置)。
但是,对于某些从站错误,需要通过指定来禁用此检查
“--no-check-relay-log”。 除非您知道自己在做什么,否则不要这样做!
--配置
类型:数组
阅读这个逗号分隔的配置文件列表; 如果指定,这必须是第一个
命令行选项。
--守护进程
叉到后台并从外壳上分离。 仅限 POSIX 操作系统。
- 数据库
简写:-D; 类型:字符串
要使用的数据库。
--defaults-文件
简写:-F; 类型:字符串
仅从给定文件中读取 mysql 选项。 您必须提供绝对路径名。
--错误长度
类型:int
要打印的错误消息的最大长度。 当“--verbose”设置得足够高以打印时
错误,此选项会将错误文本截断为指定的长度。 这个可以
可用于防止缠绕在终端上。
--错误编号
类型:哈希
仅重新启动此逗号分隔的错误列表。 使 pt-slave-restart 只尝试
如果错误编号在此逗号分隔的错误列表中,则重新启动。 如果它看到一个
错误不在列表中,它将退出。
错误编号在“SHOW SLAVE STATUS”的“last_errno”列中。
--错误文本
类型:字符串
仅重新启动与此模式匹配的错误。 一个 Perl 正则表达式
错误文本(如果有)匹配。 如果错误文本存在并且匹配,pt-slave-
restart 将尝试重新启动从站。 如果存在但不匹配,pt-slave-
重启将退出。
错误文本位于“SHOW SLAVE STATUS”的“last_error”列中。
- 帮帮我
显示帮助并退出。
- 主持人
简写:-h; 类型:字符串
连接到主机。
- 日志
类型:字符串
守护进程时将所有输出打印到此文件。
--最大睡眠
类型:浮动; 默认值:64
最大睡眠秒数。
pt-slave-restart 在再次轮询从设备之前将休眠的最长时间。 这是
还有 pt-slave-restart 将等待所有其他正在运行的实例退出的时间
如果同时指定了“--stop”和“--monitor”。
参见“睡眠”。
--分钟睡眠
类型:浮动; 默认值:0.015625
pt-slave-restart 在再次轮询从设备之前将休眠的最短时间。 看
“睡觉”。
- 监视器
是否监控从站(默认)。 除非您明确指定 --monitor,
“--stop”将禁用它。
- 密码
简写形式:-p; 类型:字符串
连接时使用的密码。 如果密码包含逗号,则必须对其进行转义
带反斜杠:“exam\,ple”
--pid
类型:字符串
创建给定的 PID 文件。 如果 PID 文件已经存在并且该工具将不会启动
它包含的 PID 与当前 PID 不同。 但是,如果 PID 文件
存在并且它包含的 PID 不再运行,该工具将覆盖 PID
带有当前 PID 的文件。 工具退出时,PID 文件会自动删除。
- 港口
简写形式:-P; 类型:int
用于连接的端口号。
- 安静的
简写:-q
抑制正常输出(禁用“--verbose”)。
--递归
类型:int; 默认值:0
观察指定服务器的slave,深度达到指定数量的服务器
层次结构。 默认深度 0 表示“只观察指定的从站”。
pt-slave-restart 检查“SHOW PROCESSLIST”并尝试确定哪些连接
来自奴隶,然后连接到他们。 请参阅“--递归方法”。
递归的工作原理是在程序启动时找到所有从属,然后观察它们。 如果
有不止一个从站,“pt-slave-restart”使用“fork()”来监控它们。
如果您已将奴隶配置为显示在“SHOW SLAVE HOSTS”中,这也适用。
对此的最小配置是“report_host”参数,但还有其他
“报告”参数以及端口、用户名和密码。
--递归方法
类型:数组; 默认值:进程列表,主机
用于查找从站的首选递归方法。
可能的方法有:
方法用途
==============================
进程列表显示进程列表
主机显示奴隶主机
none 不找奴隶
首选使用 processlist 方法,因为 SHOW SLAVE HOSTS 不可靠。
但是,如果服务器使用非标准端口(不是
3306)。 通常 pt-slave-restart 会做正确的事情并找到奴隶,但是您
可能会给出一个首选方法,它将首先使用。 如果它没有找到任何奴隶,
将尝试其他方法。
- 运行
类型:时间
退出前运行的时间。 导致 pt-slave-restart 在指定时间后停止
已经过去了。 可选后缀:s=秒,m=分钟,h=小时,d=天; 如果没有后缀,s
用来。
- 哨兵
类型:字符串; 默认值:/tmp/pt-slave-restart-sentinel
如果此文件存在,则退出。
--设置变量
类型:数组
在这个逗号分隔的“变量=值”对列表中设置 MySQL 变量。
默认情况下,工具集:
等待超时=10000
在命令行上指定的变量会覆盖这些默认值。 例如,
指定“--set-vars wait_timeout=500”会覆盖默认值 10000。
如果无法设置变量,该工具会打印警告并继续。
--跳过计数
类型:int; 默认值:1
重新启动从站时要跳过的语句数。
--master-uuid
类型:字符串
使用 GTID 时,应创建一个空事务以跳过它。 如果
写入来自上面复制树中的不同节点,它不是
可能知道从哪个 UUID 跳过哪个事件。
默认情况下,来自从属主的事务(来自“SHOW SLAVE 的‘Master_UUID’
STATUS") 被跳过。
例如,
master1 -> slave1 -> slave2
跳过写入 master2 的 slave1 上的事件时,您必须指定 UUID
master1 的,否则该工具将默认使用 slave1 的 UUID。
请参阅“全球交易 ID”。
- 睡觉
类型:int; 默认值:1
检查从站之间的初始睡眠秒数。
参见“睡眠”。
- 插座
简写:-S; 类型:字符串
用于连接的套接字文件。
- 停止
通过创建哨兵文件停止运行实例。
导致“pt-slave-restart”创建由“--sentinel”指定的哨兵文件。 这个
应该具有停止所有正在观看相同的正在运行的实例的效果
哨兵文件。 如果未指定“--monitor”,“pt-slave-restart”将在之后退出
创建文件。 如果指定,“pt-slave-restart”将等待间隔
由“--max-sleep”给出,然后删除文件并继续工作。
如果需要,您可能会发现这很方便优雅地停止 cron 作业,或者替换一个
与另一个运行实例。 例如,如果您想停止并重新启动
“pt-slave-restart”每小时(只是为了确保它每小时重新启动,在
如果服务器崩溃或其他问题),您可以使用“crontab”行,例如
这个:
0 * * * * pt-slave-restart --monitor --stop --sentinel /tmp/pt-slave-restartup
非默认的“--sentinel”将确保每小时的“cron”作业仅停止实例
以前以相同的选项开始(即,来自同一个“cron”作业)。
另见“--sentinel”。
--直到大师
类型:字符串
运行直到这个主日志文件和位置。 启动slave,如果失败重试,
直到它到达给定的复制坐标。 坐标是日志文件
和 master 上的位置,由relay_master_log_file, exec_master_log_pos 给出。 这
参数必须采用“file,pos”格式。 用 a 分隔文件名和位置
一个逗号,没有空格。
这也会导致将 UNTIL 子句赋予 START SLAVE。
到达此点后,应停止从站并退出 pt-slave-restart。
--直到中继
类型:字符串
运行直到这个中继日志文件和位置。 像“--until-master”,但在奴隶的
代替中继日志。 坐标由relay_log_file、relay_log_pos 给出。
- 用户
简写:-u; 类型:字符串
如果不是当前用户,则用于登录的用户。
--详细
简短形式:-v; 累计:是; 默认值:1
冗长; 可以指定多次。 Verbosity 1 输出连接信息,a
时间戳、relay_log_file、relay_log_pos 和 last_errno。 Verbosity 2 添加
最后一个错误。 另见“--error-length”。 Verbosity 3 打印当前睡眠时间
每次 pt-slave-restart 休眠。
- 版
显示版本并退出。
--[无]版本检查
默认:是
检查 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-slave-restart ... > 文件 2>&1
请注意:调试输出量很大,可能会生成几兆字节的输出。
系统 参赛要件
你需要 Perl、DBI、DBD::mysql 和一些应该安装在任何地方的核心包。
相当新版本的 Perl。
使用 onworks.net 服务在线使用 pt-slave-restartp