GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo administrar la base de datos de Oracle Auditar el crecimiento del directorio de archivos con cron (solo instancias de ASM)

Los directorios de destino de archivos de auditoría para una instancia de ASM pueden crecer hasta contener una gran cantidad de archivos si no se les da mantenimiento con regularidad. Tener una gran cantidad de archivos puede hacer que el sistema de archivos se quede sin espacio libre en disco o sin inodos, o puede hacer que Oracle se ejecute muy lentamente debido a los límites de escalado del directorio del sistema de archivos, lo que puede dar la apariencia de que la instancia de ASM está pendiente. inicio.

Esta publicación explica cómo usar la utilidad cron de Linux para administrar la cantidad de archivos en los directorios de destino de archivos de auditoría. Estos pasos se deben realizar para la instancia de ASM en cada servidor de base de datos. Este documento explica cómo administrar los directorios de destino de archivos de auditoría solo para instancias de ASM.

Paso 1:identificar los directorios de auditoría de ASM

Hay tres directorios que pueden contener archivos de auditoría. Los tres deben manejarse para controlar el crecimiento excesivo.

Dos ubicaciones predeterminadas se basan en la configuración de variables de entorno cuando se inicia la instancia de ASM. Para determinar las ubicaciones predeterminadas de su sistema, inicie sesión como propietario del software Grid Infrastructure (por lo general, ya sea Oracle o Grid), configure su entorno para que pueda conectarse a la instancia de ASM y luego ejecute los comandos "echo" que se proporcionan a continuación. En este ejemplo, los dos directorios de auditoría predeterminados son /u01/app/11.2.0/grid/rdbms/audit y /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

El tercer directorio de auditoría de ASM se puede encontrar iniciando sesión en la instancia de ASM con SQL*Plus y ejecutando esta instrucción:

$ sqlplus '/ as sysasm'

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

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

Los tres directorios de auditoría de ASM se administrarán con cron.

Paso 2:otorgar permiso al propietario del software Grid Infrastructure para usar cron

Los archivos de auditoría pertenecen al propietario del software Grid Infrastructure, que suele ser Oracle o Grid. Los comandos para mover o eliminar archivos de auditoría deben ejecutarse como propietario del software Grid Infrastructure. Como raíz, agregue el propietario del software Grid Infrastructure al archivo /etc/cron.allow. Los ejemplos a continuación usan el usuario oráculo.

# echo oracle >> /etc/cron.allow

Paso 3:agregue un comando a crontab para administrar los archivos de auditoría semanalmente

Como propietario del software Grid Infrastructure, agregue una entrada al archivo crontab. El siguiente comando iniciará una sesión de edición del comando vi(P) para editar el archivo crontab existente o crear un nuevo archivo crontab si aún no existe.

$ crontab -e

Agregue lo siguiente a este archivo como una sola línea:

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

Esta entrada de crontab ejecuta el comando de búsqueda a las 2 a. m. todos los domingos. El comando de búsqueda elimina todos los archivos de auditoría en los tres directorios de auditoría de ASM que tienen más de 30 días.

Si desea conservar los archivos de auditoría durante un período de tiempo más prolongado, en lugar de eliminar los archivos de auditoría con el comando find(1), puede archivar los archivos de auditoría en un directorio o dispositivo de almacenamiento diferente utilizando una entrada crontab como la siguiente:

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 \;

Esta entrada de crontab ejecuta el comando de búsqueda a las 2 a. m. todos los domingos. El comando de búsqueda mueve todos los archivos de auditoría en los tres directorios de auditoría de ASM que tienen más de 30 días a /archived_audit_dir. Guarde y salga del archivo crontab usando los comandos vi ([ESC] :wq), luego verifique el contenido de 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

Resolución de problemas

Si los archivos de auditoría antiguos no se eliminan, realice los siguientes pasos:

1. Para monitorear que cron esté ejecutando el comando de búsqueda según lo programado y como el propietario correcto del software Grid Infrastructure, revise el /var/log/cron archivo como usuario raíz para una entrada como la siguiente:

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. Inicie sesión como el usuario propietario de la entrada crontab (es decir, el propietario del software Grid Infrastructure). Ejecute el comando de búsqueda manualmente para verificar que la sintaxis del comando sea correcta y que no se informen errores.


Linux
  1. Linux:¿cómo hacer que Oracle Java 7 funcione con Setcap Cap_net_bind_service+ep?

  2. ¿Cómo redirigir solo Stderr?

  3. ¿Cómo hacer una copia de seguridad de su base de datos Mysql con phpMyAdmin?

  4. Cómo encontrar todos los archivos con tamaño de archivo cero (0) bytes en un directorio recursivamente

  5. Cómo administrar permisos/propiedades de archivos y directorios en Linux

Cómo leer un archivo con espacios en Linux

Administre directorios y permisos de archivos con chmod Recursive

Cómo programar trabajos con Cron en Linux

Administre los archivos de auditoría de ASM con syslog:configure el logro y la auditoría

Cómo auditar el acceso a archivos en Linux

¿Cómo obtener solo el nombre del archivo con Linux 'buscar'?