嗨,我计划在分布式系统中使用Mysql复制,拓扑如下:
主数据库(主数据库)
我将使用ssh隧道连接数据库。
我知道复制可能是异步的,我担心的是,我想知道Mysql是否以增量方式复制,主db将位于一个internet连接受限的站点,并且可能只在一周的几天内通过移动网络进行连接,因此我希望确保mysql不会在每次数据库同步时发送所有数据。
提前谢谢。
发布于 2016-10-17 00:23:23
我希望确保mysql不会每次数据库同步时发送所有数据。
那样的话,你就走运了。MySQL本机复制始终只发送“增量”更新。事实上,它没有办法自动发送全部内容。若要初步配置复制,必须手动将数据快照从主复制到从服务器。在此之后,只在一个有序的更改事件流中传输更改,这些更改事件称为二进制日志,有时也称为“binlog”。
复制基于主服务器,跟踪其二进制日志中数据库的所有更改(更新、删除等)。二进制日志是从服务器启动时开始修改数据库结构或内容(数据)的所有事件的书面记录。通常,SELECT语句不会被记录,因为它们既不修改数据库结构,也不修改内容。连接到主服务器的每个从服务器都请求二进制日志的副本。也就是说,它从主服务器中提取数据,而不是由主程序将数据推送给从服务器。从服务器还执行它接收到的二进制日志中的事件。这产生了重复原始更改的效果,就像它们在主服务器上所做的一样。http://dev.mysql.com/doc/refman/5.7/en/replication-implementation.html
https://dba.stackexchange.com/questions/152415
复制相似问题