Petit rappel pour l'ajout d'index sur Sun DSEE
Symptômes
Machine très lente. Dans le log errors :
[23/Mar/2018:09:52:00 +0100] - WARNING<20805> - Backend Database - conn=1636653 op=1286 msgId=1287 - search is not indexed base='dc=exampel,dc=com' filter='(|(&(objectclass=ocCustomPerson)(state=0)(!(contracttype=F1))(computersite=sid=RES441*)(contractlastdate<=20180322)(!(contractlastdate=00000000)))(&(objectclass=ocExtendedPerson)(!(state=2)(contracttype=F1)(computersite=sid=RES441*)(hrcontractlastdate<=20180322)(!(hrcontractlastdate=00000000))))' scope='sub'
Création d'un index
La gestion des index se fait avec l'utilitaire dsconf :
bin/dsconf create-index -h host -p port baseDN index
Exemple
bin/dsconf create-index -h localhost -p 389 dc=example,dco=com state
Ceci va uniquement créer la définition de l'index. Si les données exsstent déjà, il faut passer par une phase de génération (calcul) de l'index.
Note : si on a plusieurs instances actives avec les mêmes données (par exemple dans le cas d'une réplication), il faut lancer les commandes sur chaque instance.
Génération de l'index
On utilise l'option reindex
bin/dsconf reindex -h host -p port-t index baseDN
Exemple
bin/dsconf reindex -h localhost -p 389 -t state dc=example,dc=com
Voir la liste des indexes
Pour vérifier la liste des indexes créés, on utilise l'option list-indexes :
bin/dsconf list-indexes -h localhost -p 389
Voir le détail d'un index
On peut avoir le détail d'un index (type, limites) avec l'option get-index-prop en précisant le BaseDN et le nom de l'attribut :
bin/dsconf get-index-prop -h localhost -p 389 dc=example,dc=com state Enter "cn=Directory Manager" password: eq-enabled : on pres-enabled : on sub-enabled : off approx-enabled : off matching-rule : - system : no all-ids-threshold-eq : 4000 all-ids-threshold-pres : 4000 all-ids-threshold-sub : N/A all-ids-threshold : inherited (4000) desc : -
Catégorie