数据库同步工具
sqlserver,Mysql数据同步软件

percona-toolkit(pt-heartbeat)工具监控Mysql主从同步状态

购买事宜请联系QQ:1793040

percona-toolkit是高级命令行工具的集合,这些工具可以查看当前服务的摘要信息,磁盘检测,分析慢速查询日志,查找重复索引,实现表同步等。

[root @ push-5-221 src]#cd/usr/local/src/

[root @ push-5-221 src]#wget https://www.percona.com/downloads/percona-toolkit/3.0.12/binary/redhat/7/x86_64/percona-toolkit-3.0.12-1。 el7.x86_64.rpm

1.安装percona依赖库:

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

2.测试从属库是否已成功安装:

百胜榜| grep percona

3.安装percona

yum install percona-xtrabackup-24

解决方案:

百胜更新percona发行版

百胜更新

4.安装完成。

? rpm-ql percona-xtrabackup-24

Xtrabackup 2.4。不再支持MySQL 8.0的备份和恢复,使用时将报告以下错误!

错误:Percona Xtrabackup 2.4.x系列不支持MySQL 8.0和Percona Server 8.0。请使用Percona Xtrabackup 8.0.x进行备份和还原。

从percona下载rpm软件包的centos版本,并使用yum进行安装(示例):

yum-y localinstall percona-xtrabackup-80-8.0.1-2.alpha2.el7.x86_64.rpm

? yum安装https://repo.percona.com/centos/7/RPMS/noarch/percona-release-0.1-8.noarch.rpm

xtrabackup–version?查看版本

安装percona-xtrabackup-80

yum-y安装percona-xtrabackup-80-8.0.7-1.el7.x86_64.rpm

安装后检查结果,发现没有innobackupex命令

? rpm-ql percona-xtrabackup-80-8.0.7-1.el7.x86_64

root @ push-5-221 src]#rpm-ivh percona-toolkit-3.0.12-1.el7.x86_64.rpm

警告:percona-toolkit-3.0.12-1.el7.x86_64.rpm:标头V4 DSA/SHA1签名,密钥ID cd2efd2a:NOKEY

错误:相关性测试失败:

perl(DBI)\ = percona-toolkit-3.0.12-1.el7.x86_64需要1.13

perl(DBD :: mysql)\ gt; = percona-toolkit-3.0.12-1.el7.x86_64需要1.0

percona-toolkit-3.0.12-1.el7.x86_64需要perl(IO ::套接字:: SSL)

percona-toolkit-3.0.12-1.el7.x86_64需要perl(Digest :: MD5)

perl(术语:: ReadK

显示需要一些依赖程序包,安装相应的依赖程序包

[root @ push-5-221 src]#yum install-y perl-DBI perl-DBD-MySQL perl-Digest-MD5 perl-IO-Socket-SSL perl-TermReadKey

重新安装

[root @ push-5-221 src]#rpm-ivh percona-toolkit-3.0.12-1.el7.x86_64.rpm

警告:percona-toolkit-3.0.12-1.el7.x86_64.rpm:标头V4 DSA/SHA1签名,密钥ID cd2efd2a:NOKEY

正在准备中...################################ [100%]

升级/安装...

1:percona-toolkit-3.0.12-1.el7 ################################ [100%]

[root @ push-5-221 src]#

成功安装,验证

[root @ push-5-221 src]#pt-online-schema-change--version

pt-online-schema-change 3.0.12

1,pt心跳

#用于监视mysql复制体系结构的延迟。

#主要通过主库上的–update线程来连续更新指定表上的时间戳,从库上的–monitor线程或–check线程检查主库更新的时间戳,并将其与当前系统时间延迟值。

2,pt-query-digest

#用于分析mysql服务器的慢查询日志,并格式化输出以方便查看和分析。

3,pt-diskstats

#与iostat类似,打印磁盘io统计信息,但是此工具是交互式的,比iostat更详细。可以分析从远程计算机收集的数据。

4,pt从属查找

#连接到mysql主服务器并找到其所有从属服务器,然后打印出所有从属服务器的层次关系。

[root @ push-5-221 src]#pt-slave-find--host = 127.0.0.1--user = root--password = xxxxxxx

127.0.0.1

版本5.7.26-log

伺服器编号2213306

正常运行时间21 + 19:54:53(开始于2019-06-12T13:16:24)

复制不是从站,已连接1个从站,不是只读

筛选器

二进制日志行

从站状态

从模式STRICT

自动增量增量1,偏移量1

InnoDB版本5.7.26

+-172.28.5.222

版本5.7.26-log

服务器ID 2223306

正常运行时间21 + 19:07:10(从2019-06-12T14:04:07开始)

复制不是从站,已连接1个从站,不是只读

筛选器

二进制日志行

从站状态

从模式STRICT

自动增量增量1,偏移量1

InnoDB版本5.7.26

+-172.28.5.223

版本5.7.26-log

服务器ID 2233306

正常运行时间21 + 19:02:48(开始于2019-06-12T14:08:29)

复制不是从站,已连接1个从站,不是只读

筛选器

二进制日志行

从站状态

从模式STRICT

自动增量增量1,偏移量1

InnoDB版本5.7.26

[root @ push-5-221 src]#

5,pt-stalk

#用于当mysql数据库出现故障时收集相关信息,以进行后续诊断和处理。

6,pt-kill

#终止符合指定条件的mysql语句

7,pt升级?

#此命令主要用于比较不同MySQL版本下SQL执行的差异,通常用于在升级之前进行比较。

#将生成在每个服务器上执行的SQL文件或单个SQL语句的结果,错误和警告。

? 8,pt-online-schema-change

#该功能支持在线更改表结构,而无需锁定原始表或阻止原始表的DML操作。

#此功能基本上类似于Oracle的dbms_redefinition在线重新定义表的原理。

? 9,pt-mysql-summary

#为连接的mysql服务器生成详细的配置和饱和度信息

#最后还提供了有关当前实例的配置文件的信息

1.在主库中有一个用于检查延迟的表心跳,可以手动或自动创建。 pt-heartbeat使用–update参数连接到主库,并继续(根据set–interval参数)使用时间戳更新表心跳

2.pt-heartbeat使用–monitor或–check连接到从属库,检查与主库同步的时间戳,并与当前系统时间戳进行比较以产生差值,该差值用于判决延迟。 (注意,前提条件是主库和从属库应保持时间同步)

1.在主库上手动创建心跳数据库

mysql \ gt;创建数据库心跳默认CHARACTER设置utf8;

查询正常,受影响1行(0.16秒)

? 2.使用–create-table吗? pt-heartbeat的参数可在主库中添加心跳表

[root @ push-5-221]#pt-heartbeat-S/var/lib/mysql/3306/mysql.sock-uroot-pxxxxxxxx-D heartbeat--create-table--update

****************************************************** *****************

对客户端使用SSL_VERIFY_NONE的默认SSL_verify_mode

不推荐使用!请将SSL_verify_mode设置为SSL_VERIFY_PEER

可能与SSL_ca_file | SSL_ca_path进行验证。

如果您真的不想验证证书并保留

请设置中间人攻击的连接

在您的应用程序中将SSL_verify_mode显式更改为SSL_VERIFY_NONE。

****************************************************** *****************

在/usr/bin/pt-heartbeat第4515行。

****************************************************** *****************

对客户端使用SSL_VERIFY_NONE的默认SSL_verify_mode

不推荐使用!请将SSL_verify_mode设置为SSL_VERIFY_PEER

可能与SSL_ca_file | SSL_ca_path进行验证。

如果您真的不想验证证书并保留

请设置中间人攻击的连接

在您的应用程序中将SSL_verify_mode显式更改为SSL_VERIFY_NONE。

****************************************************** *****************

在/usr/bin/pt-heartbeat第4515行。

#提供了一个软件更新:

? ctrl + c退出,输入mysql以查看心跳表

[root @ push-5-221]#mysql-S/var/lib/mysql/3306/mysql.sock-uroot-p

mysql \ gt;使用心跳;

读取表信息以完成表和列名

您可以关闭此功能以使用-A更快地启动

数据库已更改

mysql \ gt;从心跳中选择*;

+----------------------------+-----------+-------------------+-----------+-----------------------+--------------------+

| ts | server_id |文件位置| relay_master_log_file | exec_master_log_pos |

+----------------------------+-----------+-------------------+-----------+-----------------------+--------------------+

| 2019-07-04T11:12:07.006920 | 2213306 | master-221.000022 | 643873543 | NULL | NULL |

+----------------------------+-----------+-------------------+-----------+-----------------------+--------------------+

设置1行(0.00秒)

mysql \ gt;

3.启动pt-heartbeat守护程序,定期更新心跳表,并定期将最新的时间戳信息更新(默认为1S)到ts字段

[root @ push-5-221]#pt-heartbeat-S/var/lib/mysql/3306/mysql.sock-uroot-pxxxxxxxxxxx-D heartbeat--update--daemonize

4.检查心跳表并继续查询。此时,发现ts时间戳将每秒更新一次

mysql \ gt;从心跳中选择*;

+----------------------------+-----------+-------------------+-----------+-----------------------+--------------------+

| ts | server_id |文件位置| relay_master_log_file | exec_master_log_pos |

+----------------------------+-----------+-------------------+-----------+-----------------------+--------------------+

| 2019-07-04T11:20:06.001140 | 2213306 | master-221.000022 | 659484111 | NULL | NULL |

+----------------------------+-----------+-------------------+-----------+-----------------------+--------------------+

设置1行(0.00秒)

mysql \ gt;从心跳中选择*;

+----------------------------+-----------+-------------------+-----------+-----------------------+--------------------+

| ts | server_id |文件位置| relay_master_log_file | exec_master_log_pos |

+----------------------------+-----------+-------------------+-----------+-----------------------+--------------------+

| 2019-07-04T11:20:08.064020 | 2213306 | master-221.000022 | 659558141 | NULL | NULL |

+----------------------------+-----------+-------------------+-----------+-----------------------+--------------------+

设置1行(0.00秒)

mysql \ gt;从心跳中选择*;

+----------------------------+-----------+-------------------+-----------+-----------------------+--------------------+

| ts | server_id |文件位置| relay_master_log_file | exec_master_log_pos |

+----------------------------+-----------+-------------------+-----------+-----------------------+--------------------+

| 2019-07-04T11:20:10.097910 | 2213306 | master-221.000022 | 659633844 | NULL | NULL |

+----------------------------+-----------+-------------------+-----------+-----------------------+--------------------+

设置1行(0.00秒)

5.运行pt-hearbeat守护程序进行连接以从库中执行监视命令

[root @ push-5-221]#pt-heartbeat-uroot-pxxxxxxxxx-h172.28.5.222--port = 3307-D heartbeat--monitor

****************************************************** *****************

对客户端使用SSL_VERIFY_NONE的默认SSL_verify_mode

不推荐使用!请将SSL_verify_mode设置为SSL_VERIFY_PEER

可能与SSL_ca_file | SSL_ca_path进行验证。

如果您真的不想验证证书并保留

请设置中间人攻击的连接

在您的应用程序中将SSL_verify_mode显式更改为SSL_VERIFY_NONE。

****************************************************** *****************

在/usr/bin/pt-heartbeat第4515行。

****************************************************** *****************

对客户端使用SSL_VERIFY_NONE的默认SSL_verify_mode

不推荐使用!请将SSL_verify_mode设置为SSL_VERIFY_PEER

可能与SSL_ca_file | SSL_ca_path进行验证。

如果您真的不想验证证书并保留

请设置中间人攻击的连接

在您的应用程序中将SSL_verify_mode显式更改为SSL_VERIFY_NONE。

****************************************************** *****************

在/usr/bin/pt-heartbeat第4515行。

#有可用的软件更新:

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

0.00秒[0.00秒,0.00秒,0.00秒]

^ C

监视数据将每秒刷新一次。您可以看到当前的主从同步良好,没有延迟。

? 6.重新启动主库更新过程

[root @ push-5-221]#pt-heartbeat--stop

成功创建文件/tmp/pt-heartbeat-sentinel

[root @ push-5-221]#rm-rf/tmp/pt-heartbeat-sentinel

[root @ push-5-221]#pt-heartbeat-S/var/lib/mysql/3306/mysql.sock-uroot-pxxxxxxxxxxx-D heartbeat--update--interval = 1--daemonize

[root @ push-5-221]#

7.使用守护程序监视从属库并输出到日志文件

[root @ push-5-221]#pt-heartbeat-uroot-pxxxxxxxxxxx-h172.28.5.222--port = 3307-D heartbeat--monitor--daemonize--log =/tmp/mysql-slave-sync.log

[root @ push-5-221]#

8.实时查看日志

[root @ push-5-221]#tail-f/tmp/mysql-slave-sync.log

未经允许不得转载:数据库同步软件|Mysql数据同步软件|sqlserver数据库同步工具|异构同步 » percona-toolkit(pt-heartbeat)工具监控Mysql主从同步状态

分享到:更多 ()

syncnavigator 8.6.2 企业版

联系我们联系我们