I'm seeing this problem also, using openldap version 2.2.23. In my case,
clearing things up requires the following steps:
service ldap stop
/usr/sbin/slapd_db_recover -h /var/lib/ldap
service ldap start
chown -R ldap.ldap /var/lib/ldap
service ldap start
For some reason, the db_recover deletes:
-rw------- 1 ldap ldap 16384 Mar 28 22:22 __db.001
-rw------- 1 ldap ldap 278528 Mar 28 22:22 __db.002
-rw------- 1 ldap ldap 98304 Mar 28 22:22 __db.003
-rw------- 1 ldap ldap 450560 Mar 28 22:22 __db.004
-rw------- 1 ldap ldap 24576 Mar 28 22:22 __db.005
and the first service ldap start creates them owned by root, then, ldap
dies because they are owned by root and not ldap. The second service
ldap start starts the ldap daemon.