我试图从2.2.12升级到2.4.12 / 13的赛勒斯IMAP服务器。
知道我正在寻找一个很好的指导来做到这一点,因为我的实际版本是旧版本。 我想这不会只是升级版本或安装新的导入configuration,我错了吗? 我假设我需要迁移数据库信息,但不知道如何去做。
我们的主要和独特的赛勒斯服务器pipe理着超过10000个用户及其相应的邮箱。 通过新的迁移,我们希望将这个主服务器拆分成更小的服务器,以便客户端拆分邮箱。 怎样才能从Cyrus 2.2.12中导出几个邮箱呢? 我想select性地导出邮箱。
我发现“Mailsync”工具,但它看起来不像邮箱有select性。 有没有办法正确地迁移到新版本的Cyrus?
(大约八年前,我从一台旧的邮件服务器(运行uw-imapd)迁移了5万多个用户帐户到一个由三台服务器组成的新服务器“农场”,并运行了Cyrus,那时我用我的l337 Perl技术创build了一个迁移脚本,它将login到旧服务器,并通过IMAP一个用户帐户一次性复制新服务器的邮件。OpenLDAP服务器+ Perdition在这个事情的前面,决定用户应该转发到哪里(旧服务器或新服务器),这个操作是在线完成的,没有任何停机时间,这是脱节的,所以我会继续回答。)
一句警告:你要做的工作可能有点乏味,给你打一个足够短的答复也不容易。 :-)这里有几点要考虑。
你有一些工作要做。 升级赛勒斯本身并不是不可能的,但同时需要将用户从一台服务器分解到多台服务器。 从旧服务器复制到新服务器的所有内容都不起作用,因为BerkeleyDB / skiplist格式已经在中间改变了,旧的数据文件不能用于开箱即用。
当涉及到用户/邮箱列表时,最好使用ctl_mboxlist -d开关将旧服务器上的用户/邮箱信息转储为文本文件,然后使用ctl_mboxlist -u将内容加载到新服务器。 如果您只升级Cyrus,同时转移到更强大,但只有一台服务器,则情况就是如此。 可以使用rsync复制邮箱,然后在Cyrus中reconstruct -rfx user/*命令。
如果你想同时进行拆分,你可能会想尝试一下, xfermailbox命令实际上可以让你将邮箱从一台服务器移动到另一台。 如果是这样,你可以创build一个脚本,调用xfermailbox 10000次,并移动你的用户帐户,无论你想要的。
另一个提示:如果您发现迁移后某些用户找不到邮件文件夹/邮件,您可能需要reconstruct -rfx user/someaccount命令。
一切都很好,直到这,但你有没有考虑以下几点:
Perdition或者Cyrus Murder东西来处理redirectPOP / IMAPlogin到正确的邮件服务器? mailboxes.db等。没有经过良好调整的DB_CONFIG可能会轻易地导致性能DB_CONFIG /或导致僵局。 Skiplist更加无忧。 另外,Cyrus中的POP3实现非常rngd ,如果您的服务器没有基于硬件的随机数生成器,则在没有rngd守护进程的情况下,login可能非常慢,或者Cyrusconfiguration为使用/dev/urandom而不是/dev/random随机性。 我希望这能帮助你一点。
你给了我很好的线索跟随。
无论如何,我会回答我应该考虑的想法:
无论如何,我知道我正在做一个我们应该怎么做才能成功或迁移的计划,所以我不能尝试你提供给我的命令。
当我检查他们时我会回来的。
非常感谢!