Article
· Août 24, 2023 1m de lecture

Comment regénérer une base d'AUDIT vierge ?

Il arrive parfois que suite à un événement indésirable la base d'AUDIT (IRISAUDIT) ait pris des proportions telles que le disque sur lequel elle réside soit plein et qu'on ne peut attendre la purge quotidienne pour récupérer l'espace disque.

Comme IRISAUDIT est une base système requise au démarrage, il n'est pas question de tenter un redémarrage d'IRIS après une simple suppression de IRIS.DAT de la base <IRIS ROOT>/mgr/irisaudit/, ni de la remplacer directement à chaud, par des manipulations système en essayant de la démonter, remplacer, remonter, puisqu'il n'est tout simplement pas possible de la démonter.

Base IRISAUDIT : montage requis au démarrage d'IRIS

Base IRISAUDIT : démontage impossible

 

La procédure à suivre pour regénérer une base d'AUDIT vierge est la suivante :

  1. Avant d’arrêter IRIS, créer une nouvelle base, exemple NEWAUDIT 
  2. Arrêter IRIS
  3. Supprimer le fichier IRIS.DAT de la base d’AUDIT dans <IRIS ROOT>/mgr/irisaudit
  4. Copier le fichier IRIS.DAT de la base NEWAUDIT dans <IRIS ROOT>/mgr/irisaudit
  5. Redémarrer IRIS
  6. Consulter la base d’AUDIT qui ne contient que les événements liés au démarrage 

Base IRISAUDIT : affichage de la nouvelle base ne contenant que les nouveaux événements liés au démarrage

Discussion (1)1
Connectez-vous ou inscrivez-vous pour continuer

La réponse parfaite avec l'API appropriée à utiliser a été donnée par @Vitaliy Serdtsev 

USER>zn "%sys"
%SYS>w ##class(SYS.Database).%OpenId("/is/iris/mgr/irisaudit").Size
11
%SYS>w ##class(%SYS.Audit).Erase(1)
1
%SYS>w ##class(SYS.Database).%OpenId("/is/iris/mgr/irisaudit").Size
1

Avec dans le messages.log  :

08/24/23-17:31:00:649 (23676) 0 [Database.FullExpansion] Expansion completed for database /is/iris/mgr/irisaudit/. Expanded by 10 MB.
08/24/23-17:33:38:885 (48001) 0 [Generic.Event] Dismounted database /is/iris/mgr/irisaudit/ (SFN 4)
08/24/23-17:33:39:955 (48001) 0 [Database.MountedRW] Mounted database /is/iris/mgr/irisaudit/ (SFN 4) read-write.