我想下载一个MySQL数据库(InnoDB)的副本,以便在本地使用它。由于数据库正在快速增长,我想找到一种方法来加速这个过程并节省带宽。
我正在使用此命令将数据库复制到本地计算机(Ubuntu):
ssh myserver 'mysqldump mydatabase --add-drop-database | gzip' | zcat | mysql mydatabase
我添加了多个--ignore-tables
来忽略不需要更新的表格。
我已经有了一个(过时的)数据库版本,因此无需下载所有表格(有些表格几乎没有变化)。我正在考虑为每个表使用checksum
,并将未更改的表添加到--ignore-tables
。
由于我找不到很多使用checksums
和mysqldump
的例子,我很聪明(不太可能)或者有更好的下载方式(或更好:单向以聪明的方式同步数据库。
数据库复制不是我正在寻找的,因为它需要二进制日志。这有点矫枉过正。
单向同步数据库的最佳方法是什么,忽略未更改的表?
答案 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
加载数据