Le directory di destinazione del file di controllo per un'istanza ASM possono aumentare fino a contenere un numero molto elevato di file se non vengono mantenute regolarmente. Avere un numero molto elevato di file può causare l'esaurimento dello spazio libero su disco o degli inode nel file system oppure può causare l'esecuzione molto lenta di Oracle a causa dei limiti di ridimensionamento della directory del file system, che possono avere l'impressione che l'istanza ASM sia sospesa avvio.
Questo post spiega come utilizzare la funzione syslog di Linux per gestire i record di controllo ASM in modo che i record di controllo ASM vengano registrati dalla struttura syslog del sistema operativo anziché dai singoli file in audit_dump_dest directory.
Questi passaggi devono essere eseguiti per l'istanza ASM su ogni server di database. Questo documento spiega come gestire i record di controllo solo per le istanze ASM.
Configurazione
Questi passaggi devono essere eseguiti per l'istanza ASM su ogni server di database.
Fase 1 – Imposta i parametri di inizializzazione ASM AUDIT_SYSLOG_LEVEL e AUDIT_SYS_OPERATIONS
Nel file di inizializzazione ASM, impostare i parametri AUDIT_SYSLOG_LEVEL e AUDIT_SYS_OPERATIONS sui seguenti valori:
AUDIT_SYSLOG_LEVEL='local0.info' AUDIT_SYS_OPERATIONS=TRUE
Fase 2 – Configura /etc/syslog.conf per il controllo ASM
Configura il file di configurazione syslog /etc/syslog.conf o /etc/rsyslog.conf per il controllo ASM apportando le due modifiche seguenti:
1. Aggiungi la seguente riga in /etc/syslog.conf o /etc/rsyslog.conf
local0.info /var/log/asmaudit.log
2. Alla riga che configura la registrazione per /var/log/messages in /etc/syslog.conf, aggiungere local0.none. Ad esempio:
*.info;mail.none;authpriv.none;cron.none;local0.none /var/log/messages
Fase 3:configura logrotate per gestire i file di registro syslog
L'utilità logrotate di Linux viene utilizzata per gestire la dimensione e il numero dei file di registro syslog per il controllo ASM. Crea il file /etc/logrotate.d/asmaudit con il seguente contenuto:
# vi /etc/logrotate.d/asmaudit /var/log/asmaudit.log { weekly rotate 4 compress copytruncate delaycompress notifempty }
Fase 4 – Riavvia le istanze ASM e il servizio syslog
Affinché le modifiche abbiano effetto, è necessario riavviare le istanze ASM e il servizio syslog. Un'istanza ASM viene riavviata arrestando e avviando l'infrastruttura della griglia utilizzando i comandi "crsctl stop" e "crsctl start". Questa azione richiede l'arresto delle istanze del database.
# GRID_HOME/grid/bin/crsctl stop cluster # GRID_HOME/grid/bin/crsctl start cluster
Per riavviare il servizio syslog, eseguire il comando "service syslog restart":
# service syslog restart Shutting down kernel logger: [ OK ] Shutting down system logger: [ OK ] Starting system logger: [ OK ] Starting kernel logger: [ OK ]
Fase 5:verifica che i record di controllo ASM siano creati in /var/log/asmaudit.log
Verifica che una connessione privilegiata ad ASM (ad es. connessione SYSDBA o SYSASM) generi una voce creata in /var/log/asmaudit.log simile alla seguente:
Oracle Audit[8738]: LENGTH : '142' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[5] 'oracle' CLIENT TERMINAL:[0] '' STATUS:[1] '0' DBID:[0]
Risoluzione dei problemi
Se i record di controllo di syslog sono registrati in /var/log/messages, assicurati che /etc/syslog.conf sia stato configurato correttamente per aggiungere "local0.none" alla voce /var/log/messages.