pt-heartbeat¶
名字¶
pt-heartbeat—监raybet雷竞技竞猜在线官网控MySQL复制延时。
剧情简介¶
使用¶
pt-心跳[选项][DSN]--更新|--raybet雷竞技竞猜在线官网|--检查|--停止
pt-heartbeat测量MySQL或PostgreSQL服务器上的复制延迟。您可以使用它来更新主服务器或监视副本。raybet雷竞技竞猜在线官网如果可能的话,MySQL连接选项会从你的.my.cnf文件中读取。
启动守护进程更新测试。主节点上的心跳表:
pt-heartbeat- d测验- - -更新- h主服务器——daemonize
raybet雷竞技竞猜在线官网监控从机上的复制延迟:
pt-heartbeat- d测验——raybet雷竞技竞猜在线官网监控- h从服务器pt-heartbeat- d测验——raybet雷竞技竞猜在线官网监控- h从服务器——dbi-driverPg
检查从机延迟一次并退出(使用可选的DSN指定从机):
pt-heartbeat- d测验——检查h=从服务器
风险¶
雷竞技下载官网Percona Toolkit是成熟的,在现实世界中得到了验证,并且经过了良好的测试,但所有数据库工具都可能对系统和数据库服务器构成风险。使用此工具前,请:
阅读工具的文档
检查工具已知的“bug”
在非生产服务器上测试该工具
备份您的生产服务器并验证备份
描述¶
pt-heartbeat是一个由两部分组成的MySQL和PostgreSQL复制延迟监控系统,它通过查看实际复制数据来测量延迟。raybet雷竞技竞猜在线官网这避免了对复制机制本身的依赖,而这种依赖是不可靠的。(例如,显示奴隶状态在MySQL)。
第一部分是- - -更新的实例pt-heartbeat它连接到主服务器,并在每个节点更新时间戳(“心跳记录”)——时间间隔秒。由于心跳表可能包含来自多个主服务器的记录(参见“MULTI-SLAVE HIERARCHY”),服务器的ID (@@server_id)用于标识记录。
第二部分是a——raybet雷竞技竞猜在线官网监控或——检查的实例pt-heartbeat连接到从机的,检查来自直接主机或指定主机的复制心跳记录——master-server-id,计算与当前系统时间的差值。如果从服务器和主服务器之间的复制被延迟或中断,则计算的差异将大于零,并且如果——raybet雷竞技竞猜在线官网监控都是确定的。
必须手动在主服务器上创建心跳表,或者使用——create table.看到——create table对于正确的心跳表结构。的内存对于MySQL,建议使用存储引擎,当然不是必需的。
心跳表必须包含心跳行。默认情况下,如果heartbeat行不存在,则插入它。方法可以禁用此特性——[不]insert-heartbeat-row选项,如果数据库用户没有INSERT权限。
pt-heartbeat只依赖于复制到从机的心跳记录,所以不管复制机制是什么(内置复制,像continuenttungsten这样的系统),它都能正常工作。它可以在复制层次结构的任何深度工作;例如,它将可靠地报告一个奴隶滞后于其主人的主人的主人的主人的距离。如果复制被停止,它将继续工作并报告(准确地!)从机越来越落后于主机。
pt-heartbeat最大分辨率为0.01秒。主服务器和从服务器上的时钟必须通过NTP紧密同步。默认情况下,- - -更新检查发生在秒的边缘(例如00:01)和——raybet雷竞技竞猜在线官网监控检查发生在秒之间的中间(例如00:01.5)。只要服务器的时钟是紧密同步的,复制事件在半秒内传播,pt-heartbeat将报告零秒延迟。
pt-heartbeat如果连接有错误,将尝试重新连接,但如果在第一次启动时无法获得连接,则不会重试。
的——dbi-driver选项允许您使用pt-heartbeat来监视raybet雷竞技竞猜在线官网PostgreSQL。据报道,它可以很好地与Slony-1复制一起工作。
主机的层次结构¶
如果复制层次结构中有多个slave,这些slave是其他slave的主人,比如" master -> slave1 -> slave2 ",- - -更新实例可以在从服务器上运行,也可以在主服务器上运行。默认心跳表(参见——create table)在server_id列,因此每个服务器将更新其中的行server_id = @@server_id.
为——raybet雷竞技竞猜在线官网监控而且——检查,如果——master-server-id未指定时,该工具将尝试发现和使用从服务器的直接主服务器。如果此操作失败,或者希望监视来自另一个主机的延迟,则可以指定raybet雷竞技竞猜在线官网——master-server-id使用。
例如,如果复制层次结构为“master -> slave1 -> slave2”,对应的服务器id为1、2和3,您可以:
pt-heartbeat——daemonize- d测验- - -更新- h主pt-heartbeat——daemonize- d测验- - -更新- hslave1
然后检查(或监视)从主服务器到raybet雷竞技竞猜在线官网从服务器的复制延迟:
pt-heartbeat- d测验——master-server-id1——检查slave2
或者查看从slave1到slave2的复制延迟:
pt-heartbeat- d测验——master-server-id2——检查slave2
停止- - -更新实例1 slave1不会影响主实例。
主从状态¶
默认心跳表(参见——create table)有用于保存信息的列显示主状态而且显示奴隶状态.这些列是可选的。如果有,则会保存相应的信息。
雷竞技下载官网Percona XtraDB集群¶
虽然pt-heartbeat应该与所有受支持的Percona XtraDB Cluster (PXC)版本兼容,我雷竞技下载官网们建议使用5.5.28-23.7或更新版本。
如果您正在集群节点之间设置心跳实例,请记住,由于集群的速度是由最慢的节点决定的,pt-heartbeat不会报告集群本身的速度有多快,而只报告事件从一个节点复制到另一个节点的速度。
您必须指定——master-server-id为——raybet雷竞技竞猜在线官网监控而且——检查实例。
选项¶
至少指定其中的一个——停止,- - -更新,——raybet雷竞技竞猜在线官网监控,或——检查.
- - -更新,——raybet雷竞技竞猜在线官网监控,——检查相互排斥。
——daemonize而且——检查相互排斥。
该工具接受额外的命令行参数。详细信息请参考“概要”和使用信息。
- ——ask-pass ¶
-
连接MySQL时提示输入密码。
- ——字符集 ¶
-
简写形式:-A;类型:字符串
默认字符集。如果值为utf8,将Perl在STDOUT上的binmode设置为utf8,将mysql_enable_utf8选项传递给DBD::mysql,并在连接mysql后运行SET NAMES utf8。任何其他值在没有utf8层的STDOUT上设置binmode,并在连接到MySQL后运行SET NAMES。
- ——检查 ¶
-
检查从机延迟一次,然后退出。如果你还指定
——递归,该工具将尝试发现给定slave的slave,并检查和打印它们的滞后。每个从机的主机名或IP和端口在延迟之前打印出来。——递归只适用于MySQL。
- ——check-read-only ¶
-
检查服务器是否启用了read_only;如果是,该工具将跳过任何插入操作。另请参阅
——read-only-interval
- ——配置 ¶
-
类型:数组
读取以逗号分隔的配置文件列表;如果指定,则必须是命令行上的第一个选项。
- ——create table ¶
-
创建心跳
——表如果它不存在。参数指定的表
——数据库而且——表使用以下MAGIC_create_heartbeat表定义创建:创建表格心跳(tsvarchar(26)不零,server_idint无符号不零主要的关键,文件varchar(255)默认的零,——显示主机状态位置长整型数字无符号默认的零,——显示主机状态relay_master_log_filevarchar(255)默认的零,——显示slave状态exec_master_log_pos长整型数字无符号默认的零——显示slave状态);
心跳表至少需要一行。如果你手动创建心跳表,那么你必须插入一行:
插入成心跳(ts,server_id)值(现在(),N);
或者如果使用
——utc:插入成心跳(ts,server_id)值(UTC_TIMESTAMP(),N);
在哪里
N是服务器的ID;不要使用@@server_id,因为它会复制,从服务器会插入自己的服务器ID,而不是主服务器的服务器ID。这是自动完成的
——create table.仍然支持旧版本的心跳表:
创建表格心跳(idint不零主要的关键,tsdatetime不零);
遗留表不支持
- - -更新多奴隶层次结构中每个奴隶上的实例,如“master -> slave1 -> slave2”。手动将需要的一行插入到遗留表中:插入成心跳(id,ts)值(1,现在());
或者如果使用
——utc:插入成心跳(id,ts)值(1,UTC_TIMESTAMP());
该工具自动检测heartbeat表是否为旧表。
参见“多奴隶等级制度”。
- ——create-table-engine ¶
-
类型:字符串
设置用于心跳表的引擎。MySQL 5.5.5版本默认存储引擎为InnoDB。
- ——daemonize ¶
-
Fork到后台并从shell分离。仅支持POSIX操作系统。
- ——数据库 ¶
-
简写形式:-D;类型:字符串
用于连接的数据库。
- ——dbi-driver ¶
-
默认值:mysql;类型:字符串
为连接指定一个驱动程序;
mysql而且Pg都受支持。
- ——defaults-file ¶
-
简写形式:-F;类型:字符串
只从给定文件中读取mysql选项。你必须给出一个绝对路径名。
- ——文件 ¶
-
类型:字符串
打印最新的
——raybet雷竞技竞猜在线官网监控输出到此文件。当
——raybet雷竞技竞猜在线官网监控,则将输出输出打印到指定文件而不是STDOUT。该文件每隔一段时间就会被打开、截断和关闭,因此它将只包含最新的统计信息。有用的时候——daemonize是给定的。
- ——帧 ¶
-
类型:字符串;默认值:1米,5米,15米
平均数的时间框架。
指定计算移动平均线的时间范围
——raybet雷竞技竞猜在线官网监控是给定的。指定为逗号分隔的带后缀的数字列表。后缀可以是s表示秒,m表示分钟,h表示小时,d表示天。最大帧的大小决定了最大内存使用量,因为在内存中保留了指定数量的每秒样本以计算平均值。您可以指定任意多的时间框架。
- ——帮助 ¶
-
求救并离开。
- ——主机 ¶
-
简写形式:-h;类型:字符串
连接到主机。
- ——[不]insert-heartbeat-row ¶
-
默认值:是的
控件中插入心跳行
——表如果不存在的话。心跳
——表需要一个心跳行,否则就没有- - -更新,——raybet雷竞技竞猜在线官网监控,或——检查!默认情况下,如果没有heartbeat行,该工具将插入一个heartbeat行。您可以通过指定禁用此特性——no-insert-heartbeat-row以防数据库用户没有INSERT权限。
- ——时间间隔 ¶
-
类型:浮动;默认值:1.0
多久更新或检查一次心跳
——表.更新和检查开始于第一个完整的秒,然后重复每一个——时间间隔秒- - -更新和每一个——时间间隔+——斜秒——raybet雷竞技竞猜在线官网监控.例如,如果在00:00.4
- - -更新实例每0.5秒启动一次,第一次更新发生在00:01.0,下一次更新发生在00:01.5,等等。如果在00:10.7 a——raybet雷竞技竞猜在线官网监控实例以0.05秒间隔启动,默认为0.5秒——斜,那么第一次检查发生在00:11.5 (00:11.0 + 0.5)——斜在最后一次更新之后的几秒,因为实例以同步的间隔进行检查,所以发生在00:11.0。该工具等待并开始第一个完整的秒,只是为了使间隔计算更简单。因此,该工具可以在更新或检查之前等待1秒。
最小(最快)间隔是0.01,最大精度是小数点后两位,因此0.015将四舍五入为0.02。
如果遗留心跳表(请参见
——create table),则最大精度为1s,因为ts列是类型datetime.
- ——日志 ¶
-
类型:字符串
守护时将所有输出打印到此文件。
- ——master-server-id ¶
-
类型:字符串
计算此主服务器ID的延迟
——raybet雷竞技竞猜在线官网监控或——检查.如果没有给出,pt-heartbeat尝试连接到服务器的主服务器并确定其服务器id。
- ——raybet雷竞技竞猜在线官网监控 ¶
-
raybet雷竞技竞猜在线官网连续监控从机延时。
指定pt-heartbeat应该每秒钟检查slave的延迟并报告给STDOUT(或者if
——文件而不是给文件)。输出是在给定时间范围内的当前延迟和移动平均值——帧.例如,5 s[0为,00。,002]
- ——fail-successive-errors ¶
-
类型:int
如果指定的,pt-heartbeat将在给定数量的连续DBI错误(连接服务器或发出查询失败)后失败。
- ——密码 ¶
-
简写形式:-p;类型:字符串
连接时使用的密码。如果password包含逗号,则必须用反斜杠转义:" exam,ple "
- ——pid ¶
-
类型:字符串
创建给定的PID文件。如果PID文件已经存在,并且其中包含的PID与当前PID不同,该工具将不会启动。但是,如果PID文件存在,并且其中包含的PID不再运行,该工具将用当前的PID覆盖PID文件。当工具退出时,PID文件将自动删除。
- ——港口 ¶
-
简写形式:-P;类型:int
用于连接的端口号。
- ——print-master-server-id ¶
-
打印自动检测或给定
——master-server-id.如果——检查或——raybet雷竞技竞猜在线官网监控,指定此选项将打印自动检测或给定——master-server-id在每一行的末尾。
- ——read-only-interval ¶
-
类型:int
当
——check-read-only当服务器被发现为只读时,休眠的时间间隔。如果未指定的,——时间间隔使用。
- ——递归 ¶
-
类型:int
递归检查slave到这个深度
——检查模式。尝试递归地发现从服务器,直到指定的深度。在发现服务器之后,对每个服务器运行检查并打印主机名(如果可能的话),然后打印从服务器延迟。
这目前只适用于MySQL。看到
——recursion-method.
- ——recursion-method ¶
-
类型:数组;默认值:processlist,主机
首选的递归方法用于查找从库。
可能的方法有:
方法使用=============================processlist显示PROCESSLIST主机显示奴隶主机没有做不找到奴隶
processlist方法是首选的,因为SHOW SLAVE HOSTS不可靠。但是,如果服务器使用非标准端口(不是3306),则需要使用hosts方法。通常pt-heartbeat做正确的事情,找到奴隶,但你可以给出一个首选的方法,它将被首先使用。如果没有找到任何slave,则会尝试其他方法。
- ——取代 ¶
-
使用
取代而不是更新- update。磨合时
- - -更新模式中,使用取代而不是更新设置心跳表的时间戳。的取代statement是MySQL对SQL的扩展。当您不知道表是否包含任何行时,此选项非常有用。它必须与-update结合使用。
- ——运行时 ¶
-
类型:时间
退出前的运行时间。
- ——哨兵 ¶
-
类型:字符串;默认值:/ tmp / pt-heartbeat-sentinel
如果该文件存在,退出。
- ——slave-user ¶
-
类型:字符串
设置用于连接从服务器的用户。此参数允许您拥有一个在slave上拥有较少权限的不同用户,但该用户必须存在于所有slave上。
- ——slave-password ¶
-
类型:字符串
设置用于连接从机的密码。它可以与-slave-user一起使用,并且所有slave上的用户密码必须相同。
- ——set-vars ¶
-
类型:数组
的列表中设置MySQL变量
变量=值对。默认情况下,工具集:
wait_timeout=10000
在命令行上指定的变量将覆盖这些默认值。例如,指定
——set-varswait_timeout = 500的默认值10000.如果无法设置变量,该工具将打印警告并继续。
- ——斜 ¶
-
类型:浮动;默认值:0.5
检查要延迟多长时间。
默认值是将检查延迟半秒。由于更新会在主服务器上的第二次更新开始后尽快进行,因此在报告从服务器落后于主服务器一秒之前,允许半秒的复制延迟。如果你的时钟不完全准确,或者有其他原因你想或多或少地延迟slave,你可以调整这个值。试着设置
PTDEBUG看看环境变量的影响。
- ——套接字 ¶
-
简写形式:-S;类型:字符串
用于连接的套接字文件。
- ——停止 ¶
-
通过创建哨兵文件停止运行实例。
这样做的效果应该是停止所有正在运行的实例,这些实例正在监视同一个哨兵文件。如果没有
- - -更新,——raybet雷竞技竞猜在线官网监控或——检查是指定的,pt-heartbeat将在创建文件后退出。如果指定了其中一个,pt-heartbeat等待的间隔是由——时间间隔,然后删除该文件并继续工作。您可能会发现,如果有必要,这可以方便地优雅地停止cron作业,或者用另一个实例替换一个正在运行的实例。例如,如果您想停止并重新启动pt-heartbeat每小时(只是为了确保每小时重新启动一次,以防服务器崩溃或其他问题),您可以使用
定时任务这样一行:0****程序:`pt-heartbeat`- - -更新- d测验——停止\——哨兵/ tmp / pt-heartbeat-hourly
非默认
——哨兵能保证每小时收费吗cron作业只停止以前使用相同选项启动的实例(即从相同的cron工作)。另请参阅
——哨兵.
- - - -更新 ¶
-
更新主节点心跳。
- ——用户 ¶
-
简写形式:-u;类型:字符串
如果不是当前用户,则为登录用户。
- ——utc ¶
-
忽略系统时区,只使用UTC。默认情况下pt-heartbeat没有检查或调整不同的系统或MySQL时区,这可能会导致工具计算错误的滞后。指定此选项是一个好主意,因为它可以确保工具在任何时区都能正确工作。
如果使用,则此选项必须用于所有选项pt-heartbeat实例:
- - -更新,——raybet雷竞技竞猜在线官网监控,——检查等。您可能应该在——配置文件。将此选项与pt-heartbeat不使用此选项的实例将由于不同的时区而导致假阳性滞后读数(除非您的所有系统都设置为使用UTC,在这种情况下不需要此选项)。
- ——版本 ¶
-
显示版本并退出。
- ——(没有)版本检查 ¶
-
默认值:是的
检查最新版本的Percona Toolkit、MySQL和其他程雷竞技下载官网序。
这是一个标准的“自动检查更新”功能,还有两个附加功能。首先,该工具检查自己的版本,以及以下软件的版本:操作系统、Percona监控和管理(PMM)、MySQL、Perl、MySQL Perl驱动程序(DBD:: MySQL)和Percona Toolkit。雷竞技下载官网raybet雷竞技竞猜在线官网其次,它检查并警告存在已知问题的版本。例如,MySQL 5.5.25有一个严重的错误,并重新发布为5.5.25a。
通过与Percona的Version Chec雷竞技下载官网k数据库服务器的安全连接来执行这些检查。服务器记录每个请求,包括软件版本号和所检查系统的唯一ID。该ID由Percona Toolkit安装脚本或第一次雷竞技下载官网调用Version Check数据库时生成。
在工具正常输出之前,任何更新或已知问题都打印到STDOUT。该特性不应干扰工具的正常操作。
更多信息,请访问https://www.雷竞技下载官网percona.com/doc/percona-toolkit/LATEST/version-check.html.
DSN选项¶
这些DSN选项用于创建DSN。每个选项给出如下选项=值.选项是区分大小写的,所以P和P不是同一个选项。的前面或后面不能有空格=如果值包含空格,则必须加引号。DSN选项以逗号分隔。详细信息请参阅p雷竞技下载官网ercona-toolkit manpage。
一个
dsn:字符集;复制:是的
默认字符集。
D
dsn:数据库;复制:是的
默认数据库。
F
dsn: mysql_read_default_file;复制:是的
只从给定文件中读取默认选项
h
dsn:主机;复制:是的
连接到主机。
p
dsn:密码;复制:是的
连接时使用的密码。如果password包含逗号,则必须用反斜杠转义:" exam,ple "
PgydF4y2Ba
dsn:港口;复制:是的
用于连接的端口号。
年代
dsn: mysql_socket;复制:是的
用于连接的套接字文件。
u
dsn:用户;复制:是的
如果不是当前用户,则为登录用户。
环境¶
环境变量PTDEBUG打开详细调试输出到STDERR。要启用调试并将所有输出捕获到一个文件,运行如下工具:
PTDEBUG=1pt-heartbeat...>文件2>&1
注意:调试输出是大量的,可能会产生几兆字节的输出。
注意¶
使用
系统需求¶
您需要Perl、DBI、DBD::mysql和一些核心包,这些包应该安装在任何合理的Perl新版本中。
错误¶
有关已知错误的列表,请参见https://jira.雷竞技下载官网percona.com/projects/PT/issues.
请在https://jira.雷竞技下载官网percona.com/projects/PT.在错误报告中包含以下信息:
用于运行工具的完整命令行
工具
——版本所有涉及的服务器的MySQL版本
工具的输出,包括STDERR
输入文件(日志/转储/配置文件等)
如果可能,通过运行工具包含调试输出PTDEBUG;看到“环境”。
下载¶
访问http://www.雷竞技下载官网percona.com/software/percona-toolkit/下载最新版本的Percona Toolkit。雷竞技下载官网或者,从命令行获取最新版本:
wget雷竞技下载官网percona.com/get/percona-toolkit.tar.gz wget雷竞技下载官网percona.com/get/percona-toolkit.rpm wget雷竞技下载官网percona.com/get/percona-toolkit.deb
您还可以从最新版本中获得单独的工具:
wget雷竞技下载官网percona.com/get/TOOL
取代工具使用任何工具的名称。
关于perc雷竞技下载官网ona工具箱¶
该工具是Percona Toolkit的一雷竞技下载官网部分,是Percona开发的MySQL高级命令行工具的集合。雷竞技下载官网Percona Toolkit在2011年6月从两个项目中分叉出来:Maatkit和Aspersa。这些项目是由Baron Schwartz创建的,主要由他和Daniel Nichter开发。访问http://www.雷竞技下载官网percona.com/software/以了解Percona的其他免费开源软件。雷竞技下载官网
版权、许可和保证¶
本节目版权归2007-2018 Percona LLC和/或其附属公司,雷竞技下载官网2006 Proven Scaling LLC和Six Apart Ltd所有。
欢迎反馈和改进。
本程序按“现状”提供,不作任何明示或默示保证,包括但不限于对适销性和适合某一特定用途的默示保证。
本程序是免费软件;您可以根据由自由软件基金会发布的GNU通用公共许可证第2版的条款重新发布它和/或修改它;或者Perl艺术许可。在UNIX和类似的系统上,您可以发出' man perlgpl '或' man perlartistic '来读取这些许可证。
您应该已随本程序收到一份GNU通用公共许可证的副本;如果没有,请写信给自由软件基金会,59 Temple Place, Suite 330, Boston, MA 02111-1307 USA。
版本¶
pt-heartbeat3.5.2