我正在尝试将Cyrus IMAP服务器从2.2.12升级到2.4.12/13。
非常清楚,我正在寻找一个很好的指南来做这件事,因为我的实际版本是一个旧版本。我想这不仅仅是升级版本或安装新版本并导入配置,我错了吗?我假设我需要迁移数据库信息,但不知道如何迁移。
我们的主要和独特的Cyrus服务器管理着10000多个用户及其相应的邮箱。通过新的迁移,我们希望将这台主服务器拆分为较小的服务器,以便按客户端拆分邮箱。我怎么能从Cyrus 2.2.12导出几个邮箱呢?我想有选择地出口邮箱。
我找到了"Mailsync“工具,但它看起来不可能对邮箱具有选择性。有没有办法正确地迁移到新版本的赛勒斯?
发布于 2012-01-26 11:12:31
(大约8年前,我将5万多个用户帐户从一个旧邮件服务器(运行uw-imapd)迁移到一个新的服务器“农场”,该服务器由三台服务器组成,运行着Cyrus。当时,我使用我的l337 Perl技能创建了一个迁移脚本,它将登录到旧服务器,并通过IMAP一次一个用户帐户复制新服务器的邮件。OpenLDAP服务器+ Perdition在这件事情的前面决定了用户应该被转发到哪里(到旧服务器还是新服务器)。手术是在不停机的情况下在线进行的.这是一个离题,所以我会继续我的回答。)
一句警告:你要做的工作可能有点乏味,为你输入一个足够简短的答复也不容易。-以下是你要考虑的几点。
你还有工作要做。升级Cyrus本身并不是不可能的,但是同时将用户从一个服务器分离到多个服务器需要计划。仅仅将旧服务器上的所有内容复制到new都不起作用,因为BerkeleyDB/skiplist格式在中间已经改变了,旧的数据文件无法立即使用。
对于用户/邮箱列表,最好使用ctl_mboxlist -d开关将旧服务器上的用户/邮箱信息转储到文本文件,然后使用ctl_mboxlist -u将内容加载到新服务器。如果您只升级Cyrus,同时移动到一个功能更强大、但只有一个服务器的服务器,情况就是这样。可以用rsync复制邮箱,然后在Cyrus中使用reconstruct -rfx user/*命令。
如果您想同时进行拆分,您可能需要尝试一下,如果现在xfermailbox命令在cyradm中实际上允许您将邮箱从一个服务器移动到另一个服务器。如果是这样的话,您可以创建一个脚本,它调用xfermailbox 10 000次,并将您的用户帐户移动到任何您想要的位置。
另一个提示:如果您发现迁移后某些用户无法找到邮件文件夹/邮件,则可能需要reconstruct -rfx user/someaccount命令。
在此之前,一切都很好,但你有没有考虑过以下几点:
Perdition或Cyrus Murder的东西来重定向POP/IMAP登录以更正邮件服务器?mailboxes.db等。没有经过良好调整的DB_CONFIG的BerkeleyDB可能很容易破坏性能和/或导致死锁。Skiplist更不用担心。此外,Cyrus中的POP3实现非常缺乏熵,如果您的服务器没有基于硬件的随机数生成器,如果没有rngd守护进程,登录可能会非常慢,或者赛勒斯配置为使用/dev/urandom而不是/dev/random来实现随机性。我希望这对你有一点帮助。
发布于 2012-01-27 08:30:27
你给了我很好的线索。
无论如何,我会回答我应该考虑的想法:
无论如何,正确的是,我正在做一个方案,我们应该做什么来成功或迁移,所以我不能尝试您提供给我的命令。
等我检查完后再回来。
非常感谢!
https://serverfault.com/questions/353807
复制相似问题