首页 > 数据库 > 【MySQL 8.0】通过pt-table-checksum校验从库与主库的数据一致性

【MySQL 8.0】通过pt-table-checksum校验从库与主库的数据一致性

时间:2023-08-26 14:32:12浏览次数:34  
标签:主库 8.0 pt -- 08 tpcc10 table 04T12

通过yum安装percona-toolkit
[root@node01 ~]# wget https://repo.percona.com/yum/percona-release-latest.noarch.rpm
[root@node01 ~]# rpm -ivh percona-release-latest.noarch.rpm
[root@node01 ~]# yum install -y percona-toolkit

[mysql@node01 ~]$ pt-table-checksum --version
pt-table-checksum 3.5.4

从库只读,从库与主库的数据保持一致
[mysql@node01 ~]$ pt-table-checksum --user=root --ask-pass --host=192.168.1.101 --port=3306 --databases=tpcc10 \
--replicate=tpcc10.checksums --nocheck-replication-filters --nocheck-binlog-format --noversion-check
Enter MySQL password: 
Checking if all tables can be checksummed ...
Starting checksum ...
            TS ERRORS  DIFFS     ROWS  DIFF_ROWS  CHUNKS SKIPPED    TIME TABLE
08-04T12:37:34      0      0   300000          0      38       0  19.408 tpcc10.customer
08-04T12:37:35      0      0      100          0       1       0   0.397 tpcc10.district
08-04T12:37:46      0      0   300000          0      20       0  11.456 tpcc10.history
08-04T12:37:50      0      0   100000          0       8       0   3.560 tpcc10.item
08-04T12:37:51      0      0    90000          0       5       0   1.661 tpcc10.new_orders
08-04T12:39:02      0      0  3000331          0     115       0  71.013 tpcc10.order_line
08-04T12:39:10      0      0   300000          0      14       0   7.468 tpcc10.orders
08-04T12:39:40      0      0  1000000          0      56       0  30.119 tpcc10.stock
08-04T12:39:40      0      0       10          0       1       0   0.365 tpcc10.warehouse

在从库执行DML事务模拟与主库数据不一致
[mysql@node02 ~]$ mysql -uroot -pabcd.1234 -e 'set global super_read_only=0'

[mysql@node02 ~]$ tpcc-mysql/tpcc_start -h node02 -P 3306 -d tpcc10 -u tpcc -p tpcc -w 10 -c 10 -l 60 

校验从库与主库的数据是否一致,因为在从库执行事务导致与主库多个表数据不一致
[mysql@node01 ~]$ pt-table-checksum --user=root --ask-pass --host=192.168.1.101 --port=3306 --databases=tpcc10 \
--replicate=tpcc10.checksums --nocheck-replication-filters --nocheck-binlog-format --noversion-check
Enter MySQL password: 
Checking if all tables can be checksummed ...
Starting checksum ...
            TS ERRORS  DIFFS     ROWS  DIFF_ROWS  CHUNKS SKIPPED    TIME TABLE
08-04T12:43:27      0     28   300000          0      30       0  17.378 tpcc10.customer
08-04T12:43:27      0      1      100          0       1       0   0.418 tpcc10.district
08-04T12:43:36      0      1   300000        479      17       0   9.015 tpcc10.history
08-04T12:43:42      0      0   100000          0       6       0   5.469 tpcc10.item
08-04T12:43:45      0      4    90000          5       5       0   3.456 tpcc10.new_orders
08-04T12:44:50      0    105  3000331         53     109       0  64.864 tpcc10.order_line
08-04T12:44:59      0     13   300000          5      14       0   8.469 tpcc10.orders
08-04T12:45:40      0     67  1000000          0      69       0  41.395 tpcc10.stock
08-04T12:45:41      0      1       10          0       1       0   0.442 tpcc10.warehouse
通过pt-table-sync同步从库与主库数据不一致的表
[root@node01 ~]# pt-table-sync --version
pt-table-sync 3.5.2

打印同步从库与主库数据不一致的表的sql语句
[mysql@node01 ~]$ pt-table-sync --print --replicate=tpcc10.checksums \
h=192.168.1.101,u=root,p=abcd.1234 h=192.168.1.102,u=root,p=abcd.1234 >diffs.sql

执行同步从库与主库数据不一致的表的sql语句
[mysql@node01 ~]$ pt-table-sync --execute --replicate=tpcc10.checksums \
h=192.168.1.101,u=root,p=abcd.1234 h=192.168.1.102,u=root,p=abcd.1234 --noforeign-key-checks

再次校验从库与主库的表数据是否一致,全部表数据一致
[mysql@node01 ~]$ pt-table-checksum --user=root --ask-pass --host=192.168.1.101 --port=3306 --databases=tpcc10 \
--replicate=tpcc10.checksums --nocheck-replication-filters --nocheck-binlog-format --noversion-check
Enter MySQL password: 
Checking if all tables can be checksummed ...
Starting checksum ...
            TS ERRORS  DIFFS     ROWS  DIFF_ROWS  CHUNKS SKIPPED    TIME TABLE
08-04T13:32:08      0      0   300000          0      26       0  11.439 tpcc10.customer
08-04T13:32:08      0      0      100          0       1       0   0.415 tpcc10.district
08-04T13:32:15      0      0   300000          0      15       0   7.024 tpcc10.history
08-04T13:32:18      0      0   100000          0       8       0   3.136 tpcc10.item
08-04T13:32:20      0      0    90000          0       5       0   1.650 tpcc10.new_orders
08-04T13:33:12      0      0  3000331          0      85       0  52.574 tpcc10.order_line
08-04T13:33:20      0      0   300000          0      14       0   7.445 tpcc10.orders
08-04T13:33:52      0      0  1000000          0      50       0  31.991 tpcc10.stock
08-04T13:33:52      0      0       10          0       1       0   0.427 tpcc10.warehouse

标签:主库,8.0,pt,--,08,tpcc10,table,04T12
From: https://blog.51cto.com/dbprofessional/7244150

相关文章

  • 报错ValueError: Can't find 'adapter_config.json'
    前言在做组内2030项目时,我具体做的一个工作是对大模型进行LoRA微调,在整个过程中有许多坑,其中有些值得记录的问题,于是便产生了这篇博客。问题我在得到微调好的模型后,需要对模型进行性能测评。在加载模型时,遇到如下报错ValueError:Can'tfind'adapter_config.json'补充:报错......
  • 【MySQL 8.0】建立安全的网络连接
    (root@node01)>showglobalvariableslike'require_secure_transport';+--------------------------+-------+|Variable_name|Value|+--------------------------+-------+|require_secure_transport|OFF|+----------------------......
  • 【MySQL 8.0】透明数据加密(TDE)
    [mysql@node01~]$vim/etc/my.cnf[mysqld]early-plugin-load=keyring_file.sokeyring_file_data=/usr/local/mysql/data/keyring(root@node01)>selectplugin_name,plugin_statusfrominformation_schema.pluginswhereplugin_namelike'keyring%';......
  • System.Messaging.MessageQueueException: 对消息队列系统的访问被拒绝
    无法启动服务。System.Messaging.MessageQueueException:对消息队列系统的访问被拒绝。使用Windows的消息队列时,窗体界面的应用可以对消息队列进行全部权限的操作,但是编写的Windows服务对消息队列进行操作时有可能会出现此错误提示,在这里提供一种解决方法:首先明确Windows服务程......
  • org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or nu
    "org.apache.ibatis.exceptions.TooManyResultsException:Expectedoneresult(ornull)tobereturnedbyselectOne(),butfound:2"是MyBatis框架中的异常错误信息,表示在使用selectOne()方法执行查询时,期望返回一个结果(或null),但实际上返回了多个结果。selectOne()方......
  • 【MySQL 8.0】在组复制(MGR)的基础上创建InnoDB Cluster
    [root@node04~]#wgethttps://dev.mysql.com/get/Downloads/MySQL-Shell/mysql-shell-8.0.32-1.el7.x86_64.rpm[root@node04~]#yumlocalinstallmysql-shell-8.0.32-1.el7.x86_64.rpm-y[root@node04~]#mysqlshMySQLJS>\connectroot@node01:3306MySQL......
  • 【MySQL 8.0】密码复杂度验证组件与连接控制插件
    (root@node01)>installcomponent'file://component_validate_password';QueryOK,0rowsaffected(0.08sec)(root@node01)>select*frommysql.component;+--------------+--------------------+------------------------------------+|compo......
  • JavaScript-算术运算符
    概述JavaScript共提供10个算术运算符,用来完成基本的算术运算。加法运算符:x+y减法运算符: x-y乘法运算符: x*y除法运算符:x/y指数运算符:x**y余数运算符:x%y自增运算符:++x 或者 x++自减运算符:--x 或者 x--数值运算符: +x负数值运算符:-x减法、乘法、除法运算法比较单纯......
  • 分享一个批量转换某个目录下的所有ppt->pdf的Python代码
    大家好,我是皮皮。一、前言前几天在Python最强王者群【Python小小小白】分享了一份Python自动化办公的代码,可以批量转换某个目录下的所有ppt->pdf,非常强大。二、实现过程在正式跑代码之后,你可能需要按照对应的库,不然会报错。代码运行之后,本地会出现下面的UI界面,选择PPT文件......
  • Spark任务提交到Yarn状态一直是Accepted
    现象今天提交Spark任务到Yarn集群,但是任务状态一直是Accepted:23/08/2514:59:55INFOClient:Applicationreportforapplication_1692971614101_0018(state:ACCEPTED)原因前端时间也遇到这个问题,是因为Yarn集群健康节点是0,不健康的节点点进详情显示:1/1local-......