Compacter ou supprimer un suffixe cn=changelog sur DSEE

Contexte

Sur un annuaire Sun/Oracle DSEE (ancien annuaire, encore pas mal répandu), nous avons activé le retroChangelog, afin de pouvoir identifier quelles opérations de modifications sont faites.

Pour rappel, ceci est fait via une commande dsconf :

dsconf set-server-prop -h localhost -p 389 retro-cl-enabled:on

Le paramétrage a été fait en sorte de ne garder que 30 jours de modifications :

 dsconf set-server-prop -h localhost -p 389 retro-cl-max-age:30d

Malheureusement, la taille prise par les fichiers de base pour ce suffixe devient monstrueuse : plus de 500 Go :

/db/changelog# ls -l |sort -rn |head -11

-rw-------   1 root     root     417548738560 Jan  2 10:54 changelog_id2entry.db3
-rw-------   1 root     root      51864346624 Jan  2 10:54 changelog_entrydn.db3
-rw-------   1 root     root      51318890496 Jan  2 10:54 changelog_nsuniqueid.db3
-rw-------   1 root     root      25551052800 Jan  2 10:54 changelog_replicationCSN.db3
-rw-------   1 root     root      16718430208 Jan  2 10:54 changelog_changenumber.db3
-rw-------   1 root     root            32768 Sep 23 08:30 changelog_objectclass.db3
-rw-------   1 root     root            24576 Sep 23 08:30 changelog_parentid.db3
-rw-------   1 root     root            24576 Sep 23 08:30 changelog_ancestorid.db3
-rw-------   1 root     root            16384 Sep 23 08:30 changelog_numsubordinates.db3
-rw-------   1 root     root            16384 Sep 23 08:29 changelog_uniquemember.db3

Il est donc urgent de pouvoir récupérer de l'espace disque.

La documentation précise que l'on peut compacter un suffixe :

 dsadm repack instance-path suffix-dn

Par exemple dans notre cas

opt/dsee7/bin/dsadm repack  /var/lib/dsee/example cn=changelog

Malheureusement, ceci ne permet pas de récupérer plus de quelques Mo.

La documentation le précise d'ailleurs : "Since application data is not processed and based on the way the database keys are managed, it is not guaranteed that the storage space can be reclaimed."

Solution : désactiver le suffixe et supprimer les fichiers

La seule solution que j'ai pu tester est la suivante (acceptable pour le cn=changelog) :

  • désactiver le retroChangelog
  • arrêter l'instance d'annuaire
  • supprimer les fichiers db3
  • démarrer l'instance.

Dans l'ordre, voici les commandes passées :

$ /opt/dsee7/bin/dsconf set-server-prop -h localhost -p 389 retro-cl-enabled:off

$ /opt/dsee7/bin/dsadm stop /var/lib/dsee/example

$ rm -f /var/lib/dsee/example/db/changelog/*db3

A ce stade il doit juste rester le fichier DBVERSION dans le répertoire. On peut ensuite démarrer l'instance

$ ls /var/lib/dsee/example/db/changelog
DBVERSION

$ /opt/dsee7/bin/dsadm start /var/lib/dsee/example

On peut constater que les fichiers db3 dans la database changelog on été recréés et initialisés.

Si la solution fonctionne correctement pour retroChangelog (dont nous pouvons nous passer dans notre contexte) , ce n'est évidemment pas le cas s'il s'agit de données utiles. 

A utiliser donc avec précaution.

Tags
Catégorie

Ajouter un commentaire

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.