我使用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更快?或者还有其他工具可以在短时间内备份这么多数据库文件吗?
答案 0 :(得分:1)
问题是你正在尝试同步大文件中绑定的数据库,即你没有同步更改的唯一值,而是始终同步整个数据库。
如果您编辑的每个表中都有“上次修改”列,或者至少在强实体的表中有一个“上次修改”列,则您将运行所有已修改实体的sql导出(以及所有相关的表)并将它们导入(备份?)其他驱动器。
否则,您将不得不一直备份整个SQLite文件。
答案 1 :(得分:0)
如果文件很大,并且两次同步之间仅显示很小的修改,则可以成功使用--no-whole-file
选项。
但是,在这种情况下,首先读取源和目标,以计算块校验和,然后从源读取增量并将其复制到目标。
这就是为什么为远程复制而不为本地复制激活此选项(增量传输算法)的原因。
尝试一下。