使用校验和仅下载MySQL中已更改的表

时间:2017-06-27 12:09:15

标签: mysql database

我想下载一个MySQL数据库(InnoDB)的副本,以便在本地使用它。由于数据库正在快速增长,我想找到一种方法来加速这个过程并节省带宽。

我正在使用此命令将数据库复制到本地计算机(Ubuntu):

ssh myserver 'mysqldump mydatabase --add-drop-database | gzip' | zcat | mysql mydatabase

我添加了多个--ignore-tables来忽略不需要更新的表格。

我已经有了一个(过时的)数据库版本,因此无需下载所有表格(有些表格几乎没有变化)。我正在考虑为每个表使用checksum,并将未更改的表添加到--ignore-tables

由于我找不到很多使用checksumsmysqldump的例子,我很聪明(不太可能)或者有更好的下载方式(或更好:单向以聪明的方式同步数据库。

数据库复制不是我正在寻找的,因为它需要二进制日志。这有点矫枉过正。

单向同步数据库的最佳方法是什么,忽略未更改的表?

1 个答案:

答案 0 :(得分:1)

一种解决方案可能是使用mysqldump --tab选项。 mysqldump delimited

mkdir /tmp/dbdump
chmod 777 /tmp/dbdump
mysqldump --user=xxx --password=xxx --skip-dump-date --tab=/tmp/dbdump database

然后使用rsync和--checksum将已更改的文件发送到目标。运行创建脚本,然后使用LOAD DATA INFILE

加载数据