jueves, 28 de marzo de 2013

No inicia servicio LDAP

Hola mis ardillas, en ésta ocasión les traigo un pequeño tip que me ha sido de gran utilidad para poder iniciar el servicio LDAP que al intentar hacerlo daba error.

Verificar estado del servicio

# /etc/rc.d/init.d/ldap status

Al ejecutar el comando el servicio figuraba detenido (stop), y era necesario que se encuentre iniciado.

Para iniciar el servicio

# /etc/rc.d/init.d/ldap start

Al intentar hacerlo daba el siguiente mensaje de error:

# /etc/rc.d/init.d/ldap start
Verificando los archivos de configuración para slapd:  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(dc=pragmaconsultores,dc=com): PANIC: fatal region error detected; run recovery
bdb_db_open: Database cannot be opened, err -30974. Restore from backup!
bdb(dc=pragmaconsultores,dc=com): DB_ENV->lock_id_free interface requires an environment configured for the locking subsystem
backend_startup_one: bi_db_open failed! (-30974)
slap_startup failed (test would succeed using the -u switch)
                                                           [FALLÃ]
puede haber archivos bloqueados viciados en /var/lib/ldap  [AVISO]

Aparentemente la base se corrompió por un mal reinicio. Para restaurar la base ejecutar:

/usr/sbin/slapd_db_recover -v -h /var/lib/ldap
Finding last valid log LSN: file: 143 offset 1526140
Recovery starting from [132][8522340]
Recovery complete at Tue Mar 28 16:19:49 2013
Maximum transaction ID 8008f2b7 Recovery checkpoint [143][1529594]

Luego reiniciar:

# reboot

Y listo, al iniciar el servicio LDAP éste se iniciará correctamente.
Esto fue probado en la distro Linux CentOs.
Espero que les haya servido!