Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

informatique:reseau:ldap:migration_bdb_hdb_mdb [2019/08/06 12:27] (Version actuelle)
bn8 créée
Ligne 1: Ligne 1:
 +====== Migration BDB/HDB vers MDB ======
  
 +**Postulat de départ :** vous avez un database configurée en tant que //​olcDatabase={1}hdb,​cn=config//​ et utilisant le backend //HDB// (ou un database configurée en tant que //​olcDatabase={1}bdb,​cn=config//​ et utilisant le backend //BDB//) et vous voulez passez sur une base utilisant le backend //MDB//.
 +
 +Il faut d'​abord charger le module //​back_mdb//​ :
 +  * Créer le fichier ///​tmp/​load-module.ldif//​ : <code ldif>dn: cn=module{0},​cn=config
 +changetype: modify
 +add: olcModuleLoad
 +olcModuleLoad:​ back_mdb</​code>​
 +  * Jouer ce LDIF via //​ldapmodify//​ : <code bash>​ldapmodify -x -D cn=admin,​cn=config -W -f /​tmp/​load-module.ldif
 +# Ou :
 +ldapmodify -Y EXTERNAL -H ldapi:/// -f /​tmp/​load-module.ldif</​code>​
 +
 +Stopper //​OpenLDAP//​ : <code bash>​service slapd stop</​code>​
 +
 +On fait quelques sauvegarde : <code bash>​rsync -av /​etc/​ldap/​slapd.d/​ /​etc/​ldap/​slapd.d.bkp/​
 +slapcat -n 1 > /​tmp/​ldif</​code>​
 +
 +On migre la configuration :
 +  * On renomme le fichier //​olcDatabase={1}hdb//​ ou //​olcDatabase={1}bdb//​ en tant que //​olcDatabase={1}mdb//​ : <code bash>cd '/​etc/​ldap/​slapd.d/​cn=config'​
 +# Pour HDB :
 +mv '​olcDatabase={1}hdb.ldif'​ '​olcDatabase={1}mdb.ldif'​
 +[ -d '​olcDatabase={1}hdb'​ ] && mv '​olcDatabase={1}hdb'​ '​olcDatabase={1}mdb'​
 +# Ou pour BDB :
 +mv '​olcDatabase={1}bdb.ldif'​ '​olcDatabase={1}mdb.ldif'​
 +[ -d '​olcDatabase={1}bdb'​ ] && mv '​olcDatabase={1}bdb'​ '​olcDatabase={1}mdb'</​code>​
 +  * Éditer le fichier //​olcDatabase={1}mdb.ldif//​ :
 +    * supprimer les deux premières ligne liées au //CRC//. Exemple : <​code>#​ AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
 +# CRC32 ddd6c93e</​code>​
 +    * **dn :** changer //hdb// (ou //bdb//) en //mdb//
 +    * **objectClass et structuralObjectClass :** changer //​olcHdbConfig//​ (ou //​olcBdbConfig//​) en //​olcMdbConfig//​
 +    * **olcDbCheckpoint :** conserver en l'​état
 +    * **olcDatabase :** changer //hdb// (ou //bdb//) en //mdb//
 +    * supprimer les lignes //​olcDbConfig//​
 +    * ajouter //​olcDbMaxSize:​ 1073741824//​
 +
 +On supprime et réimporte les données à partir du dump //LDIF// : <code bash>rm -fr /​var/​lib/​ldap/​*
 +slapadd -n 1 -q -l /tmp/ldif
 +chown openldap: -R /​var/​lib/​ldap</​code>​
 +
 +On relance //​OpenLDAP//​ : <code bash>​service slapd start</​code>​
 +
 +Si tout est ok, vous pouvez supprimer les sauvegardes : <code bash>rm -fr /tmp/ldif /​etc/​ldap/​slapd.d.bkp/</​code>​