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
.png)
Base IRISAUDIT : démontage impossible.png)
La procédure à suivre pour regénérer une base d'AUDIT vierge est la suivante :
- Avant d’arrêter IRIS, créer une nouvelle base, exemple NEWAUDIT
- Arrêter IRIS
- Supprimer le fichier IRIS.DAT de la base d’AUDIT dans <IRIS ROOT>/mgr/irisaudit
- Copier le fichier IRIS.DAT de la base NEWAUDIT dans <IRIS ROOT>/mgr/irisaudit
- Redémarrer IRIS
- 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
.png)
Comments
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
1Avec 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.
.png)