

# Arquivos de log do banco de dados do Amazon RDS para Oracle
<a name="USER_LogAccess.Concepts.Oracle"></a>

Você pode acessar os logs de alerta, os arquivos de auditoria e os arquivos de rastreamento da Oracle usando o console ou a API do Amazon RDS. Para mais informações sobre a visualização, o download e os logs de bancos de dados baseados no monitoramento de arquivos, consulte [Monitorar arquivos de log do Amazon RDS](USER_LogAccess.md). 

Os arquivos de auditoria da Oracle fornecidos são os arquivos de auditoria padrão da Oracle. O Amazon RDS é compatível com o recurso de auditoria refinada (FGA) da Oracle. Contudo, o acesso ao log não fornece acesso a eventos do FGA que são armazenados na tabela `SYS.FGA_LOG$` e são acessados por meio da visualização `DBA_FGA_AUDIT_TRAIL`. 

A operação da API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html) que lista os arquivos de log da Oracle disponíveis para uma instância de banco de dados ignora o parâmetro `MaxRecords`e retorna até 1.000 registros. A chamada retorna `LastWritten` como uma data POSIX em milissegundos.

**Topics**
+ [Cronograma de retenção](#USER_LogAccess.Concepts.Oracle.Retention)
+ [Trabalhar com arquivos de rastreamento da Oracle](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles)
+ [Publicação de logs da Oracle no Amazon CloudWatch Logs](#USER_LogAccess.Oracle.PublishtoCloudWatchLogs)
+ [Acesso aos logs de alerta e logs de receptor](#USER_LogAccess.Concepts.Oracle.AlertLogAndListenerLog)

## Cronograma de retenção
<a name="USER_LogAccess.Concepts.Oracle.Retention"></a>

O mecanismo de banco de dados Oracle pode fazer a rotação dos arquivos de log se eles ficarem muito grandes. Baixe esses arquivos de auditoria ou de rastreamento para retê-los. Se você armazenar os arquivos localmente, reduzirá os custos de armazenamento do Amazon RDS e disponibilizará mais espaço para seus dados. 

A tabela a seguir mostra o cronograma de retenção para os logs de alerta, arquivos de auditoria e arquivos de rastreamento da Oracle no Amazon RDS. 


****  

| Tipo de log | Cronograma de retenção | 
| --- | --- | 
|  Logs de alerta  |   O log de alertas de texto é alternado diariamente com uma retenção de 30 dias gerenciada pelo Amazon RDS. O log de alerta de XML é retido por pelo menos sete dias. Você pode acessar esse log usando a visualização `ALERTLOG`.   | 
|  Arquivos de auditoria  |   O período de retenção padrão para arquivos de rastreamento é de sete dias. O Amazon RDS poderá excluir arquivos de auditoria com mais de sete dias.   | 
|  Arquivos de rastreamento  |  O período de retenção padrão para arquivos de rastreamento é de sete dias. O Amazon RDS poderá excluir arquivos de rastreamento com mais de sete dias.   | 
|  Logs de listener  |   O período de retenção padrão para os logs de listener é sete dias. O Amazon RDS poderá excluir logs de listener com mais de sete dias.   | 

**nota**  
Arquivos de auditoria e de rastreamento compartilham a mesma configuração de retenção.

## Trabalhar com arquivos de rastreamento da Oracle
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles"></a>

A seguir, você pode localizar descrições de procedimentos do Amazon RDS para criar, atualizar, acessar e excluir arquivos de rastreamento.

**Topics**
+ [Listar arquivos](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.ViewingBackgroundDumpDest)
+ [Gerar arquivos de rastreamento e rastrear uma sessão](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Generating)
+ [Recuperar arquivos de rastreamento](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Retrieving)
+ [Limpar arquivos de rastreamento](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Purging)

### Listar arquivos
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.ViewingBackgroundDumpDest"></a>

Você pode usar qualquer um dos dois procedimentos para permitir acesso a qualquer arquivo no caminho `background_dump_dest`. O primeiro procedimento atualiza uma visualização que contém uma lista de todos os arquivos que estão em no moment `background_dump_dest`. 

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

Depois que a visualização for atualizada, consulte a visualização a seguir para acessar os resultados.

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

Uma alternativa ao processo anterior é usar `FROM table` para transmitir dados não relacionais que não estejam em tabelas em um formato semelhante ao de uma tabela para listar o conteúdo do diretório de banco de dados.

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

A consulta a seguir mostra o texto de um arquivo de log.

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

Em uma réplica de leitura, obtenha o nome do diretório BDUMP consultando `V$DATABASE.DB_UNIQUE_NAME`. Se o nome exclusivo for `DATABASE_B`, o diretório BDUMP será `BDUMP_B`. O exemplo a seguir consulta o nome BDUMP em uma réplica e usa esse nome para consultar o conteúdo 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'));
```

### Gerar arquivos de rastreamento e rastrear uma sessão
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Generating"></a>

Como não há restrições em `ALTER SESSION`, muitos métodos padrão para gerar arquivos de rastreamento da Oracle permanecem disponíveis para uma instância de banco de dados do Amazon RDS. Os procedimentos a seguir são fornecidos para arquivos de rastreamento que exigem maior acesso. 


****  

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

Você pode usar muitos métodos padrão para rastrear sessões individuais conectadas a uma instância de banco de dados Oracle no Amazon RDS. Para habilitar o rastreamento de uma sessão, é possível executar subprogramas em pacotes PL/SQL fornecidos pela Oracle, como `DBMS_SESSION` e `DBMS_MONITOR`. Para obter mais informações, consulte [Habilitar o rastreamento de uma sessão](https://docs.oracle.com/database/121/TGSQL/tgsql_trace.htm#GUID-F872D6F9-E015-481F-80F6-8A7036A6AD29) na documentação da Oracle. 

### Recuperar arquivos de rastreamento
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Retrieving"></a>

Você pode recuperar qualquer arquivo de rastreamento em `background_dump_dest` usando uma consulta SQL padrão em uma tabela externa gerenciada pelo Amazon RDS. Para usar este método, execute o procedimento e defina o local desta tabela para o arquivo de rastreamento específico. 

Por exemplo, você pode usar a visualização `rdsadmin.tracefile_listing` mencionada anteriormente para listar todos os arquivos de rastreamento no sistema. Em seguida, você pode definir a visualização `tracefile_table` para apontar para o arquivo de rastreamento pretendido usando o seguinte procedimento. 

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

O exemplo a seguir criar uma tabela externa no esquema atual com o local definido para o arquivo fornecido. É possível recuperar o conteúdo em um arquivo local usando uma consulta SQL. 

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

### Limpar arquivos de rastreamento
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Purging"></a>

Os arquivos de rastreamento podem acumular e consumir espaço em disco. Por padrão, o Amazon RDS limpa os arquivos de rastreamento e os arquivos de log com mais de sete dias. Você pode visualizar e definir o período de retenção do arquivo de rastreamento usando o procedimento `show_configuration`. Você deve executar o comando `SET SERVEROUTPUT ON` para que possa visualizar os resultados da configuração. 

O exemplo a seguir mostra o período de retenção do arquivo de rastreamento atual e, em seguida, define um novo período de retenção para o arquivo de rastreamento. 

```
 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.
```

Além do processo periódico de limpeza, você pode remover arquivos de manualment `background_dump_dest`. O exemplo a seguir mostra como limpar todos os arquivos que tenham mais de cinco minutos. 

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

Também limpe todos os arquivos correspondentes a um padrão específico (do contrário, não inclua a extensão do arquivo, como .trc). O exemplo a seguir mostra como limpar todos os arquivos que começam com `SCHPOC1_ora_5935`. 

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

## Publicação de logs da Oracle no Amazon CloudWatch Logs
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs"></a>

É possível configurar a instância de banco de dados do RDS para Oracle para publicar dados de log em um grupo de logs no Amazon CloudWatch Logs. Com o CloudWatch Logs, você pode analisar os dados de log e usar o CloudWatch para criar alarmes e visualizar métricas. Você pode usar o CloudWatch Logs para armazenar seus registros de log em armazenamento resiliente. 

O Amazon RDS publica cada log de banco de dados Oracle como um fluxo separado de banco de dados no grupo de logs. Por exemplo, se você configurar a função de exportação para incluir o log de auditoria, os dados de auditoria serão armazenados em um fluxo de log de auditoria no grupo de logs `/aws/rds/instance/my_instance/audit`. A tabela a seguir resume os requisitos do RDS para Oracle para publicar logs no Amazon CloudWatch Logs.


| Nome do log | Requisito | Padrão | 
| --- | --- | --- | 
|  Log de alertas  |  Nenhum. Não é possível desabilitar esse log.  |  Habilitado  | 
|  Log de rastreamento  |  Defina o parâmetro `trace_enabled` como `TRUE` ou deixe-o definido como padrão.  |  `TRUE`  | 
|  Log de auditoria  |  Defina o parâmetro `audit_trail` como qualquer um dos seguintes valores permitidos: <pre>{ none | os | db [, extended] | xml [, extended] }</pre>  |  `none`  | 
|  Log de listener  |  Nenhum. Não é possível desabilitar esse log.  |  Habilitado  | 
|  Log do Oracle Management Agent  |  Nenhum. Não é possível desabilitar esse log.  |  Habilitado  | 

Esse log do Oracle Management Agent consiste nos grupos de logs mostrados na tabela a seguir.


****  

| Nome do log | Grupo de logs do 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 obter mais informações, consulte [Locating Management Agent Log and Trace Files](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) (Localizar arquivos de log e rastreamento do agente de gerenciamento) na documentação do Oracle.

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

**Para publicar logs de banco de dados Oracle no CloudWatch Logs pelo Console de gerenciamento da AWS**

1. Abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)** e a instância de banco de dados que você deseja modificar.

1. Selecione **Modify**.

1. Na seção **Log exports (Exportações de log)**, escolha os logs que deseja começar a publicar no CloudWatch Logs.

1. Escolha **Continue (Continuar)** e depois escolha **Modify DB Instance (Modificar instância de banco de dados)** na página de resumo.

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

Para publicar os logs da Oracle, você pode usar o 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) com os seguintes parâmetros: 
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**nota**  
Uma alteração feita na opção `--cloudwatch-logs-export-configuration` sempre é aplicada imediatamente na instância de banco de dados. Por isso, as opções `--apply-immediately` e `--no-apply-immediately` não entram em vigor.

Você também pode publicar os logs da Oracle usando os seguintes 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**  
O exemplo a seguir cria uma instância de Banco de Dados Oracle com a publicação no CloudWatch Logs habilitada. O valor `--cloudwatch-logs-export-configuration` é uma matriz de strings JSON. As strings podem ser qualquer combinação de `alert`, `audit`, `listener` e `trace`.  
Para Linux, macOS ou 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**  
O exemplo a seguir altera uma instância de Banco de Dados Oracle existente para publicar os arquivos de log no CloudWatch Logs. O valor `--cloudwatch-logs-export-configuration` é um objeto JSON. A chave para esse objeto é `EnableLogTypes`, e seu valor é uma matriz de strings com qualquer combinação de `alert`, `audit`, `listener` e `trace`.  
Para Linux, macOS ou 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**  
O exemplo a seguir modifica uma instância de Banco de Dados Oracle existente para desabilitar a publicação de arquivos de log de auditoria e de listener no CloudWatch Logs. O valor `--cloudwatch-logs-export-configuration` é um objeto JSON. A chave para esse objeto é `DisableLogTypes`, e seu valor é uma matriz de strings com qualquer combinação de `alert`, `audit`, `listener` e `trace`.  
Para Linux, macOS ou 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 do RDS
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs.API"></a>

Você pode publicar logs de banco de dados Oracle com a API do RDS. Você pode chamar a ação [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) com os seguintes parâmetros: 
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**nota**  
Uma alteração feita no parâmetro `CloudwatchLogsExportConfiguration` sempre é aplicada imediatamente na instância de banco de dados. Por isso, o parâmetro `ApplyImmediately` não entra em vigor.

Também publique logs Oracle chamando as seguintes operações da API do 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)

Execute uma destas operações da API do RDS com os seguintes parâmetros: 
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

Outros parâmetros podem ser obrigatórios, dependendo da operação do RDS executada.

## Acesso aos logs de alerta e logs de receptor
<a name="USER_LogAccess.Concepts.Oracle.AlertLogAndListenerLog"></a>

Você pode visualizar o log de alertas usando o console do Amazon RDS. Também é possível usar a instrução SQL a seguir.

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

Acesse o log do receptor usando o Amazon CloudWatch Logs.

**nota**  
A Oracle faz a rotação dos logs de alerta e de ouvinte quando ultrapassam 10 MB e, a partir deste ponto, eles ficam indisponíveis nas visualizações do Amazon RDS.