如何让rsync更快?

时间:2015-05-25 10:00:02

标签: rsync

我使用rsync来同步两个磁盘(在同一台计算机,比如Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException at SampCls.main(SampCls.java:12) Caused by: java.lang.ClassNotFoundException: com.beust.jcommander.ParameterException at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 1 more /dev/sdb)sqlite数据库文件。在我的每个程序启动时,我必须运行rsync备份2磁盘:

/dev/sdc

每次都可能有500G sqlite数据库文件要同步,这需要几个小时才能完成,是否有一些选项可以使rsync更快?或者还有其他工具可以在短时间内备份​​这么多数据库文件吗?

2 个答案:

答案 0 :(得分:1)

问题是你正在尝试同步大文件中绑定的数据库,即你没有同步更改的唯一值,而是始终同步整个数据库。

如果您编辑的每个表中都有“上次修改”列,或者至少在强实体的表中有一个“上次修改”列,则您将运行所有已修改实体的sql导出(以及所有相关的表)并将它们导入(备份?)其他驱动器。

否则,您将不得不一直备份整个SQLite文件。

答案 1 :(得分:0)

如果文件很大,并且两次同步之间仅显示很小的修改,则可以成功使用--no-whole-file选项。

但是,在这种情况下,首先读取源和目标,以计算块校验和,然后从源读取增量并将其复制到目标。

这就是为什么为远程复制而不为本地复制激活此选项(增量传输算法)的原因。

尝试一下。