备份 Zimbra 8.0.x,data.mdb 问题

备份 Zimbra 8.0.x,data.mdb 问题

当尝试创建 zimbra 开源版本 8.0.1+ 的备份时,我遇到了 data.mdb“爆炸”的问题。

虽然我的 /opt/zimbra 目录只有大约 8GB,但我的备份大约有 80GB。

rsync 和 copy 都无法正常工作。

答案1

data.mdb 文件实际上是一个精简配置的 86GB(默认情况下)文件。
在复制到备份目录时,Rsync 和有时 cp 命令会将文件“爆炸”到其完整大小。
如果您想创建异地备份或资源有限,这显然没有帮助。

这种行为似乎是 8.0.1 中的新行为

防止这种情况发生的正确方法是将备份分成 3 个部分。下面是我的示例备份脚本(以 root 身份执行)。

首先阻止 Zimbra 并杀死剩下的一切。

#!/bin/bash
# Zimbra Backup Script
echo 'Starting Zimbra backup script'
date
echo 'Stopping Zimbra'
su zimbra -c '/opt/zimbra/bin/zmcontrol stop'
echo 'Kill Zimbra'
ps auxww | grep zimbra

接下来备份 /opt/zimbra 目录,不包括 /opt/zimbra/data/ldap 目录。

echo 'Saving base'
rsync -aHK --delete --exclude '*data/ldap*' /opt/zimbra/ /backup/zimbra-base

接下来,使用内置的 zmslapcat 命令将 ldap 文件转换为 ldif 文件。
您可以选择先重新启动服务器,因为此命令可以在 zimbra 运行时运行。但为了确保我们获得冻结环境的备份,我们现在将其停止。

echo 'Saving ldap config'
su zimbra -c '/opt/zimbra/libexec/zmslapcat -c /backup/zimbra-ldap'
echo 'Saving ldap main'
su zimbra -c '/opt/zimbra/libexec/zmslapcat /backup/zimbra-ldap'
echo 'Restarting zimbra'
su zimbra -c '/opt/zimbra/bin/zmcontrol start'
echo 'Finished'

此脚本已在 ubuntu server 14.04 下的 zimbra 8.0.1 上进行了测试。
它应该适用于大多数发行版和 8.0.1 以上的版本

答案2

根据您用于备份的工具,有些工具确实支持稀疏文件,但这种支持并不像真实数据所暗示的那么快。

rsync -S  # it works, but it isn't "efficient"
cp --sparse=always
tar -S    # the GNU version.

不幸的是,我最喜欢的备份工具 rdiff-backup 目前不支持稀疏文件。我见过一个补丁可以让它支持稀疏文件,但开发人员还没有发布。我也没有用它做任何事情。

Duplicity 似乎也不支持稀疏文件。我没有深入研究。

可能还有其他支持此功能的。我知道移动包含稀疏文件的 qcow2 图像可以按预期工作。

至于备份,对于像 Zimbra 这样复杂的系统,我希望每个人都使用 LVM2 快照或 ZFS 快照来避免停机,然后针对快照存储运行备份。

相关内容