Jukka Salmi --> info-cyrus (2010-06-25 02:30:49 +0200): > Hi > > I'm currently running Cyrus IMAPd 2.2.13p1 on NetBSD/i386 without any > problems. During the next few days I need to move the users' mailboxes > to a NetBSD/amd64 system which will run Cyrus IMAPd 2.3.16. Some hints > about this would be appreciated. > > The cleanest way would probably be to get Cyrus IMAPd running on the new > system and then to copy the mailboxes via IMAP (using imapsync(1) or > similar); but since the upstream on the old system is very slow I'd like > to avoid this approach if possible. > > Since I can afford some hours of mail system downtime I'd prefer to copy > over a compressed archive containing all the mailboxes, extract it on > the new system and recursively run reconstruct(8) for all mailboxes; > then I'd probably copy over the contents of $configdirectory/user/ and > start Cyrus IMAPd. Does this make sense? And what data will I be > missing? ;-) > > Some basic questions: > > - Is Cyrus on amd64 able to read skiplist files created by Cyrus on > i386? (If not, I'd probably have to use cvt_cyrusdb(8) to dump and > restore the relevant files.) > > - What about the cyrus.{cache,header,index,squat} files? Can I expect > Cyrus on amd64 to be able to read them just fine? (This seems not to > be that important since those files are easily recreated IIUC.) > > > TIA, Jukka Thanks for all the hints I got on this. Just copying $configdirectory, $partition-default and $sievedir from the old server to the new one and starting Cyrus there did -- as expected -- not work because of Berkeley DB: ctl_cyrusdb[23411]: DBERROR db4: Build signature doesn't match environment I didn't even try to fix the problem by dumping and restoreing the DB, but instead removed the copied directories again and did the following: - added users to SASLdb (saslpasswd2 -c ...) - started cyrus (init script created directories and called mkimap) - created users' INBOXes (cyradm) - stopped cyrus - copied $configdirectory/user, $partition-default/user and $sievedir from old server - started cyrus - for user in $(ls $partition-default/user); do reconstruct -f user.$user done - manually adjusted server and mailbox annotations, user quota and ACLs (cyradm) This resulted in a working Cyrus IMAPd 2.3.16 on the new amd64 system. However, after a while I started to see the following errors in the logs: ctl_cyrusdb[2085]: DBERROR: error listing log files: No such file or directory ctl_cyrusdb[2085]: DBERROR: archive /var/imap/db: cyrusdb error This seems to be triggered by the `checkpoint' entry from the EVENTS section of cyrus.conf: EVENTS { # this is required checkpoint cmd="ctl_cyrusdb -c" period=30 However, running `ctl_cyrusdb -c' manually (as user cyrus...) worked fine ctl_cyrusdb[3296]: checkpointing cyrus databases ctl_cyrusdb[3296]: done checkpointing cyrus databases and since then, I haven't seen the problem occur anymore. Hmm... Regards, Jukka -- This email fills a much-needed gap in the archives. ---- Cyrus Home Page: http://cyrusimap.web.cmu.edu/ Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html