O LDAP é uma aplicação Open Source que implementa o Lightweight Directory Access Protocol. Este protoloco de aplicação serve para realizar querys (perguntas) e modificar serviços de directórios sobre TCP/IP.
Um directorio é um conjunto de objectos e respectivos atribuitos organizados numa hierarquia lógica. Um exemplo mais comum é um directório de telefones, que consiste numa série de nomes organizados alfabéticamente, onde cada nome tem um endereço e um número de telefone associado. Nos casos mais comuns, representa pessoas, unidades organizacionais, impressoras, documentos, grupos de pessoas, etc…
No meu caso, contém os nomes de utilizador, passwords e outros atributos. No meu local de trabalho, temos dois servidores, um primário e um segundário, sincronizados, a funcionar muito bem (ou pensava eu).
De vez em quando, o servidor primário começa a dar erros na base de dados, tais como:
/etc/init.d/ldap start
Checking configuration files for 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.
Quando isto acontece, só existe uma forma, que é recuperar a base de dados. Aqui está como:
slapd_db_recover -v -h /var/lib/ldap
Finding last valid log LSN: file: 16 offset 253739
Recovery starting from [15][6675411]
Recovery complete at Fri May 8 11:23:48 2009
Maximum transaction ID 8000006c Recovery checkpoint [16][254619]
Após este processo, só têm que iniciar novamente com o LDAP:
/etc/init.d/ldap start
Checking configuration files for 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.
config file testing succeeded
[ OK ]
Starting slapd: [ OK ]
Starting slurpd: [ OK ]
Para experimentarem, executem de outro computador, uma query ao servidor que acabaram de reparar:
ldapsearch -h <nome_servidor_reparado> -x -b "dc=whatgeek,dc=com,dc=pt" uid=feiticeir0 -Z
Se estiver tudo a funcionar, devem aparecer imensas linhas no ecran com os dados do utilizador.
-h <nome_servidor_a_fazer_a_pesquisa>
-x <usar autenticação simples>
-b <usar a pesquisa base>
-Z <usar autenticação TLS dos certificados>
NOTA: Mantenham sempre backups da vossa arvore.