informatique:reseau:ldap:backups

Sauvegardes & restaurations

slapcat -b o=example > /tmp/dump.ldif
service slapd stop
rm -fr /var/lib/ldap/*.mdb
slapadd -b o=example -l /tmp/dump.ldif -q
chown openldap: -R /var/lib/ldap
service slapd start

Dans certaine situation, par exemple après la suppression d'un attribut, il peut être nécessaire de dump/restore la base de données. Dans cette situation et en l'absence d'écriture dans la base, la procédure suivante permet de réduire le temps d’interruption à un redémarrage du service :

Le temps de la manipulation, les données vont être dupliquées sur le disque. Assurez-vous d'avoir l'espace disque nécessaire pour cela.

Afin de minimiser le temps de coupure, la nouvelle base est stockée dans le même système de fichiers que la base en production.

Si vous n'avez pas l'espace disque nécessaire pour cela dans ce système de fichiers, vous pouvez stocker la nouvelle base dans un autre endroit (par exemple /var/tmp/ldap). Lors de la bascule, utiliser alors la commande rsync avec le paramètre –sparse :

rsync -av --sparse /var/tmp/ldap/ /var/lib/ldap
  • Commencer par cloner la configuration du service en y modifiant le dossier de stockage de la base :
    rsync -av /etc/ldap/slapd.d/ /var/tmp/slapd.d/
    sed -i 's|/var/lib/ldap$|/var/lib/ldap/new|' '/var/tmp/slapd.d/cn=config/olcDatabase={1}mdb.ldif'
    grep olcDbDirectory '/var/tmp/slapd.d/cn=config/olcDatabase={1}mdb.ldif'
  • Corriger les CRC32 dans cette nouvelle configuration :
    [ ! -d /usr/local/src/check_slapdd_crc32 ] && git clone https://gogs.zionetrix.net/bn8/check_slapdd_crc32.git /usr/local/src/check_slapdd_crc32
    [ ! -e /usr/local/sbin/check_slapdd_crc32 ] && ln -s /usr/local/src/check_slapdd_crc32/check_slapdd_crc32 /usr/local/sbin/check_slapdd_crc32
    check_slapdd_crc32 -p /var/tmp/slapd.d/ -f
  • Stopper les écritures sur la base à partir de maintenant ! En cas d'infrastructure multi-master, l'autre serveur pourra assurer réplication des modifications après reprise.
  • Dump/restore de la base dans le nouvel emplacement :
    mkdir /var/lib/ldap/new
    slapcat |slapadd -F /var/tmp/slapd.d/ -q
  • Stopper le service le temps de basculer sur la nouvelle base :
    service slapd stop
    mkdir /var/lib/ldap/old
    mv /var/lib/ldap/*.mdb /var/lib/ldap/old/
    mv /var/lib/ldap/new/*.mdb /var/lib/ldap/
    chown openldap: -R /var/lib/ldap
    service slapd start
  • Si tout va bien, un peu de nettoyage :
    rm -fr /var/lib/ldap/old/ /var/tmp/slapd.d/ /var/lib/ldap/new/
  • informatique/reseau/ldap/backups.txt
  • Dernière modification : 2024/07/22 16:51
  • de bn8