rollback to archiving checkpoint? Need help!!

Alex Meier cornflake4 at
Mon Apr 4 23:38:49 EDT 2005

(this is actually response to Jules Agee's posting as well, but as en email cannot have multiple addressees...)

>I should also add the logs are not for rollback purposes, they're for 
>consistent recovery of the system to a known working state, IE to recover 
>from unclean shutdowns.

I understand that the logs are just for recovery purposes, but I'm wondering if I could use them for, let's say, simulating a crash and let the system do a "consistent recovery" which actually is a rollback. I am not sure if this is possible. Even if it is not very gentleman-like, it is very much an option because the damage in case of a complete data loss would be quite severe.

So, I noticed that there are some log (?) files in the db directory, named __db.001 to __db.005, one of which has 18 MB:

-rw-------    1 cyrus    mail         8192 2005-03-11 16:50 __db.001
-rw-------    1 cyrus    mail       270336 2005-03-11 16:50 __db.002
-rw-------    1 cyrus    mail        98304 2005-03-11 16:50 __db.003
-rw-------    1 cyrus    mail     18563072 2005-03-11 16:50 __db.004
-rw-------    1 cyrus    mail        32768 2005-03-11 16:50 __db.005
-rw-------    1 cyrus    mail       211602 2005-04-05 04:56 log.0000000002
-rw-------    1 cyrus    mail            4 2005-03-11 16:50 skipstamp

Hm...I'm asking myself what the __db.004 would contain? 18 MB seem to be a little too much for just storing metadata - but could be, if the content of __db.XXX is never expunged but always appended. 
[...5 mins later...] I just took a look at the __db.004 file and it seems not promising at all, for the majority of the 18 MB it seems to contain only a sequence of approx. 70 bytes (mostly null values), repeated over and over again.

So to me this seems to be the only weak, distant glimpse of hope: IF the _db.XXX files contain mail bodies in some compressed/internal representation, it could be possible to extract them from there, at least most of them.

Could there be a way to extract to extract the mail bodies from the __db.XXX files (for example by forcing the system into an inconsistent state so that cyrus uses its binary checkpoint and archiving files to recover) - or are the mail bodies _really_ just stored in the individual files (which have been definitely deleted) as Jules Agee pointed out?

What do you think - imagine you are allowed to do anything and not restricted to good manners or "clean" procedures. What else could I try?


Cyrus Home Page:
Cyrus Wiki/FAQ:
List Archives/Info:

More information about the Info-cyrus mailing list