【问题标题】:pt-table-checksum does't work with multi source (mariadb) Editpt-table-checksum 不适用于多源 (mariadb) 编辑
【发布时间】:2017-12-05 05:09:03
【问题描述】:

pt-checksum 在多源(基于通道)复制中进入永无止境的循环:

我的环境中的多源复制

n1 -> n2(创建 n1 作为通道复制)
n2 -> n3
n1 -> n3(n3 将从 n1 和 n2 通道复制)

只要没有通道复制 pt-checksum 就可以正常工作。 (传统复制/默认复制没有任何问题)

一旦我启用了通道方式(仅 n1,删除了 n2 通道)复制 (n1->n3),pt-checksum 就不会通过。

副本 n3-VirtualBox 已停止。等待。
副本 n3-VirtualBox 已停止。等待。

来自一般日志 n1:

查询 SELECT 'pt-table-checksum keepalive'
查询 SELECT 'pt-table-checksum keepalive'

【问题讨论】:

  • 请在jira.percona.com 上打开关于此问题的错误报告。 pt-table-checksum 很有可能还不能用于多源。

标签: percona


【解决方案1】:

我通过以下方法解决了这个问题:

在主数据库服务器上

(i) 为了安全起见,我复制了原始 /bin/pt-table-checksum

cp /bin/pt-table-checksum /bin/pt-table-checksumorg

(ii) 打开 /bin/pt-table-checksum 文件

vi /bin/pt-table-checksum

(iii) 转到第 8590 行 按 esc,输入 8590 ,按 shift g

(iv) 替换行 我的@lagged_slaves = map { {cxn=>$_, lag=>undef} } @$slaves; 经过 我的@lagged_slaves = ();

程序立即运行并返回预期结果。

【讨论】:

    【解决方案2】:

    我也有同样的问题。我还得到“副本 dbslave 已停止”的无限循环。但是,如果我通过按“Ctl + c”来中断输出,我会得到不一致的数据库和表名。我验证了它,发现slave中的不一致。然后我用了 pt

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 2012-10-27
      • 2015-06-10
      • 1970-01-01
      相关资源
      最近更新 更多