The Cyrus db (/var/imap/db) is suddenly hundreds of MB!

Igor Brezac igor at ipass.net
Thu Oct 6 18:08:13 EDT 2005


On Thu, 6 Oct 2005, Paul Boven wrote:

> Hi Igor, everyone,
>
> Igor Brezac wrote:
>>>>> Trying to run 'ctl_cyrusdb -r' takes a few minutes but aborts with a
>>>>> coredump. When I try to start Cyrus, it tries to recover the database
>>>>> (but coredumps), then starts copying all these 10MB logfiles into
>>>>> db.backup and we run out of diskspace again.
>
>>>> change directory to /var/imap before you run ctl_cyrusdb -r:
>>>> cd /var/imap
>>>> ctl_cyrusdb -r
>>> But no, that doesn't make a difference, I did it from /var/imap the first 
>>> time I tried, too.
>
>> I wonder if your db env is corrupt.  stop cyrus server and
>> cd /var/imap
>> db_recover
>> ctl_cyrusdb -r
>
>> If that does not work and if you use skiplist for the mailboxes db, you can 
>> remove the contents of /var/imap/db and all berkeley dbs (deliver, 
>> annotate, etc) and restart cyrus-imap.
>
> Yes, the mailboxes.db is a skiplist.
> In /var/imap I have these files:
>
> -rw-------   1 cyrus    mail         144 Sep 30 18:28 annotations.db
> -rw-------   1 cyrus    mail     1629672 Oct  6 19:50 core
> drwxr-x---   2 cyrus    mail        3584 Oct  6 19:50 db (863MB in here)
> drwx------   2 cyrus    mail        1536 Oct  6 17:00 db.backup1 (580MB in 
> here)
> drwx------   2 cyrus    mail         512 Oct  6 16:30 db.backup2 (2kb in 
> here)
> -rw-------   1 cyrus    mail     1515520 Oct  6 16:28 deliver.db
> drwxr-x---   2 cyrus    mail         512 Aug 13  2004 log
> -rw-------   1 cyrus    mail     5016276 Oct  6 16:06 mailboxes.db
> drwxr-x---   2 cyrus    mail       15360 Oct  6 16:48 proc
> drwxr-x---   2 cyrus    mail         512 Oct  6 16:59 socket
> -rw-------   1 cyrus    mail       16384 Oct  6 04:00 tls_sessions.db
> drwx------  25 cyrus    mail         512 Aug 16  2004 user
>
> Question: What database exactl is in /var/imap/db?

This is berkeley db env.  See http://www.sleepycat.com/docs/index.html for 
more.

> I understand that it gets 
> backed up to db.backup1/db.backup2, but am not sure what it contains, and 
> what the consequences of deleting it are... what will my users be missing if 
> I do?

nothing.  Duplicate suppression will not be as effective initialy.

> Deleting tls_sessions and deliver.db is ok, but what is in 
> annotations.db, is that safe to remove to? Is it neccesary?

You do not use annotations, so it is safe to delete as well.

Have you trid to run db_recover first?  You need to do all of this while 
cyrus is stopped.

--
Igor



More information about the Info-cyrus mailing list