

# Archivos de registro de base de datos de Amazon RDS para Oracle
<a name="USER_LogAccess.Concepts.Oracle"></a>

Puede obtener acceso a los registros de alertas, archivos de auditoría y archivos de seguimiento de Oracle mediante la API o la consola de Amazon RDS. Para obtener más información acerca de la visualización, descarga y vigilancia de los registros de bases de datos basados en archivos, consulte [Supervisión de archivos de registro de Amazon RDS](USER_LogAccess.md). 

Los archivos de auditoría de Oracle proporcionados son los de auditoría estándar de Oracle. Amazon RDS admite la característica fine-grained auditing (FGA) de Oracle. Sin embargo, el acceso al registro no proporciona acceso a los eventos de FGA que se almacenan en la tabla `SYS.FGA_LOG$`, disponibles en la vista `DBA_FGA_AUDIT_TRAIL`. 

La operación de la API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html), que muestra una lista de los archivos de registro de Oracle que están disponibles para una instancia de base de datos, no tiene en cuenta el parámetro `MaxRecords` y devuelve hasta 1000 registros. La llamada devuelve `LastWritten` como una fecha POSIX en milisegundos.

**Topics**
+ [Calendario de retención](#USER_LogAccess.Concepts.Oracle.Retention)
+ [Uso de los archivos de seguimiento de Oracle](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles)
+ [Publicación de registros de Oracle en Amazon CloudWatch Logs](#USER_LogAccess.Oracle.PublishtoCloudWatchLogs)
+ [Acceso a los registros de alertas y de oyentes](#USER_LogAccess.Concepts.Oracle.AlertLogAndListenerLog)

## Calendario de retención
<a name="USER_LogAccess.Concepts.Oracle.Retention"></a>

El motor de base de datos de Oracle podría rotar los archivos de registros si alcanzan un tamaño muy grande. Para conservar los archivos de auditoría o de seguimiento, descárguelos. Si almacena los archivos localmente, reducirá los costos de almacenamiento de Amazon RDS y hará que haya más espacio disponible para los datos. 

La tabla siguiente muestra el calendario de retención para los registros de alertas, los archivos de auditoría y los archivos de seguimiento de Oracle en Amazon RDS. 


****  

| Log type (Tipo de registro) | Calendario de retención | 
| --- | --- | 
|  Registros de alertas  |   El registro de alertas de texto se rota diariamente con una retención de 30 días administrada por Amazon RDS. El registro de alertas XML se conserva durante al menos siete días. Puede acceder a este registro con la vista `ALERTLOG`.   | 
|  Archivos de auditoría  |   El periodo de retención predeterminado para los archivos de auditoría es de siete días. Amazon RDS podría eliminar los archivos de auditoría que tienen más de siete días.   | 
|  Archivos de seguimiento  |  El periodo de retención predeterminado para los archivos de seguimiento es de siete días. Amazon RDS podría eliminar los archivos de seguimiento que tienen más de siete días.   | 
|  Registros de escuchas  |   El periodo de retención predeterminado para los registros de agente de escucha es de siete días. Amazon RDS podría eliminar los registros de agente de escucha que tienen más de siete días.   | 

**nota**  
Los archivos de auditoría y archivos de seguimiento comparten la misma configuración de retención.

## Uso de los archivos de seguimiento de Oracle
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles"></a>

Puede encontrar, a continuación, descripciones de procedimientos de Amazon RDS para crear, actualizar, obtener acceso y eliminar archivos de seguimiento.

**Topics**
+ [Descripción de archivos](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.ViewingBackgroundDumpDest)
+ [Generación de archivos de seguimiento y seguimiento de una sesión](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Generating)
+ [Recuperación de archivos de seguimiento](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Retrieving)
+ [Depuración de archivos de seguimiento](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Purging)

### Descripción de archivos
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.ViewingBackgroundDumpDest"></a>

Puede usar cualquiera de estos dos procedimientos para permitir el acceso a cualquier archivo en la ruta `background_dump_dest`. El primer procedimiento actualiza una vista que contiene una lista de todos los archivos existentes en `background_dump_dest`. 

```
1. EXEC rdsadmin.manage_tracefiles.refresh_tracefile_listing;
```

Una vez actualizada la vista, consulte la siguiente vista para acceder a los resultados.

```
1. SELECT * FROM rdsadmin.tracefile_listing;
```

Una alternativa al proceso anterior consiste en utilizar `FROM table` para transmitir datos no relacionales con un formato similar al de una tabla con el fin de mostrar el contenido del directorio de bases de datos.

```
1. SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('BDUMP'));
```

La consulta siguiente muestra el texto de un archivo de registro.

```
1. SELECT text FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP','alert_dbname.log.date'));
```

En una réplica de lectura, obtenga el nombre del directorio BDUMP consultando `V$DATABASE.DB_UNIQUE_NAME`. Si el nombre único es `DATABASE_B`, entonces el directorio BDUMP es `BDUMP_B`. En el ejemplo siguiente se consulta el nombre de BDUMP en una réplica y, a continuación, se utiliza este nombre para consultar el contenido de `alert_DATABASE.log.2020-06-23`.

```
1. SELECT 'BDUMP' || (SELECT regexp_replace(DB_UNIQUE_NAME,'.*(_[A-Z])', '\1') FROM V$DATABASE) AS BDUMP_VARIABLE FROM DUAL;
2. 
3. BDUMP_VARIABLE
4. --------------
5. BDUMP_B
6. 
7. SELECT TEXT FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP_B','alert_DATABASE.log.2020-06-23'));
```

### Generación de archivos de seguimiento y seguimiento de una sesión
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Generating"></a>

Dado que no existen restricciones sobre `ALTER SESSION`, muchos métodos estándar para generar archivos de seguimiento en Oracle permanecen disponibles para una instancia de base de datos de Amazon RDS. Los siguientes procedimientos están disponibles para los archivos de seguimiento que necesitan un acceso mayor. 


****  

|  Método de Oracle  |  Método de Amazon RDS | 
| --- | --- | 
|  `oradebug hanganalyze 3 `  |  `EXEC rdsadmin.manage_tracefiles.hanganalyze; `  | 
|  `oradebug dump systemstate 266 `  |  `EXEC rdsadmin.manage_tracefiles.dump_systemstate;`  | 

Puede utilizar varios métodos estándar para realizar el seguimiento de sesiones individuales conectadas a una instancia de base de datos de Oracle en Amazon RDS. Para habilitar el seguimiento de una sesión, puede ejecutar subprogramas en paquetes PL/SQL suministrados por Oracle, como `DBMS_SESSION` y `DBMS_MONITOR`. Para obtener más información, consulte [Enabling Tracing for a Session](https://docs.oracle.com/database/121/TGSQL/tgsql_trace.htm#GUID-F872D6F9-E015-481F-80F6-8A7036A6AD29) en la documentación de Oracle. 

### Recuperación de archivos de seguimiento
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Retrieving"></a>

Puede recuperar cualquier archivo de seguimiento de `background_dump_dest` utilizando una consulta SQL estándar de una tabla externa administrada por Amazon RDS. Para utilizar este método, debe ejecutar un procedimiento para establecer la ubicación de esta tabla en el archivo de seguimiento específico. 

Por ejemplo, puede utilizar la vista `rdsadmin.tracefile_listing` mencionada anteriormente para obtener la lista de los archivos de seguimiento del sistema. A continuación, puede utilizar el siguiente procedimiento para configurar la vista `tracefile_table` para que haga referencia al archivo de seguimiento que desee. 

```
1. EXEC rdsadmin.manage_tracefiles.set_tracefile_table_location('CUST01_ora_3260_SYSTEMSTATE.trc');
```

En el siguiente ejemplo se crea una tabla externa en el esquema actual con la ubicación establecida en el archivo indicado. Puede recuperar el contenido en un archivo local utilizando una consulta SQL. 

```
1. SPOOL /tmp/tracefile.txt
2. SELECT * FROM tracefile_table;
3. SPOOL OFF;
```

### Depuración de archivos de seguimiento
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Purging"></a>

Los archivos de seguimiento pueden acumular y consumir espacio en el disco. De forma predeterminada, Amazon RDS limpia los archivos de seguimiento y registro que tienen más de siete días. Puede ver y establecer el periodo de retención de los archivos de seguimiento mediante el procedimiento `show_configuration`. Debe ejecutar el comando `SET SERVEROUTPUT ON` para ver los resultados de la configuración. 

En el siguiente ejemplo se muestra el período actual de retención de archivos de seguimiento y, a continuación, se establece un período nuevo de retención para dichos archivos. 

```
 1. # Show the current tracefile retention
 2. SQL> EXEC rdsadmin.rdsadmin_util.show_configuration;
 3. NAME:tracefile retention
 4. VALUE:10080
 5. DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.
 6. 		
 7. # Set the tracefile retention to 24 hours:
 8. SQL> EXEC rdsadmin.rdsadmin_util.set_configuration('tracefile retention',1440);
 9. SQL> commit;
10. 
11. #show the new tracefile retention
12. SQL> EXEC rdsadmin.rdsadmin_util.show_configuration;
13. NAME:tracefile retention
14. VALUE:1440
15. DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.
```

Además del proceso de purga periódica, puede eliminar manualmente los archivos de `background_dump_dest`. En el siguiente ejemplo se muestra cómo purgar todos los archivos que tienen más de cinco minutos. 

```
EXEC rdsadmin.manage_tracefiles.purge_tracefiles(5);
```

También puede purgar todos los archivos que coincidan con un patrón específico (si lo hace, no incluya la extensión de archivo, como .trc). En el siguiente ejemplo se muestra cómo purgar todos los archivos que comienzan por `SCHPOC1_ora_5935`. 

```
1. EXEC rdsadmin.manage_tracefiles.purge_tracefiles('SCHPOC1_ora_5935');
```

## Publicación de registros de Oracle en Amazon CloudWatch Logs
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs"></a>

Se puede configurar una instancia de base de datos de RDS para Oracle para publicar datos de registro en un grupo de registro en Registros de Amazon CloudWatch. Con CloudWatch Logs, puede analizar los datos de registro y utilizar CloudWatch para crear alarmas y ver métricas. Puede utilizar CloudWatch Logs para almacenar los registros de registros en almacenamiento de larga duración. 

Amazon RDS publica cada registro de base de datos de Oracle como un flujo de base de datos independiente en el grupo de registros. Por ejemplo, si configura la función de exportación para que incluya el registro de auditoría, los datos de auditoría se almacenan en un flujo de registros de auditorías en el grupo de registros `/aws/rds/instance/my_instance/audit`. En la tabla siguiente, se resumen los requisitos para que RDS para Oracle publique registros en Registros de Amazon CloudWatch.


| Nombre de registro | Requisito | Predeterminado | 
| --- | --- | --- | 
|  Registro de alerta  |  Ninguna. No puede deshabilitar este registro.  |  Habilitado  | 
|  Registro de seguimiento  |  Defina el parámetro `trace_enabled` en `TRUE` o déjelo establecido en el valor predeterminado.  |  `TRUE`  | 
|  Registro de auditoría  |  Establezca el parámetro `audit_trail` en uno de los siguientes valores permitidos: <pre>{ none | os | db [, extended] | xml [, extended] }</pre>  |  `none`  | 
|  Registro de escucha  |  Ninguna. No puede deshabilitar este registro.  |  Habilitado  | 
|  Registro de Oracle Management Agent  |  Ninguna. No puede deshabilitar este registro.  |  Habilitado  | 

Este registro de Oracle Management Agent consta de los grupos de registro que se muestran en la siguiente tabla.


****  

| Nombre de registro | Grupo de registro de CloudWatch | 
| --- | --- | 
| emctl.log | oemagent-emctl | 
| emdctlj.log | oemagent-emdctlj | 
| gcagent.log | oemagent-gcagent | 
| gcagent\$1errors.log | oemagent-gcagent-errors | 
| emagent.nohup | oemagent-emagent-nohup | 
| secure.log | oemagent-secure | 

Para obtener más información, consulte [Localización de archivos de seguimiento y registros de agentes de administración](https://docs.oracle.com/en/enterprise-manager/cloud-control/enterprise-manager-cloud-control/13.4/emadm/locating-management-agent-log-and-trace-files1.html#GUID-9C710D78-6AA4-42E4-83CD-47B5FF4892DF) en la documentación de Oracle.

### Consola
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs.console"></a>

**Para publicar registros de base de datos de Oracle en CloudWatch Logs desde Consola de administración de AWS**

1. Abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Databases (Bases de datos)** y, a continuación, seleccione la instancia de base de datos que desee modificar.

1. Elija **Modify**.

1. En la sección **Logs exports (Exportaciones de registros)**, elija los registros que desea comenzar a publicar en CloudWatch Logs.

1. Elija **Continue**, seguido de **Modify DB Instance** en la página de resumen.

### AWS CLI
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs.CLI"></a>

Para publicar registros de Oracle, puede utilizar el comando [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) con los siguientes parámetros: 
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**nota**  
Los cambios en la opción `--cloudwatch-logs-export-configuration` siempre se aplican a la instancia de base de datos inmediatamente. Por lo tanto, las opciones `--apply-immediately` y `--no-apply-immediately` no tienen ningún efecto.

También puede publicar registros de Oracle utilizando los siguientes comandos: 
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

**Example**  
En el siguiente ejemplo se crea una instancia de base de datos con la publicación de registros de CloudWatch Logs habilitada. El valor `--cloudwatch-logs-export-configuration` es una matriz de cadenas JSON. Las cadenas pueden ser cualquier combinación de `alert`, `audit`, `listener` y `trace`.  
Para Linux, macOS o Unix:  

```
aws rds create-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '["trace","audit","alert","listener","oemagent"]' \
    --db-instance-class db.m5.large \
    --allocated-storage 20 \
    --engine oracle-ee \
    --engine-version 19.0.0.0.ru-2024-04.rur-2024-04.r1 \
    --license-model bring-your-own-license \
    --master-username myadmin \
    --manage-master-user-password
```
Para Windows:  

```
aws rds create-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration trace alert audit listener oemagent ^
    --db-instance-class db.m5.large ^
    --allocated-storage 20 ^
    --engine oracle-ee ^
    --engine-version 19.0.0.0.ru-2024-04.rur-2024-04.r1 ^
    --license-model bring-your-own-license ^
    --master-username myadmin ^
    --manage-master-user-password
```

**Example**  
En el siguiente ejemplo se modifica una instancia de base de datos de Oracle existente para publicar archivos de registro en CloudWatch Logs. El valor `--cloudwatch-logs-export-configuration` es un objeto JSON. La clave de este objeto es `EnableLogTypes` y su valor es una matriz de cadenas con cualquier combinación de `alert`, `audit`, `listener` y `trace`.  
Para Linux, macOS o Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"EnableLogTypes":["trace","alert","audit","listener","oemagent"]}'
```
Para Windows:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration EnableLogTypes=\"trace\",\"alert\",\"audit\",\"listener\",\"oemagent\"
```

**Example**  
En el siguiente ejemplo se modifica una instancia de base de datos de Oracle existente para deshabilitar la publicación de archivos de registro en CloudWatch Logs. El valor `--cloudwatch-logs-export-configuration` es un objeto JSON. La clave de este objeto es `DisableLogTypes` y su valor es una matriz de cadenas con cualquier combinación de `alert`, `audit`, `listener` y `trace`.  
Para Linux, macOS o Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit","listener"]}'
```
Para Windows:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration DisableLogTypes=\"audit\",\"listener\"
```

### API de RDS
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs.API"></a>

Puede publicar registros de base de datos Oracle con la API de RDS. Puede llamar a la acción [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) con los parámetros siguientes: 
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**nota**  
Los cambios en el parámetro `CloudwatchLogsExportConfiguration` siempre se aplican a la instancia de base de datos inmediatamente. Por tanto, el parámetro `ApplyImmediately` no tiene efecto.

También puede publicar registros de Oracle llamando a las siguientes operaciones de la API de RDS: 
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

Ejecute una de estas operaciones de la API de RDS con los siguientes parámetros: 
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

Podrían ser necesarios otros parámetros en función de la operación de la RDS que ejecute.

## Acceso a los registros de alertas y de oyentes
<a name="USER_LogAccess.Concepts.Oracle.AlertLogAndListenerLog"></a>

Puede ver el archivo de alertas mediante la consola de Amazon RDS. También puede utilizar la siguiente instrucción SQL.

```
1. SELECT message_text FROM alertlog;
```

Acceda al registro de oyentes mediante Amazon CloudWatch Logs.

**nota**  
Oracle rota los registros de alertas y de escuchas cuando superan los 10 MB, momento en el que dejan de estar disponibles en las vistas de Amazon RDS.