Arquivos de log do banco de dados Oracle
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.
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 DescribeDBLogFiles
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.
Tópicos
Cronograma de retenção
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 |
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 seguir, você pode localizar descrições de procedimentos do Amazon RDS para criar, atualizar, acessar e excluir arquivos de rastreamento.
Tópicos
Listar arquivos
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
.
EXEC rdsadmin.manage_tracefiles.refresh_tracefile_listing;
Depois que a visualização for atualizada, consulte a visualização a seguir para acessar os resultados.
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.
SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('BDUMP'));
A consulta a seguir mostra o texto de um arquivo de log.
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
.
SELECT 'BDUMP' || (SELECT regexp_replace(DB_UNIQUE_NAME,'.*(_[A-Z])', '\1') FROM V$DATABASE) AS BDUMP_VARIABLE FROM DUAL; BDUMP_VARIABLE -------------- BDUMP_B 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
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 |
---|---|
|
|
|
|
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
Recuperar arquivos de rastreamento
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.
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.
SPOOL /tmp/tracefile.txt SELECT * FROM tracefile_table; SPOOL OFF;
Limpar arquivos de rastreamento
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.
# Show the current tracefile retention SQL> EXEC rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:10080 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted. # Set the tracefile retention to 24 hours: SQL> EXEC rdsadmin.rdsadmin_util.set_configuration('tracefile retention',1440); SQL> commit; #show the new tracefile retention SQL> EXEC rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:1440 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
.
EXEC rdsadmin.manage_tracefiles.purge_tracefiles('SCHPOC1_ora_5935');
Publicação de logs da Oracle no Amazon CloudWatch Logs
É 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 |
|
Log de auditoria |
Defina o parâmetro
|
|
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_errors.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
Para publicar logs de banco de dados Oracle no CloudWatch Logs pelo AWS Management Console
Abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, escolha Databases (Bancos de dados) e a instância de banco de dados que você deseja modificar.
-
Selecione Modify.
-
Na seção Log exports (Exportações de log), escolha os logs que deseja começar a publicar no CloudWatch Logs.
-
Escolha Continue (Continuar) e depois escolha Modify DB Instance (Modificar instância de banco de dados) na página de resumo.
Para publicar os logs da Oracle, você pode usar o comando modify-db-instance
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:
exemplo
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-classdb.m5.large
\ --allocated-storage20
\ --engineoracle-ee
\ --engine-version19.0.0.0.ru-2024-04.rur-2024-04.r1
\ --license-modelbring-your-own-license
\ --master-usernamemyadmin
\ --manage-master-user-password
Para Windows:
aws rds create-db-instance ^ --db-instance-identifier
mydbinstance
^ --cloudwatch-logs-export-configurationtrace alert audit listener oemagent
^ --db-instance-classdb.m5.large
^ --allocated-storage20
^ --engineoracle-ee
^ --engine-version19.0.0.0.ru-2024-04.rur-2024-04.r1
^ --license-modelbring-your-own-license
^ --master-usernamemyadmin
^ --manage-master-user-password
exemplo
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\"
exemplo
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\"
Você pode publicar logs de banco de dados Oracle com a API do RDS. Você pode chamar a ação ModifyDBInstance
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:
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
Você pode visualizar o log de alertas usando o console do Amazon RDS. Também é possível usar a instrução SQL a seguir.
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.