Hi Howard,
You could try using the preceding transaction and see if it's in any better shape. The code for this is not released in LMDB 0.9. You can compile the mdb.master branch in git to obtain it. Then use the "-v" option with mdb_copy and see if that copy of the database is usable.
I have compiled liblmdb using the mdb.master branch and used the mdb_copy as you've suggested. It didn't produce any errors. However, when I copy the data.mdb back to the Zimbra server it still produces the same error:
Feb 13 18:30:03 mail-archive slapd[8830]: mdb_entry_decode: attribute index 560427631 not recognized
and when I am trying to reindex I get:
zimbra@mail-archive:~/data/ldap/mdb/db$ /opt/zimbra/libexec/zmslapindex -vv indexing id=00000001 indexing id=00000002 indexing id=00000003 5c64631c mdb_entry_decode: attribute index 560427631 not recognized /opt/zimbra/libexec/zmslapindex: line 67: 11205 Segmentation fault (core dumped) /opt/zimbra/common/sbin/slapindex -q -F /opt/zimbra/data/ldap/config -b "" $KEY
My broken ldap data folder contains the following files:
zimbra@mail-archive:~/data/ldap/mdb/db$ ls -la /opt/zimbra/RECOVERY/ldap-original/mdb/db/ total 83886096 drwxr-xr-x 1 zimbra zimbra 60 Feb 4 12:12 . drwxr-xr-x 1 zimbra zimbra 4 Sep 7 10:37 .. -rw------- 1 zimbra zimbra 85899345920 Feb 4 10:38 data.mdb -rw------- 1 zimbra zimbra 8192 Feb 6 17:37 lock.mdb -rw-r----- 1 root root 10485759 Feb 4 12:12 log.0000000001
I can see there is the log file log.0000000001. I don't know how do I check or roll back data using this log file? I haven't managed to find anything useful by googling. Any idea?
Cheers
-- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/