如何根据 SELECT 语句将数据从一台 MySQL 服务器复制到另一台服务器(然后从原始服务器中删除数据)?

Ed *_*rty 2 mysql mysqldump php

我有一个非常大的日志表,我想从中复制行,将它们放入新服务器上的相同表结构中。我不想复制所有内容,只复制旧行,以便主服务器上的表保持较小。所以我必须选择我想要的数据并且只移动(和删除)它。

请记住,有很多数据,mysqldump如果不需要,我不想用 a 复制所有数据,尤其是在复制表时它会锁定表。

我想出的最好的是一个 PHP 脚本,我将其作为暂定答案发布,尽管我确定它不是最佳选择。

Shl*_*ach 6

您正在寻找pt-archiver,它是 Percona 工具包的一部分。该工具可以从表中清除行;将表中的行写入文件;从表中清除行,同时将它们复制到另一个表(可能是另一台服务器)...

它是分块进行的,比如一次 1,000 行,这样您的服务器上就没有高负载。