Max*_*Max 3 mysql synchronization replication percona
我一直在寻找一种工具来同步来自 2 个不同数据库的表,并找到了pt-table-sync. 我阅读了文档并感到困惑:他们主要使用涉及复制环境的示例,但我认为复制的全部目的是为您处理数据同步,因此我的问题是:
什么是使用的点pt-table-sync,如果在复制过程中应该采取对您的数据的同步照顾?
可以pt-table-sync在非复制环境下使用吗(2+台主机之间没有任何关系,是pt-table-sync --execute host1 host2 host3给出的例子的作用)吗?
如果我必须用pt-table-sync在复制环境中,我可以做不bin-logs上master(有一个例子谈论解决分歧发现通过 pt-table-checksum这样想,如果bin-logs是绝对必要的)?
MySQL 复制存在两大问题
MySQL 复制是异步的。这可能会引入复制延迟。这表现在 Master 和 Slave 之间通过 Slave I/O 线程的通信问题。这可以从逻辑上和数字上看出Seconds_Behind_Master。
Data Drift. 这是一种间歇性情况,由于 MySQL 复制领域之外的因素,主从只是不同步的。例如,请注意一种更好地同步复制的方法:使用选项sync-binlog。当您设置sync-binlog为 1 时,mysqld 将为您在二进制日志中记录的每个条目执行当前二进制日志的刷新。这可以荒谬地减慢Master的速度。默认情况下,sync-binlog为 0。
sync-binlog=0,谁负责将二进制日志刷新到磁盘?这里的直接答案是否定的,因为pt-table-sync它旨在通过选项检测 Slave 的 I/O 线程--sync-to-master。
这里的直接答案是否定的,因为 MySQL 复制要求知道
Master_Log_File来自SHOW SLAVE STATUS\G)Read_Master_Log_Pos来自SHOW SLAVE STATUS\G)如果你只是想让你的二进制日志不碍事,你可以做两件事之一
expire-logs-days为 3 以保留过去 3 天的二进制日志
expire-logs-days=3/etc/my.cnfSET GLOBAL expire_logs_days = 3;SHOW SLAVE STATUS\G在从站上运行。取 的值Relay_Master_Log_File。并使用它来清除 Master 上的二进制日志以更新该日志文件。
SHOW SLAVE STATUS\G在 Slave 上运行Relay_Master_Log_File: mysql-bin.000035PURGE BINARY LOGS TO 'mysql-bin.000035';如果您想对 pt-table-sync 更有信心,请尝试使用该--print选项并重定向到文本文件而不是该--execute选项。这将生成通常在 Master 上执行的 SQL。之后您可以直接在该 Slave 上运行 SQL。可以将其视为 的彩排--execute。
| 归档时间: |
|
| 查看次数: |
8365 次 |
| 最近记录: |