更快的MySQL DB从远程机器拉到本地机器

我使用这个命令将一些远程数据库拉到本地数据库:

$ ssh remote.com "mysqldump remotedb | gzip" | gzip -d | mysql localdb 

我看到这在数据库上运行了一堆单独的命令。 有更快的方法吗?

我将从本地机器启动命令,并由cron运行。

更新

这种方法导致:在转储表时的查询期间丢失与MySQL服务器的连接

我没有看到这个命令有任何问题。 你是:

  1. 导出mysql并压缩远程机器上的转储。
  2. 获取压缩转储到本地机器并解压缩。
  3. 将转储导入到本地mysql。

这应该是够好的。 显然,这样的命令的执行时间取决于连接速度和数据库大小。

如果遇到很高的执行时间,您可以考虑另一种同步数据库的方法。 例如,您可以尝试仅导出不是整个数据库的更改。

也许。 这取决于你的系统的瓶颈。 如果networking速度很快,瓶颈是转储过程,那么执行LVM快照并跨数据文件进行rsyncing会非常快。 否则,如果networking瓶颈,那么你可能已经达到了你将能够实现的极限。

如果您确定mysqldump命令是您的瓶颈,则可以尝试使用MyDumper 。

它看起来不像你可以直接输出到目标服务器的输出,但你可以随时使用rsync多次,当转储发生时,当它完成,以便最后的rsync相对较快。

您可以让MyDumper使用-c压缩,使用gzip分别进行压缩或在rsync命令中使用-e "ssh -C"来让SSH处理压缩。