OpenLDAP utilise plusieurs backends afin de stocker ses données. Il est possible d’utiliser Berkeley DataBase (BDB) ou HDB.
Dans certains cas, comme la récente décision de FreeBSD d’utiliser BDB version 5 par défaut au lieu de BDB version 4, OpenLDAP ne se lancera plus après la mise à jour de BDB. Si vous utilisez la commande slapcat vous verrez la sortie suivante:
53ff62d3 bdb(dc=unix-experience,dc=fr): BDB1538 Program version 5.3 doesn't match environment version 4.6
53ff62d3 bdb_db_open: database "dc=unix-experience,dc=fr" cannot be opened, err -30969\. Restore from backup!
53ff62d3 backend_startup_one (type=bdb, suffix="dc=unix-experience,dc=fr"): bi_db_open failed! (-30969)
slap_startup failed
Pour effectuer la migration il vous faut garder une copie locale des anciens binaires de BDB. Sous FreeBSD, l’ancienne version peut cohabiter en parallèle de la nouvelle version.
Allez ensuite dans le répertoire de données OpenLDAP (sous FreeBSD /var/db/openldap-data), et exécutez les commandes suivantes:
db_checkpoint-4.6 -1
db_recover-4.6
db_recover-5.3 -e
Note: si vous n’avez pas la possibilité de faire cohabiter deux version de BDB, lancez db_checkpoint -1 puis db_recover, mettez à jour BDB puis lancez db_recover -e