我想知道通过网络备份文件的最佳方法是什么
我有带有 VERITAS 集群的 Oracle 10i 的 Solaris 计算机,计算机连接到 EMC 存储
/data/oracle目录挂载在EMC存储上
我想要的是通过网络备份某些备份机器上的/data/oracle目录(70G)(包括软链接文件),而复制文件的可靠性非常非常重要
我检查并找到了一些想法来做到这一点
例如,第一个选项是使用 rsync
rsync -WavH –progress /data/oracle $backup_server_ip:/Backup_dir
第二种选择:使用 tar 选项传输文件,这样我们双方都传输文件并压缩文件
cd /directory_that_we_want_to_backup
tar cpf - . | bzip2 -c | ssh $backup_server_ip \
"cd /Backup_dir && bzip2 -d | tar xpf -"and so on
我需要建议以下选项中哪个更可靠,也许还有其他好的选择
答案1
对于仅限 Solaris,请查看“ZFS 发送”(假设是 Solaris 10 update 2 或更高版本)。
其过程是首先拍摄快照,然后将其“发送”到另一个地方。例如:
zfs snapshot POOL/dataset@backup1
zfs send POOL/dataset@backup1 | ssh $USER@$HOST zfs receive $TARGETPOOL/$TARGETDATASET
上述解决方案具有坚如磐石的可靠性。
rsync 是第二个最佳选择,但它为您带来了跨平台的额外好处。默认情况下,rsync 不随 Solaris 一起提供,但可以从 Solaris Free Ware 等平台轻松安装。
当您不再需要快照时,应该清理它们。将它们保留一段时间是好的 - 您可以使用它们发送增量流。
要进行增量流,您的第二次(及后续)备份将如下所示:
zfs snapshot POOL/dataset@backup2
zfs send -i backup1 POOL/dataset@backup2 | ssh $USER@$HOST zfs receive $TARGETPOOL/$TARGETDATASET
zfs destroy POOL/dataset@backup1
注意:销毁上一个到最后一个快照,以便您下次可以再次进行增量!
拥有数百或数千个快照可能会出现问题。首先,它严重影响管理实用程序的性能,例如zfs list
.其次,当它们下面的数据发生变化时,它们开始占用空间(它们最初不占用任何磁盘空间)
与 rsync 捆绑在一起的是使用 cpio(与使用 tar 的方式类似)...cpio 比 tar 更好地处理更多奇怪的文件。特别是它处理稀疏文件,如果可能的话将重新创建硬链接,并正确处理其他文件类型。
find /backup_directory | cpio -o | ssh $USER@$HOST cpio -idm /target_directory
cpio -o
= 创建备份(复制)
cpio -i
= 从备份恢复(复制) -d 和 -m 分别是重新创建目录结构和维护权限/修改时间等。
tar 是每个人的最爱,因为……好吧,没有充分的理由。如果您知道只有普通文件,tar 就可以正常工作。
答案2
有几种可能的备份解决方案。我不确定哪一个是跨平台的。
你可以尝试看看表里不一尽管它主要在 GNU/Linux 上进行了测试,但它应该与任何 POSIX 系统兼容。
备份电脑是另一个竞争者,用 Perl 编写,因此预计也可以在 Solaris 上运行。
最后,杆状骨,它是一个开源网络备份程序,运行在多种操作系统:Linux、FreeBSD 或 Solaris 等。我真的会推荐这个,尽管它比之前的其他替代方案配置起来有点困难。如果需要,该产品背后的人员还会提供专业支持。
其他资源:参见询问Ubuntu
答案3
我有很好的使用经验rdiff 备份大约在 2005 年。自 2009 年以来的开发几乎为零,但这可能只是因为该项目现在相当稳定:它自 2002 年以来一直在开发中。不过,邮件列表上似乎仍然有活动。这使用与 rsync 相同的底层算法。虽然它不像其他一些备份解决方案那样花哨和功能齐全,但它的优点是非常灵活和可定制,而且基本功能非常简单。