怎么做网站商城,什么是电商设计,wordpress 开启rss,做网站首页功能
pt-heartbeat - 监控 MySQL 复制延迟。 用法
pt-heartbeat [OPTIONS] [DSN] --update|--monitor|--check|--stop
pt-heartbeat 用于测量 MySQL 或 PostgreSQL 服务器上的复制延迟。您可以使用它来更新主服务器或监控从服务器。如果可能#xff0c;MySQL 连接选项将从您…功能
pt-heartbeat - 监控 MySQL 复制延迟。 用法
pt-heartbeat [OPTIONS] [DSN] --update|--monitor|--check|--stop
pt-heartbeat 用于测量 MySQL 或 PostgreSQL 服务器上的复制延迟。您可以使用它来更新主服务器或监控从服务器。如果可能MySQL 连接选项将从您的 .my.cnf 文件中读取。
启动守护进程以在主服务器上更新 test.heartbeat 表
pt-heartbeat -D test --update -h master-server --daemonize
在从服务器上监控复制延迟
pt-heartbeat -D test --monitor -h slave-serverpt-heartbeat -D test --monitor -h slave-server --dbi-driver Pg 检查从服务器延迟一次并退出使用可选的 DSN 指定从服务器主机 pt-heartbeat -D test --check hslave-server风险
Percona Toolkit 是成熟的、在真实世界中经过验证的并且经过了充分测试但所有数据库工具都可能对系统和数据库服务器造成风险。在使用此工具之前请
阅读工具的文档查看工具已知的“BUG”在非生产服务器上测试该工具备份您的生产服务器并验证备份 描述
pt-heartbeat 是一个两部分的 MySQL 和 PostgreSQL 复制延迟监控系统通过查看实际复制的数据来测量延迟。这避免了对复制机制本身例如 MySQL 的 SHOW SLAVE STATUS的依赖因为它是不可靠的。 SHOW SLAVE STATUS 为什么不可靠 第一部分是 pt-heartbeat 的 --update 实例连接到主服务器并每 --interval 秒更新一个时间戳“心跳记录”。由于心跳表可能包含来自多个主服务器的记录参见“多从层次结构”服务器的 IDserver_id用于标识记录。
第二部分是 pt-heartbeat 的 --monitor 或 --check 实例连接到从服务器检查来自其直接主服务器或指定的 --master-server-id 的复制的心跳记录并计算与当前系统时间的差异。如果从服务器和主服务器之间的复制延迟或中断则计算的差异将大于零并且如果指定了 --monitor可能会增加。
您必须手动在主服务器上创建心跳表或者使用 --create-table。请参阅 --create-table 以获取正确的心跳表结构。建议使用 MEMORY 存储引擎但对于 MySQL 当然不是必需的。
心跳表必须包含一个心跳行。默认情况下如果不存在心跳行则会插入一个心跳行。如果数据库用户没有 INSERT 权限则可以使用 --[no]insert-heartbeat-row 选项禁用此功能。
pt-heartbeat 仅依赖于复制到从服务器的心跳记录因此无论复制机制如何内置复制、Continuent Tungsten 等系统都可以工作。它在复制层次结构中的任何深度都可以工作例如它将可靠地报告从服务器落后于其主服务器的主服务器的主服务器。如果复制停止它将继续工作并报告准确地从服务器与主服务器之间的延迟越来越大。
pt-heartbeat 的最大分辨率为 0.01 秒。主服务器和从服务器的时钟必须通过 NTP 进行紧密同步。默认情况下--update 检查在秒的边缘发生例如 00:01--monitor 检查发生在秒的中间例如 00:01.5。只要服务器的时钟保持紧密同步复制事件在半秒内传播pt-heartbeat 就会报告零秒延迟。
如果连接出现错误pt-heartbeat 将尝试重新连接但如果在首次启动时无法获得连接则不会重试。
--dbi-driver 选项允许您使用 pt-heartbeat 监视 PostgreSQL。据报道它与 Slony-1 复制很好地配合使用。 级联复制结构
如果复制层次结构中有多个从服务器这些从服务器又是其他从服务器的主服务器例如“主服务器 - 从服务器1 - 从服务器2”则可以在从服务器以及主服务器上运行 --update 实例。默认的心跳表参见 --create-table是根据 server_id 列进行索引的因此每个服务器都将更新 server_idserver_id 的行。
对于 --monitor 和 --check如果未指定 --master-server-id则工具尝试发现并使用从服务器的直接主服务器。如果此失败或者如果您想要监视来自另一个主服务器的延迟则可以指定 --master-server-id 来使用。
例如如果复制层次结构是“主服务器 - 从服务器1 - 从服务器2”对应的服务器 ID 分别是 1、2 和 3您可以
pt-heartbeat --daemonize -D test --update -h master
pt-heartbeat --daemonize -D test --update -h slave1
从服务器1 然后检查或监视从主服务器到从服务器2的复制延迟
pt-heartbeat -D test --master-server-id 1 --check slave2
从服务器2 或者检查从从服务器1到从服务器2的复制延迟
pt-heartbeat -D test --master-server-id 2 --check slave2
从服务器2 停止在从服务器1上的 --update 实例不会影响主服务器上的实例。
主服务器和从服务器状态
默认的心跳表参见 --create-table具有保存 SHOW MASTER STATUS 和 SHOW SLAVE STATUS 信息的列。这些列是可选的。如果存在任何列它们对应的信息将被保存。 参数详解
至少指定 --stop、--update、--monitor 或 --check 中的一个。
--update、--monitor 和 --check 三者互斥。
--daemonize 和 --check 互斥。
此工具接受额外的命令行参数。有关详细信息请参阅“SYNOPSIS”和使用信息。
--ask-pass
连接到 MySQL 时提示输入密码。
--charset
缺省-A类型字符串
默认字符集。如果值为 utf8则设置 Perl 的 STDOUT 的 binmode 为 utf8将 mysql_enable_utf8 选项传递给 DBD::mysql并在连接到 MySQL 后运行 SET NAMES UTF8。任何其他值都会在连接到 MySQL 后设置 STDOUT 的 binmode但不使用 utf8 层并在连接到 MySQL 后运行 SET NAMES。
--check
检查一次从服务器的延迟并退出。如果还指定了 --recurse则工具将尝试发现给定从服务器的从服务器并检查并打印它们的延迟。在打印延迟之前会打印每个从服务器的主机名或 IP 和端口。--recurse 仅适用于 MySQL。
--check-read-only
检查服务器是否启用了 read_only如果启用了工具将跳过执行任何插入操作。另请参阅 --read-only-interval。
--config
类型数组
读取此逗号分隔的配置文件列表如果指定了此选项则必须将其作为命令行上的第一个选项。
--create-table
如果不存在创建心跳 --table。
此选项会导致使用以下 MAGIC_create_heartbeat 表定义创建由 --database 和 --table 指定的表 CREATE TABLE heartbeat (ts varchar(26) NOT NULL,server_id int unsigned NOT NULL PRIMARY KEY,file varchar(255) DEFAULT NULL, -- SHOW MASTER STATUSposition bigint unsigned DEFAULT NULL, -- SHOW MASTER STATUSrelay_master_log_file varchar(255) DEFAULT NULL, -- SHOW SLAVE STATUSexec_master_log_pos bigint unsigned DEFAULT NULL -- SHOW SLAVE STATUS
);
心跳表至少需要一行记录。如果您手动创建了心跳表则必须执行以下操作来插入一行记录 INSERT INTO heartbeat (ts, server_id) VALUES (NOW(), N);
如果使用 --utc 参数则执行以下操作
INSERT INTO heartbeat (ts, server_id) VALUES (UTC_TIMESTAMP(), N);
其中 N 是服务器的 ID不要使用 server_id因为它会被复制从服务器将插入自己的服务器 ID 而不是主服务器的服务器 ID。
这将由 --create-table 参数自动完成。
仍然支持一种传统版本的心跳表
CREATE TABLE heartbeat (id int NOT NULL PRIMARY KEY,ts datetime NOT NULL
);
传统表不支持在多个从服务器层次结构例如“主服务器 - 从服务器1 - 从服务器2”的每个从服务器上进行 --update 实例。要手动向传统表中插入所需的一行记录请执行以下操作
INSERT INTO heartbeat (id, ts) VALUES (1, NOW());如果使用 --utc 参数则执行以下操作
INSERT INTO heartbeat (id, ts) VALUES (1, UTC_TIMESTAMP()); --create-table-engine
指定用于心跳表的存储引擎。默认的存储引擎是 InnoDB适用于 MySQL 5.5.5 及以上版本。
--daemonize
在后台进行分叉并与 shell 分离。仅适用于 POSIX 操作系统。
--database
short form: -D; type: string
用于连接的数据库。
--dbi-driver 默认值mysql类型字符串
指定连接的驱动程序支持 mysql 和 Pg。
--defaults-file short form: -F; type: string
仅从给定文件中读取 mysql 选项。您必须提供绝对路径名。
--file 类型字符串
将最新的 --monitor 输出打印到此文件。
当使用 --monitor 时将输出打印到指定的文件中而不是 STDOUT。该文件在每次间隔时打开、截断并关闭因此它只包含最新的统计信息。在使用 --daemonize 时很有用。
--frames
类型字符串默认值1m,5m,15m
平均值的时间段。
在给定 --monitor 时指定计算移动平均值的时间段。以逗号分隔的数字列表形式指定。后缀可以是 s 表示秒m 表示分钟h 表示小时或 d 表示天。最大帧的大小确定了最大内存使用量因为在内存中保留了指定数量的每秒样本以计算平均值。您可以指定任意数量的时间段。
--help 显示帮助并退出。
--host
short form: -h; type: string
连接到主机。
--[no]insert-heartbeat-row 默认值yes
如果 --table 中不存在心跳行则插入一行心跳行。
心跳 --table 需要一个心跳行否则没有东西可以 --update、--monitor 或 --check默认情况下如果尚未存在心跳行则工具将插入一个心跳行。如果数据库用户没有 INSERT 权限可以通过指定 --no-insert-heartbeat-row 来禁用此功能。
--interval 类型浮点数默认值1.0
更新或检查心跳 --table 的频率。更新和检查从第一个整秒开始然后每隔 --interval 秒进行一次 --update每隔 --interval 加上 --skew 秒进行一次 --monitor。
例如如果在 00:00.4 开始一个 --update 实例间隔为 0.5 秒则第一个更新将在 00:01.0 发生下一个将在 00:01.5 发生依此类推。如果在 00:10.7 开始一个 --monitor 实例间隔为 0.05 秒并且默认的 0.5 秒 --skew则第一次检查将在 00:11.500:11.0 0.5进行这将是距离最后一次更新 --update 工作间隔的 --skew 秒因为实例是以同步间隔进行检查的它发生在 00:11.0。
工具在更新或检查之前等待并从第一个整秒开始以简化间隔计算。因此工具可能在更新或检查之前等待最多 1 秒。
最小最快间隔为 0.01最大精度为两位小数因此 0.015 将四舍五入为 0.02。
如果使用传统的心跳表见 --create-table则最大精度为 1s因为 ts 列的类型是 datetime。
--log
类型字符串
将所有输出打印到此文件中。
当进行守护化时将输出打印到指定的文件中。
--master-server-id
类型字符串
计算 --monitor 或 --check 的延迟从此主服务器 ID。如果未给出则 pt-heartbeat 尝试连接到服务器的主服务器并确定其服务器 ID。
--monitor
持续监视从服务器延迟。
指定 pt-heartbeat 应该每秒检查一次从服务器的延迟并报告到 STDOUT或如果给出了 --file则报告到文件。输出是当前延迟然后是给定的 --frames 中时间段的移动平均值。例如 5s [ 0.25s, 0.05s, 0.02s ] --fail-successive-errors
类型整数
如果指定则 pt-heartbeat 将在给定数量的连续 DBI 错误后失败无法连接到服务器或发出查询。
--password short form: -p; type: string
连接时使用的密码。如果密码包含逗号则必须用反斜杠转义“exam,ple”
--pid 类型字符串
创建给定的 PID 文件。如果 PID 文件已存在并且其中包含的 PID 与当前 PID 不同则工具不会启动。但是如果 PID 文件存在并且其中包含的 PID 不再运行则工具将用当前 PID 覆盖 PID 文件。工具退出时PID 文件会自动删除。
--port short form: -P; type: int
用于连接的端口号。
--print-master-server-id
打印自动检测或给定的 --master-server-id。如果指定了 --check 或 --monitor则指定此选项将在每行的末尾打印自动检测到或给定的 --master-server-id。
--read-only-interval
类型整数
当指定了 --check-read-only 时发现服务器为只读时的间隔。如果未指定则使用 --interval。
--recurse 类型整数
在 --check 模式下递归检查从服务器的深度。
尝试递归地发现从服务器直到指定的深度。在发现服务器之后对每个服务器运行检查并打印主机名如果可能然后是从服务器延迟。
目前此功能仅适用于 MySQL。请参阅 --recursion-method。
--recursion-method
类型数组默认值processlist,hosts
用于查找从服务器的首选递归方法。
可能的方法包括
METHOD USESprocesslist SHOW PROCESSLIST
hosts SHOW SLAVE HOSTS
none Do not find slaves
不查找从服务器 processlist 方法优先因为 SHOW SLAVE HOSTS 不可靠。但是如果服务器使用非标准端口不是 3306则需要使用 hosts 方法。通常情况下pt-heartbeat 会找到从服务器但是您可以给出首选方法它将首先使用。如果找不到任何从服务器则会尝试其他方法。
--replace 在 --update 中使用 REPLACE 而不是 UPDATE。
在 --update 模式下运行时使用 REPLACE 而不是 UPDATE 来设置心跳表的时间戳。REPLACE 语句是 MySQL 对 SQL 的扩展。当您不知道表是否包含任何行时此选项非常有用。它必须与 --update 一起使用。
--run-time
类型时间
运行的时间然后退出。
--sentinel
类型字符串默认值/tmp/pt-heartbeat-sentinel
如果此文件存在则退出。
--slave-user
类型字符串
设置要用于连接到从服务器的用户。此参数允许您在从服务器上使用一个具有较少权限的不同用户但该用户必须存在于所有从服务器上。
--slave-password
类型字符串
设置要用于连接到从服务器的密码。可以与 --slave-user 一起使用用户的密码必须在所有从服务器上相同。
--set-vars
类型数组
设置此逗号分隔的变量值对的 MySQL 变量。
默认情况下工具设置
wait_timeout10000
命令行中指定的变量将覆盖这些默认值。例如指定 --set-vars wait_timeout500 将覆盖 10000 的默认值。
如果无法设置变量则工具会打印警告并继续执行。
--skew
类型浮点数默认值0.5
延迟检查的时间。
默认情况下将延迟检查半秒钟。由于更新尽快在主服务器的第二秒开始后发生这允许一秒钟的复制延迟然后报告从服务器比主服务器落后一秒钟。如果您的时钟不完全准确或有其他原因需要延迟从服务器更长或更短时间可以调整此值。尝试将 PTDEBUG 环境变量设置为查看此选项的影响。
--stop
通过创建 sentinel 文件来停止运行的实例。
这应该有助于优雅地停止必要的 cron 作业或者替换一个正在运行的实例。例如如果您想每小时停止并重新启动 pt-heartbeat只是为了确保每小时重新启动一次在服务器崩溃或其他问题时您可以使用类似以下的 cron 行
0 * * * * :program:pt-heartbeat --update -D test --stop \--sentinel /tmp/pt-heartbeat-hourly
非默认的 --sentinel 将确保每小时 cron 作业仅停止以前使用相同选项即从相同的 cron 作业启动的实例。
另请参阅 --sentinel。
--table
类型字符串默认值heartbeat
用于心跳的表。
不要指定 database.table使用 --database 指定数据库。
请参阅 --create-table。
--update
更新主服务器的心跳。
--utc¶ 忽略系统时区仅使用 UTC。默认情况下pt-heartbeat 不会检查或调整不同系统或 MySQL 时区这可能导致工具计算延迟不正确。指定此选项是一个好主意因为它确保工具无论时区如何都能正确工作。
如果使用此选项必须用于所有 pt-heartbeat 实例--update、--monitor、--check 等。您可能应该在 --config 文件中设置此选项。将此选项与未使用此选项的 pt-heartbeat 实例混合使用将导致由于不同的时区除非所有系统都设置为使用 UTC否则不需要此选项而产生错误的延迟读数。
--version
显示版本并退出。
--[no]version-check
默认值yes
检查 Percona Toolkit、MySQL 和其他程序的最新版本。
这是一个标准的“自动检查更新”的功能具有两个附加功能。首先工具检查自身的版本以及以下软件的版本操作系统、Percona 监控和管理PMM、MySQL、Perl、MySQL Perl 驱动程序DBD::mysql和 Percona Toolkit。其次它检查并警告已知存在问题的版本。例如MySQL 5.5.25 存在严重的错误并作为 5.5.25a 重新发布。
通过安全连接到 Percona 的版本检查数据库服务器执行这些检查。每个请求都由服务器记录包括软件版本号和所检查系统的唯一 ID。ID 是由 Percona Toolkit 安装脚本生成的或者当首次调用版本检查数据库时生成。
任何更新或已知问题都会在工具的正常输出之前打印到 STDOUT。此功能不应干扰工具的正常操作。
有关更多信息请访问 https://www.percona.com/doc/percona-toolkit/LATEST/version-check.html。
版本
pt-heartbeat 3.5.7