Philip Colmer wrote: > 2014-07-22 13:42 GMT+01:00 Harry Jede <harry.jede@arcor.de>: > > Then your slapd process is unable to read the index. Chown the > > files to openldap:openldap if that are your slapd user/group. > > I think there may be some confusion between my head and OpenLDAP as > to where the files are located and that may be the underlying > problem. > > If I search the server for DB_CONFIG, there are two different > locations found - /var/lib/ldap and /usr/local/var/openldap-data. > > Now, this is where it gets a bit confusing. The files in > /var/lib/ldap haven't been touched since 2013: > > -rw-r--r-- 1 openldap openldap 2048 Dec 29 2013 alock > -rw------- 1 openldap openldap 933888 Dec 29 2013 cn.bdb > -rw------- 1 openldap openldap 24576 Dec 29 2013 __db.001 > -rw------- 1 openldap openldap 368640 Dec 29 2013 __db.002 > -rw------- 1 openldap openldap 2629632 Dec 29 2013 __db.003 > -rw------- 1 openldap openldap 163840 Dec 29 2013 __db.004 > -rw------- 1 openldap openldap 1286144 Dec 29 2013 __db.005 > -rw------- 1 openldap openldap 32768 Dec 29 2013 __db.006 > -rw-r--r-- 1 openldap openldap 124 Jun 12 2013 DB_CONFIG > -rw------- 1 openldap openldap 1130496 Dec 29 2013 dn2id.bdb > -rw------- 1 openldap openldap 204800 Dec 29 2013 entryCSN.bdb > -rw------- 1 openldap openldap 65536 Dec 29 2013 entryUUID.bdb > -rw------- 1 openldap openldap 32768 Dec 27 2013 gidNumber.bdb > -rw------- 1 openldap openldap 176128 Dec 27 2013 givenName.bdb > -rw------- 1 openldap openldap 15122432 Dec 29 2013 id2entry.bdb > -rw------- 1 openldap openldap 10485760 Dec 29 2013 log.0000004856 > -rw------- 1 openldap openldap 876544 Dec 29 2013 mail.bdb > -rw------- 1 openldap openldap 172032 Dec 29 2013 memberOf.bdb > -rw------- 1 openldap openldap 139264 Dec 28 2013 memberUid.bdb > -rw------- 1 openldap openldap 204800 Dec 29 2013 objectClass.bdb > -rw------- 1 openldap openldap 217088 Dec 27 2013 sn.bdb > -rw------- 1 openldap openldap 36864 Dec 27 2013 uid.bdb > -rw------- 1 openldap openldap 32768 Dec 27 2013 uidNumber.bdb > -rw------- 1 openldap openldap 155648 Dec 29 2013 > uniqueMember.bdb > > whereas *some* of the files in /usr/local/var/openldap-data have been > touched more recently: > > drwxr-xr-x 2 openldap openldap 4096 Feb 1 16:37 accesslog > -rw-r--r-- 1 openldap openldap 4096 Jul 19 09:40 alock > -rw------- 1 openldap openldap 1040384 Feb 1 02:15 cn.bdb > -rw------- 1 openldap openldap 24576 Jul 19 09:40 __db.001 > -rw------- 1 openldap openldap 368640 Jul 22 13:09 __db.002 > -rw------- 1 openldap openldap 2629632 Jul 22 13:09 __db.003 > -rw------- 1 openldap openldap 163840 Jul 22 13:07 __db.004 > -rw------- 1 openldap openldap 1286144 Jul 22 13:09 __db.005 > -rw------- 1 openldap openldap 32768 Jul 22 13:07 __db.006 > -rw-r--r-- 1 openldap openldap 124 Dec 29 2013 DB_CONFIG > -rw------- 1 openldap openldap 991232 Jul 22 13:06 dn2id.bdb > -rw------- 1 openldap openldap 835584 Jul 22 13:07 entryCSN.bdb > -rw------- 1 openldap openldap 81920 Jul 22 13:06 entryUUID.bdb > -rw------- 1 openldap openldap 32768 Jan 31 16:30 gidNumber.bdb > -rw------- 1 openldap openldap 208896 Jan 31 16:30 givenName.bdb > -rw------- 1 openldap openldap 16809984 Jul 22 13:07 id2entry.bdb > -rw------- 1 openldap openldap 10485760 Jul 22 13:07 log.0000008873 > -rw------- 1 openldap openldap 10485760 Jul 22 13:07 log.0000008874 > -rw------- 1 openldap openldap 954368 Feb 1 02:15 mail.bdb > -rw------- 1 openldap openldap 176128 Feb 1 02:35 memberOf.bdb > -rw------- 1 openldap openldap 139264 Feb 1 02:01 memberUid.bdb > -rw------- 1 openldap openldap 200704 Feb 1 02:15 objectClass.bdb > -rw------- 1 openldap openldap 249856 Jan 31 16:30 sn.bdb > -rw------- 1 openldap openldap 40960 Jan 31 16:30 uid.bdb > -rw------- 1 openldap openldap 32768 Jan 31 16:30 uidNumber.bdb > -rw------- 1 openldap openldap 163840 Feb 1 02:15 uniqueMember.bdb If I run slapindex without options *all* index files are updated, except those whos attributes are empty. In my case this is uniqueMember.bdb.
> If I grep the cn=config files for both of these file paths, though, > only /var/lib/ldap appears (in olcDatabase={1}hdb.ldif). Digging a > bit deeper, it looks like I specified /usr/local/var as the run > directory when I built OpenLDAP, which is why > /usr/local/var/openldap-data is where the files are being held. > > So ... I guess that if I reconfigure olcDatabase={1}hdb.ldif to point > at /usr/local/var/openldap-data, at least the files would be in the > same directory although I don't entirely understand why OpenLDAP > isn't at least updating the indexes properly even if they are in the > wrong directory. I assume you manually edit the config database? You should never do this.
> Presumably the various .bdb files are the indexes and this explains > why I'm getting the complaints ... those dates, though, would suggest > that it was all working properly until end of Jan/beginning of Feb > but I'm not entirely sure why. As you can see, the file permissions > are correct. > > Hence my confusion :-(. One may have more then one database. Each db have its own suffix and its own dbDirectory.
# ldapsearch -LLLY external -H ldapi:/// -b cn=config '(olcdbdirectory=*)' olcsuffix olcdbdirectory
dn: olcDatabase={1}hdb,cn=config olcDbDirectory: /var/lib/ldap olcSuffix: dc=europa,dc=xx
If all fails: stop slapd slapcat your db save your DB_CONFIG remove content of dbDirectory restore DB_CONFIG slapadd start slapd
good luck
> > Regards > > Philip
--
Harry Jede |