我有一个Zarafa服务器(用Postfix作为交付代理),我想添加实时备份。 它已经:
在文件系统/数据库损坏的情况下,我想实时备份收到的邮件,以防止在夜间备份后收到这些邮件的丢失。
Zarafa的交付工作是这样的(摘自Postfix的main.cf):
mailbox_transport = zarafa: zarafa_destination_recipient_limit = 1 virtual_alias_maps = mysql:/etc/postfix/mysql-aliases.cf
邮箱传输(在master.cf中定义)是一个工具,接受stdin上的数据传递到Zarafa的商店(基于mysql +文件)。 Virtual_alias_maps是一个SQL命令,基本上返回j.doe中的[email protected] ,但仅限于现有用户。 换句话说,它从电子邮件地址中检索Zarafa用户名。
我能想到的一件事是将所有邮件发送到第二个传输器,将其发送到另一个服务器。 该服务器可以是一个简单的快递maildir服务器,可以将fetchmailconfiguration为使用SMTP重新发送到从备份恢复的服务器。
但是,这不是100%的优雅,我甚至不知道如何去做…
任何更好/实施的想法…?
编辑:我现在有第二个邮件服务器configuration,以便它将相关域的所有传入邮件转储到X-Original-To:和Delivered-To:标题的一个邮箱,所以我可以使用fetchmail检索它们并将它们传递到这些地址(fetchmail有一个选项,我已经被告知)。 现在让Postfix上的主交付给两个传输…
有几种方法可能适合您的需求。 其中之一是DRBD,但是我build议只适用于高可用性和关键任务系统。
mysqldump对你的生产环境影响较小。 还要检查你的附件是否保持同步(通常在文件系统上),你需要定期检查你的slave的完整性。 rsync二进制日志文件。 人们可以重播旧版一致性快照上的日志以获得时间点恢复。 dagent和虽然它被称为“存档”它可以做更多,只是存档邮件。 如果您不确定如何在MySQL级别进行设置,我build议您首先使用它,以获得舒适。 我也推荐阅读“高性能MySQL”(O'Reilly)。