GNU/Linux >> Tutoriels Linux >  >> Linux

Comment gérer la croissance du répertoire de fichiers d'audit de la base de données Oracle avec cron (instances ASM uniquement)

Les répertoires de destination des fichiers d'audit pour une instance ASM peuvent croître pour contenir un très grand nombre de fichiers s'ils ne sont pas régulièrement mis à jour. Le fait d'avoir un très grand nombre de fichiers peut entraîner un manque d'espace disque libre ou d'inodes dans le système de fichiers, ou peut entraîner un fonctionnement très lent d'Oracle en raison des limites de mise à l'échelle du répertoire du système de fichiers, ce qui peut donner l'impression que l'instance ASM est suspendue. démarrage.

Cet article explique comment utiliser l'utilitaire Linux cron pour gérer le nombre de fichiers dans les répertoires de destination des fichiers d'audit. Ces étapes doivent être effectuées pour l'instance ASM sur chaque serveur de base de données. Ce document explique comment gérer les répertoires de destination des fichiers d'audit pour les instances ASM uniquement.

Étape 1 :Identifiez les répertoires d'audit ASM

Trois répertoires peuvent contenir des fichiers d'audit. Tous les trois doivent être gérés pour contrôler une croissance excessive.

Deux emplacements par défaut sont basés sur les paramètres de variable d'environnement au démarrage de l'instance ASM. Pour déterminer les emplacements par défaut de votre système, connectez-vous en tant que propriétaire du logiciel Grid Infrastructure (généralement oracle ou grid), configurez votre environnement de manière à pouvoir vous connecter à l'instance ASM, puis exécutez les commandes "echo" fournies ci-dessous. Dans cet exemple, les deux répertoires d'audit par défaut sont /u01/app/11.2.0/grid/rdbms/audit et /u01/app/oracle/admin/+ASM1/adump.

$ . /usr/local/bin/oraenv
ORACLE_SID = [+ASM1] ? +ASM1
The Oracle base for ORACLE_HOME=/u01/app/11.2.0/grid is /u01/app/oracle
$ echo $ORACLE_HOME/rdbms/audit
/u01/app/11.2.0/grid/rdbms/audit
$ echo $ORACLE_BASE/admin/$ORACLE_SID/adump
/u01/app/oracle/admin/+ASM1/adump

Le troisième répertoire d'audit ASM peut être trouvé en se connectant à l'instance ASM avec SQL*Plus et en exécutant cette instruction :

$ sqlplus '/ as sysasm'

SQL> select value from v$parameter where name = 'audit_file_dest';

VALUE
--------------------------------------------------------------------------------
/u01/app/11.2.0/grid/rdbms/audit

Les trois répertoires d'audit ASM seront gérés avec cron.

Étape 2 – Autoriser le propriétaire du logiciel Grid Infrastructure à utiliser cron

Les fichiers d'audit appartiennent au propriétaire du logiciel Grid Infrastructure, qui est généralement Oracle ou Grid. Les commandes de déplacement ou de suppression des fichiers d'audit doivent être exécutées en tant que propriétaire du logiciel Grid Infrastructure. En tant qu'utilisateur root, ajoutez le propriétaire du logiciel Grid Infrastructure au fichier /etc/cron.allow. Les exemples ci-dessous utilisent l'oracle utilisateur.

# echo oracle >> /etc/cron.allow

Étape 3 – Ajouter une commande à crontab pour gérer les fichiers d'audit chaque semaine

En tant que propriétaire du logiciel Grid Infrastructure, ajoutez une entrée au fichier crontab. La commande suivante lancera une session d'édition de la commande vi(P) pour modifier le fichier crontab existant ou créer un nouveau fichier crontab s'il n'en existe pas déjà.

$ crontab -e

Ajoutez ce qui suit à ce fichier sur une seule ligne :

0 2 * * sun /usr/bin/find /u01/app/11.2.0/grid/rdbms/audit /u01/app/11.2.0/grid/rdbms/audit /u01/app/oracle/admin/+ASM1/adump -maxdepth 1 -name '*.aud' -mtime +30 -delete

Cette entrée crontab exécute la commande find à 2h du matin tous les dimanches. La commande find supprime tous les fichiers d'audit des trois répertoires d'audit ASM datant de plus de 30 jours.

Si vous souhaitez conserver les fichiers d'audit plus longtemps, au lieu de supprimer les fichiers d'audit avec la commande find(1), vous pouvez archiver les fichiers d'audit dans un répertoire ou un périphérique de stockage différent à l'aide d'une entrée crontab comme suit :

0 2 * * sun /usr/bin/find /u01/app/11.2.0/grid/rdbms/audit /u01/app/11.2.0/grid/rdbms/audit /u01/app/oracle/admin/+ASM1/adump -maxdepth 1 -name '*.aud' -mtime +30 -execdir /bin/mv {} /archived_audit_dir \;

Cette entrée crontab exécute la commande find à 2h du matin tous les dimanches. La commande find déplace tous les fichiers d'audit des trois répertoires d'audit ASM datant de plus de 30 jours vers /archived_audit_dir. Enregistrez et quittez le fichier crontab à l'aide des commandes vi ([ESC] :wq), puis vérifiez le contenu de la crontab.

$ crontab -l
0 2 * * sun /usr/bin/find /u01/app/11.2.0/grid/rdbms/audit /u01/app/11.2.0/grid/rdbms/audit /u01/app/oracle/admin/+ASM1/adump -maxdepth 1 -name '*.aud' -mtime +30 -delete

Dépannage

Si les anciens fichiers d'audit ne sont pas supprimés, procédez comme suit :

1. Pour vérifier que cron exécute la commande find dans les délais et en tant que propriétaire correct du logiciel Grid Infrastructure, consultez /var/log/cron fichier en tant qu'utilisateur root pour une entrée comme celle-ci :

Feb 20 02:00:01 dm01db01 crond[6936]: (oracle) CMD (/usr/bin/find /u01/app/11.2.0/grid/rdbms/audit /u01/app/11.2.0/grid/rdbms/audit /u01/app/oracle/admin/+ASM1/adump -maxdepth 1 -name '*.aud' -mtime +60 -delete)

2. Connectez-vous en tant qu'utilisateur propriétaire de l'entrée crontab (c'est-à-dire le propriétaire du logiciel Grid Infrastructure). Exécutez la commande find manuellement pour vérifier l'exactitude de la syntaxe de la commande et qu'aucune erreur n'a été signalée.


Linux
  1. Gérer plusieurs instances de service avec systemctl

  2. Comment gérer les capacités des fichiers Linux

  3. Comment gérer les autorisations/propriétés des fichiers et des répertoires sous Linux

  4. Comment obtenir uniquement le nom de fichier avec Linux 'find'?

  5. Comment lister tous les fichiers avec seulement un chemin de fichier arbitraire lu, mais sans liste de répertoires ni sudo?

Comment lire un fichier avec des espaces sous Linux

Gérer les autorisations de répertoire et de fichier avec chmod Recursive

Comment planifier des tâches avec Cron sous Linux

Gérer les fichiers d'audit ASM avec syslog - configurer le taux de journalisation et l'audit

Comment auditer l'accès aux fichiers sous Linux

Comment remplir un fichier avec FF en utilisant dd ?