[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Corrupt DB after Reboot



On 9/17/06, Matthias Spork <hallo@matthiasspork.de> wrote:
Hello,

each time I reboot my Server, OpenLDAP goes corrupt. I had to slapadd a
backup from an other server. This behavior is on all my SLES9 Server,
which runs with same configuration and OpenLDAP-versions.

Could you give me a hint, where I can more analyse my problem?


I played with the DB_CONFIG. I changed the file an rebuilded the db (slapcat & slapadd). After first reboot it seemed to work. Am I on the right way?

Old DB_CONFIG:
set_cachesize 0 15000000 1
set_lg_regionmax 262144
set_lg_bsize 2097152
set_flags DB_LOG_AUTOREMOVE

New DB_CONFIG:
set_cachesize   0       26214400        0
set_lg_max      10485760
set_lg_bsize    2097152
set_lg_dir      /var/lib/ldap/transactionlog
set_tmp_dir     /tmp

Kind regards
Matthias


-------------------------------------------------------------- srv:/var/lib/ldap # slapcat bdb_db_open: unclean shutdown detected; attempting recovery. bdb_db_open: Recovery skipped in read-only mode. Run manual recovery if errors are encountered.

srv:/var/lib/ldap # db_recover -h /var/lib/ldap/
srv:/var/lib/ldap # slapcat
bdb_db_open: unclean shutdown detected; attempting recovery.
bdb_db_open: Recovery skipped in read-only mode. Run manual recovery if
errors are encountered.
bdb_db_open: alock_recover failed
bdb_db_close: alock_close failed
backend_startup_one: bi_db_open failed! (-1)
slap_startup failed

Packages:
--------------------------------------------------------------
openldap2-back-perl-2.3.27-0.1.20060821
openldap2-client-2.3.27-0.1.20060821
openldap2-back-meta-2.3.27-0.1.20060821
openldap2-2.3.27-0.1.20060821
db-4.2.52-86.3

slapd.conf
--------------------------------------------------------------
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/misc.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/openldap.schema
include         /etc/openldap/schema/samba3.schema

database        bdb
suffix          "o=comp,c=COM"
rootdn          "cn=admin,o=comp,c=COM"
rootpw          {crypt}xxxxx
password-hash   {CRYPT}
directory       /var/lib/ldap

TLSCipherSuite          HIGH:MEDIUM:+SSLv2:+SSLv3
TLSCACertificateFile    /etc/ssl/certs/cacert.pem
TLSCertificateFile      /etc/openldap/slapd_cert.pem
TLSCertificateKeyFile   /etc/openldap/slapd_key.pem

sizelimit       5000
schemacheck     on
lastmod         on
loglevel        0
pidfile         /var/run/slapd/slapd.pid
argsfile        /var/run/slapd/slapd.args

index   default         eq
index   uid             eq,sub
index   sn              eq,sub
index   objectClass     eq
index   sambaSID        eq,sub
index   sambaPrimaryGroupSID eq
index   sambaDomainName eq
index   memberUid       eq
index   gidNumber       eq
...


openldap 2.3 will automatically determine if you need to recover and do it for you. You are on the right track in that committing your logs more frequently will mean syncing to disk will take less time when your server issues a killall. You could also try to shutdown openldap more cleanly before rebooting (just wait for it to stop on its own).