Newsgroup: it.comp.os.linux.debian
Titolo: openLDAP e database BDB corrotto

Ciao a tutti, spero proprio che qualcuno possa aiutarmi...
su un mio server Ubuntu (quindi Debian) ho installato openLDAP per
creare una rubrica aziendale condivisa, utilizzata anche per fare
scan2mail con dei copiatori multifunzione evoluti.
Sono ancora in una fase di "impostazione" (tant'e' che non avevo
ancora pianificato backups... sigh!), ma comunque funzionante. Fino a
questa mattina andava che era una meraviglia... ad un certo punto
risultava impossibile accedere al database (sia in lettura che in
scrittura, sia dalla rete che localmente), e anche riavviando slapd,
il servizio non riparte.
ho quindi utilizzato db4.2_recover per tentare un recupero dei dati
(non prima di aver duplicato la directory contenente il database...),
e l'esito è questo:
db_recover: Log sequence error: page LSN 1 5496802; previous LSN 1
5940911
db_recover: Recovery function for LSN 1 5496695 failed on forward pass
db_recover: PANIC: Invalid argument
db_recover: PANIC: fatal region error detected; run recovery
db_recover: PANIC: fatal region error detected; run recovery
db_recover: PANIC: fatal region error detected; run recovery
db_recover: PANIC: fatal region error detected; run recovery
db_recover: PANIC: fatal region error detected; run recovery
db_recover: PANIC: fatal region error detected; run recovery
db_recover: PANIC: fatal region error detected; run recovery
db_recover: PANIC: fatal region error detected; run recovery
db_recover: PANIC: fatal region error detected; run recovery
db_recover: PANIC: fatal region error detected; run recovery
db_recover: DB_ENV->open: DB_RUNRECOVERY: Fatal error, run database
recovery
ho provato a far puntare openLDAP (modificando slapd.conf) ad un altro
database (vuoto) ed in effetti il servizio parte...
C'e' la possibilità di fare un recupero (anche parziale) dei dati? ci
sono memorizzati circa 400 nominativi di clienti con emails e fax (non
sono tantissimi, ma se dico alla centralinista di ri-inserirli tutti,
mi insulta...)
sarebbe utile anche poter estrarre i dati in un ldif da impostare in
un nuovo database, eventualmente... ma non riesco a capire come
operare...
Qualcuno sa come aiutarmi?
Grazie fin d'ora
Mauro

Vabbé... nessuna risposta... fa nulla...
Intanto ho capito che mi mancavano alcune librerie di Berkseley
Database (come ad esempio db_recovery).
Poi ho più o meno risolto: per generare la rubrica, inizialmente,
avevo creato un foglio in Excel da quale ho poi esportato i dati in
LDIF e quindi su OpenLDAP.
Ho rispolverato questo file (aggiornato ad una ventina di giorni fa,
ma comunque abbastanza ricco), ho rigenerato il database da zero
(svuotando la directory del database ed eseguendo il comando slapcat),
ho importato nuovamente il file LDIF originale (slapadd -v -l
nomefile.ldif) ritornando quindi alla situazione di partenza di un
paio di settimane fa.
A questo punto la centralinista provvederà ad eseguire le modifiche
ele aggiunte perse...
Per evitare ulteriori sorprese (dicevo io che sono in fase di
"impostazione") ho creato uno script bash che viene eseguito
giornalmente tramite crontab e che si occupa di "esportare" il
database in un file ldif in una directory specifica, facendone così il
backup.
Lo script crea un file ldif ogni giorno con il nome formato tipo
"AAAAMMGG-backup.ldif", consentendomi un recupero anche di giorni
addietro.
Il comando per esportare in ldif è il seguente:
slapcat -l /directory/nomefile.ldif
Ora mi sento un tantino più tranquillo...
Bye bye!
mauro