5.25. Réindexation¶
Cette procédure consiste à réindexer le contenu des bases de données Elasticsearch-data (cluster d’indexation dédié aux données métier) en cas de perte ou d’inconsistance de données, à partir des informations présentes dans les bases de données MongoDB-data (replicaset MongoDB stockant les données métier de Vitam). Elle part du principe que le contenu des collections MongoDB-data n’a pas été altéré et que les différents indexes Elasticsearch-data sont toujours existants.
5.25.1. Déclenchement¶
Prudence
il est important d’arrêter les services externals
et scheduler
et s’assurer qu’aucun workflow n’est en cours avant de démarrer cette procédure.
La réindexation se déclenche de la manière suivante :
ansible-playbook ansible-vitam-exploitation/reindex_es_data.yml -i environments/hosts.<environnement> --ask-vault-pass
Si nous voulons exécuter la re-indexation sur un ensemble de tenants, il faudra lancer la procédure de la manière suivante:
ansible-playbook ansible-vitam-exploitation/reindex_es_data.yml -i environments/hosts.<environnement> --ask-vault-pass -e "vitam_tenant_ids=<tenantsList>"
Ce playbook s’assure que le composant vitam-functional-administration
est démarré, puis procède à la réindexation et au re-aliasing (bascule sur le nouvel index) des collections suivantes :
- unit
- objectgroup
- logbookoperation
- securityprofile
- context
- ontology
- ingestcontract
- agencies
- accessionregisterdetail
- archiveunitprofile
- accessionregistersummary
- accesscontract
- fileformat
- filerules
- profile
- griffin
- preservationscenario
- managementcontract
Note
La réindexation peut s’opérer au besoin sur uniquement l’une des collections ci-dessus en spécifiant l’option –tags <collection> à l’exécution de la commande ansible.
Prudence
La réindexation de la collection griffin n’est pas utilisable dans cette version (bug 5762).
Prudence
La purge des anciens index n’est pas réalisée par cette procédure scriptée et est laissée à la charge de l’exploitant.
Prudence
Le rôle elasticsearch-mapping n’est pas joué par ce playbook.
En cas de modification des fichiers de mapping ES des collections Unit et ObjectGroup, qui sont externalisés,
il faudra rejouer les playbooks metadata.yml
et metadata_collect.yml
avant de réindexer.
Prudence
Si un tenant fait partie d’un groupe de tenant, il faudra re-indexer l’ensemble des tenants