

# Monitorar eventos, logs e fluxos em uma instância de banco de dados do Amazon RDS
<a name="CHAP_Monitor_Logs_Events"></a>

Quando você monitora seus bancos de dados do Amazon RDSe outras soluções da AWS, seu objetivo é manter o seguinte:
+ Confiabilidade
+ Disponibilidade
+ desempenho
+ Segurança

[Métricas de monitoramento em uma instância do Amazon RDS](CHAP_Monitoring.md) explica como monitorar sua instância usando métricas. Uma solução completa também deve monitorar eventos de banco de dados, arquivos de log e transmissões de atividades. A AWS fornece as seguintes ferramentas de monitoramento:
+ O *Amazon EventBridge* é um serviço de barramento de eventos sem servidor que facilita a conexão de aplicações a dados de diversas origens. O EventBridge fornece uma fluxo de dados em tempo real de suas próprias aplicações, de aplicações de software como serviço (SaaS) e de serviços da AWS. O EventBridge encaminha esses dados para destinos como AWS Lambda. Dessa forma, você pode monitorar eventos que ocorrem em serviços e criar arquiteturas orientadas a eventos. Para saber mais, consulte o [Guia do Usuário do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/).
+ O *Amazon CloudWatch Logs* oferece uma forma de monitorar, armazenar e acessar os arquivos de log de instâncias do Amazon RDS, do AWS CloudTrail e de outras fontes. O Amazon CloudWatch Logs pode monitorar informações nos arquivos de log e notificar você quando determinados limites forem atingidos. É possível também arquivar seus dados de log em armazenamento resiliente. Para saber mais, consulte o [Guia do usuário do Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/).
+ *AWS CloudTrail* O captura chamadas de API e eventos relacionados feitos por sua conta da ou em nome dela Conta da AWS. O CloudTrail fornece os arquivos de log para um bucket do Amazon S3 especificado por você. Você pode identificar quais usuários e contas chamaram a AWS, o endereço IP de origem no qual as chamadas foram feitas e quando elas ocorreram. Para saber mais, consulte o [Guia do usuário do AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/).
+ O *Database Activity Streams* é um recurso do Amazon RDS que fornece um fluxo quase em tempo real da atividade em sua instância de banco de dados do Oracle. O Amazon RDS envia atividades para um fluxo de dados do Amazon Kinesis. O fluxo do Kinesis é criado automaticamente. No Kinesis, é possível configurar serviços da AWS, como o Amazon Data Firehose e o AWS Lambda, para consumir o fluxo e armazenar os dados.

**Topics**
+ [Visualizar logs, eventos e transmissões no console do Amazon RDS](logs-events-streams-console.md)
+ [Monitorar eventos do Amazon RDS](working-with-events.md)
+ [Monitorar arquivos de log do Amazon RDS](USER_LogAccess.md)
+ [Monitorar chamadas de API do Amazon RDSno AWS CloudTrail](logging-using-cloudtrail.md)
+ [Monitorar o Amazon RDS com o recurso Database Activity Streams](DBActivityStreams.md)
+ [Monitorar ameaças com o Amazon GuardDuty RDS Protection](guard-duty-rds-protection.md)

# Visualizar logs, eventos e transmissões no console do Amazon RDS
<a name="logs-events-streams-console"></a>

O Amazon RDS se integra aos Serviços da AWS para mostrar informações sobre logs, eventos e transmissões de atividades de banco de dados no console do RDS.

A guia **Logs e eventos** da instância de banco de dados do RDS mostra as seguintes informações:
+ **Alertas do Amazon CloudWatch**: mostra todos os alarmes de métricas configurados para a instância de banco de dados. Se você ainda não configurou alarmes, poderá criá-los no console do RDS. Para obter mais informações, consulte [Monitorar métricas do Amazon RDS com o Amazon CloudWatch](monitoring-cloudwatch.md).
+ **Eventos recentes**: mostra um resumo dos eventos (alterações no ambiente) relacionados à sua instância de banco de dados do RDS. Para obter mais informações, consulte [Visualizar eventos do Amazon RDS](USER_ListEvents.md).
+ **Logs**: mostra os arquivos de log do banco de dados gerados por uma instância de banco de dados. Para obter mais informações, consulte [Monitorar arquivos de log do Amazon RDS](USER_LogAccess.md).

A guia **Configuration** (Configuração) exibe informações sobre transmissões de atividades de banco de dados.

**Como visualizar logs, eventos e fluxos da instância de banco de dados do no console do RDS**

1. Faça login no Console de gerenciamento da AWS e 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 **Bancos de dados**.

1. Escolha o nome da instância de banco de dados que deseja monitorar.

   A página “Databases” (Bancos de dados) é exibida. O exemplo a seguir mostra um banco de dados Oracle chamado `orclb`.  
![\[Página “Database” (Banco de dados) com guia “Monitoring” (Monitoramento) exibida\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-with-monitoring-tab.png)

1. Escolha **Logs & events (Logs e eventos)**.

   A seção “Logs & events” (Logs e eventos) é exibida.  
![\[Página de banco de dados com guia “Logs & events” (Logs e eventos) mostrada\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-logs-and-events-subpage.png)

1. Escolher **configuração**.

   O exemplo a seguir mostra o status dos fluxos de atividades de bancos de dados para sua instância de banco de dados.  
![\[Monitoramento avançado\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-das.png)

# Monitorar eventos do Amazon RDS
<a name="working-with-events"></a>

Um *evento* indica uma alteração em um ambiente. Isso pode ser um ambiente da AWS, um serviço ou uma aplicação de parceiro de SaaS ou uma das suas próprios aplicações ou serviços personalizados. Para obter descrições de eventos do RDS, consulte [Categorias de eventos e mensagens de eventos ](USER_Events.Messages.md).

**Topics**
+ [Visão geral dos eventos para Amazon RDS](#rds-cloudwatch-events.sample)
+ [Visualizar eventos do Amazon RDS](USER_ListEvents.md)
+ [Trabalhar com a notificação de eventos do Amazon RDS](USER_Events.md)
+ [Criar uma regra que é acionada em um evento do Amazon RDS](rds-cloud-watch-events.md)
+ [Categorias de eventos e mensagens de eventos](USER_Events.Messages.md)

## Visão geral dos eventos para Amazon RDS
<a name="rds-cloudwatch-events.sample"></a>

Um *evento do RDS* indica uma alteração no ambiente do Amazon RDS. Por exemplo, o Amazon RDS gera um evento quando o estado de uma instância de banco de dados muda de pendente para em execução. O Amazon RDS entrega eventos ao EventBridge quase em tempo real.

**nota**  
O Amazon RDS emite eventos em uma base de melhor esforço. Recomendamos que você evite gravar programas que dependam da ordem ou da existência de eventos de notificação, pois eles podem estar fora de sequência ou ausentes.

O Amazon RDS registra eventos relacionados aos seguintes recursos:
+ Instâncias de banco de dados

  Para obter uma lista de eventos de instância de banco de dados, consulte [Eventos de instância de banco de dados](USER_Events.Messages.md#USER_Events.Messages.instance).
+ Grupos de parâmetros do banco de dados

  Para obter uma lista de eventos de grupo de parâmetros de banco de dados, consulte [Eventos de grupo de parâmetros de banco de dados](USER_Events.Messages.md#USER_Events.Messages.parameter-group).
+ Grupos de segurança de banco de dados

  Para obter uma lista de eventos de grupo de segurança do banco de dados, consulte [Eventos de grupos de segurança de banco de dados](USER_Events.Messages.md#USER_Events.Messages.security-group).
+ Snapshots de banco de dados

  Para obter uma lista de eventos de snapshot do banco de dados, consulte [Eventos de snapshot de banco de dados](USER_Events.Messages.md#USER_Events.Messages.snapshot).
+ Eventos do RDS Proxy

  Para obter uma lista de eventos do proxy do RDS, consulte [Eventos do RDS Proxy](USER_Events.Messages.md#USER_Events.Messages.rds-proxy).
+ Eventos de implantação azul/verde

  Para obter uma lista de eventos de implantação azul/verde, consulte [Eventos de implantação azul/verde](USER_Events.Messages.md#USER_Events.Messages.BlueGreenDeployments).

Essas informações incluem: 
+ A data e a hora do evento.
+ O nome da origem e o tipo de origem do evento
+ A mensagem associada ao evento
+ As notificações de eventos incluem tags de quando a mensagem foi enviada e podem não refletir as tags no momento em que o evento ocorreu

# Visualizar eventos do Amazon RDS
<a name="USER_ListEvents"></a>

É possível recuperar as seguintes informações do evento para seus recursos do Amazon RDS:
+ Nome do recurso
+ Tipo de recurso
+ Horário do evento
+ Resumo de mensagens do evento

É possível acessar eventos nas seguintes partes do Console de gerenciamento da AWS:
+ A guia **Eventos**, que mostra eventos das últimas 24 horas.
+ A tabela **Eventos recentes** na seção **Logs e eventos** na guia **Bancos de dados**, que pode mostrar eventos das últimas duas semanas.

Também é possível recuperar eventos usando o comando [describe-events](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-events.html) da AWS CLI ou a operação [DescribeEvents](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEvents.html) da API do RDS. Se você usar a AWS CLI ou a API do RDS para visualizar eventos, poderá recuperar eventos até os últimos 14 dias. 

**nota**  
Se precisar armazenar eventos por períodos mais longos, você poderá enviar eventos do Amazon RDS ao EventBridge. Para ter mais informações, consulte [Criar uma regra que é acionada em um evento do Amazon RDS](rds-cloud-watch-events.md).

Para obter descrições de eventos do Amazon RDS, consulte [Categorias de eventos e mensagens de eventos ](USER_Events.Messages.md).

Para acessar informações detalhadas sobre eventos usando o AWS CloudTrail, incluindo parâmetros de solicitação, consulte [Eventos do CloudTrail](logging-using-cloudtrail.md#service-name-info-in-cloudtrail.events).

## Console
<a name="USER_ListEvents.CON"></a>

**Como visualizar todos os eventos do Amazon RDS nas últimas 24 horas**

1. Faça login no Console de gerenciamento da AWS e 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 **Events**. 

   Os eventos disponíveis aparecem em uma lista.

1. (Opcional) Insira um termo de pesquisa para filtrar seus resultados. 

   O exemplo a seguir mostra uma lista de eventos filtrados pelos caracteres **stopped**.  
![\[Listar eventos do banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/ListEvents.png)

## AWS CLI
<a name="USER_ListEvents.CLI"></a>

Para visualizar todos os eventos gerados na última hora, chame [describe-events](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-events.html) sem parâmetros.

```
aws rds describe-events
```

O exemplo de saída a seguir mostra que uma instância de banco de dados foi interrompida.

```
{
    "Events": [
        {
            "EventCategories": [
                "notification"
            ], 
            "SourceType": "db-instance", 
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:testinst", 
            "Date": "2022-04-22T21:31:00.681Z", 
            "Message": "DB instance stopped", 
            "SourceIdentifier": "testinst"
        }
    ]
}
```

Para visualizar todos os eventos do Amazon RDS dos últimos 10.080 minutos (sete dias), chame o comando [describe-events](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-events.html) AWS CLI e defina o parâmetro `--duration` como `10080`.

```
1. aws rds describe-events --duration 10080
```

O exemplo a seguir mostra os eventos no intervalo de tempo especificado para a instância de banco de dados *test-instance*.

```
aws rds describe-events \
    --source-identifier test-instance \
    --source-type db-instance \
    --start-time 2022-03-13T22:00Z \
    --end-time 2022-03-13T23:59Z
```

O exemplo de saída a seguir mostra o status de um backup.

```
{
    "Events": [
        {
            "SourceType": "db-instance",
            "SourceIdentifier": "test-instance",
            "EventCategories": [
                "backup"
            ],
            "Message": "Backing up DB instance",
            "Date": "2022-03-13T23:09:23.983Z",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance"
        },
        {
            "SourceType": "db-instance",
            "SourceIdentifier": "test-instance",
            "EventCategories": [
                "backup"
            ],
            "Message": "Finished DB Instance backup",
            "Date": "2022-03-13T23:15:13.049Z",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance"
        }
    ]
}
```

## API
<a name="USER_ListEvents.API"></a>

É possível visualizar todos os eventos de instâncias do Amazon RDS dos últimos 14 dias, chamando a operação da API do RDS [DescribeEvents](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEvents.html) e definindo o parâmetro `Duration` como `20160`​.

# Trabalhar com a notificação de eventos do Amazon RDS
<a name="USER_Events"></a>

O Amazon RDS usa o Amazon Simple Notification Service (Amazon SNS) para fornecer uma notificação quando um evento do Amazon RDS ocorre. Essas notificações podem estar em qualquer formato de notificação compatível com o Amazon SNS para uma região da AWS, como um e-mail, uma mensagem de texto ou uma chamada para um endpoint HTTP. 

**Topics**
+ [Visão geral das notificações de eventos do Amazon RDS](USER_Events.overview.md)
+ [Conceder permissões para publicar notificações em um tópico do Amazon SNS](USER_Events.GrantingPermissions.md)
+ [Inscrever-se em notificações de eventos do Amazon RDS](USER_Events.Subscribing.md)
+ [Tags e atributos de notificação de eventos do Amazon RDS](USER_Events.TagsAttributesForFiltering.md)
+ [Listar assinaturas de notificação de evento do Amazon RDS](USER_Events.ListSubscription.md)
+ [Modificar uma assinatura de notificação de evento do Amazon RDS](USER_Events.Modifying.md)
+ [Adicionar um identificador de origem a uma assinatura de notificação de evento do Amazon RDS](USER_Events.AddingSource.md)
+ [Remover um identificador de origem de uma assinatura de notificação de eventos do Amazon RDS](USER_Events.RemovingSource.md)
+ [Listar as categorias de notificação de evento do Amazon RDS](USER_Events.ListingCategories.md)
+ [Excluir uma assinatura de notificação de evento do Amazon RDS](USER_Events.Deleting.md)

# Visão geral das notificações de eventos do Amazon RDS
<a name="USER_Events.overview"></a>

O Amazon RDS agrupa eventos em categorias em que você pode se inscrever para receber notificações quando um evento ocorrer na categoria.

**Topics**
+ [Recursos do RDS elegíveis para assinatura de eventos](#USER_Events.overview.resources)
+ [Processo básico de assinatura de notificações de eventos do Amazon RDS](#USER_Events.overview.process)
+ [Entrega de notificações de evento do RDS](#USER_Events.overview.subscriptions)
+ [Faturamento de notificações de eventos do Amazon RDS](#USER_Events.overview.billing)
+ [Exemplos de eventos do Amazon RDS usando o Amazon EventBridge](#events-examples)

## Recursos do RDS elegíveis para assinatura de eventos
<a name="USER_Events.overview.resources"></a>

Você pode se inscrever em uma categoria de evento para os seguintes recursos:
+ DB instance (Instância de banco de dados)
+ DB snapshot
+ Grupo de parâmetros de banco de dados
+ DB security group (grupo de segurança de banco de dados)
+ RDS Proxy
+ Versões de mecanismo personalizadas

Por exemplo, se você se inscrever na categoria de backup para uma determinada instância de banco de dados, receberá notificações sempre que houver um evento relacionado ao backup que afete a instância de banco de dados. Se você se inscrever em uma categoria de alteração de configuração para uma instância de banco de dados, será notificado quando a instância de banco de dados for alterada. Você também recebe uma notificação quando uma assinatura de notificação de evento é alterada.

Você pode querer criar várias assinaturas diferentes. Por exemplo, você pode criar uma assinatura que receba todas as notificações de eventos de todas as instâncias de banco de dados e outra que inclua somente eventos críticos de um subconjunto das instâncias de bancos de dados. Para a segunda assinatura, especifique uma ou mais instâncias de banco de dados no filtro.

## Processo básico de assinatura de notificações de eventos do Amazon RDS
<a name="USER_Events.overview.process"></a>

O processo de inscrição na notificação de evento do Amazon RDS é o seguinte:

1. Você cria uma assinatura de notificação de eventos do Amazon RDS usando o console do Amazon RDS, a AWS CLI ou a API.

   O Amazon RDS usa o ARN de um tópico do Amazon SNS para identificar cada assinatura. O console do Amazon RDS cria o ARN para você quando cria a assinatura. Crie o ARN usando o console do Amazon SNS, a AWS CLI ou a API do Amazon SNS.

1. O Amazon RDS envia um e-mail ou mensagem SMS de aprovação para os endereços que você submeteu com a assinatura.

1. Você confirma a assinatura escolhendo o link na notificação que recebeu.

1. O console do Amazon RDS atualiza a seção **My Event Subscriptions** (Minhas assinaturas de eventos) com o status de sua assinatura.

1. O Amazon RDS começa a enviar notificações aos endereços que você forneceu ao criar a assinatura.

Para saber mais sobre o Gerenciamento de Identidade e Acesso ao usar o Amazon SNS, consulte [Gerenciamento de Identidade e Acesso no Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-authentication-and-access-control.html) no *Guia do desenvolvedor do Amazon Simple Notification Service*.

É possível usar o AWS Lambda para processar notificações de eventos de uma instância de banco de dados. Para obter mais informações, consulte [Uso do AWS Lambda com o Amazon RDS](https://docs.aws.amazon.com/lambda/latest/dg/services-rds.html) no *Guia do desenvolvedor do AWS Lambda*.

## Entrega de notificações de evento do RDS
<a name="USER_Events.overview.subscriptions"></a>

O Amazon RDS envia notificações aos endereços que você fornece ao criar a assinatura. A notificação pode incluir atributos de mensagem que fornecem metadados estruturados sobre a mensagem. Para obter mais informações sobre os atributos de mensagem, consulte [Categorias de eventos e mensagens de eventos ](USER_Events.Messages.md).

As notificações de eventos podem levar até cinco minutos para serem entregues.

**Importante**  
O Amazon RDS não garante a ordem dos eventos enviados em um fluxo de eventos. A ordem do evento está sujeita a alterações.

Quando o Amazon SNS envia uma notificação para um endpoint HTTP ou HTTPS inscrito, a mensagem POST enviada ao endpoint tem um corpo de mensagem que contém um documento JSON. Para obter mais informações, consulte [Mensagens do Amazon SNS e formatos JSON](https://docs.aws.amazon.com/sns/latest/dg/sns-message-and-json-formats.html) no *Guia do desenvolvedor do Amazon Simple Notification Service*.

É possível configurar o SNS para notificar você com mensagens de texto. Para obter mais informações, consulte [Mensagens de texto móveis (SMS)](https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-phone-number-as-subscriber.html) no *Guia do desenvolvedor do Amazon Simple Notification Service*.

Para desativar as notificações sem excluir uma assinatura, escolha **No** (Não) para **Enabled** (Habilitado) no console do Amazon RDS. Ou você pode definir o parâmetro `Enabled` para `false` usando a AWS CLI ou a API do Amazon RDS.

## Faturamento de notificações de eventos do Amazon RDS
<a name="USER_Events.overview.billing"></a>

O faturamento da notificação de eventos do Amazon RDS é feito por meio do Amazon SNS. As taxas do Amazon SNS se aplicam durante o uso da notificação de eventos. Para obter mais informações sobre o faturamento do Amazon SNS, consulte [Preço do Amazon Simple Notification Service](https://aws.amazon.com/sns/#pricing).

## Exemplos de eventos do Amazon RDS usando o Amazon EventBridge
<a name="events-examples"></a>

Os exemplos a seguir mostram diferentes tipos de eventos do Amazon RDS no formato JSON. Para acessar um tutorial que mostre como capturar e visualizar eventos no formato JSON, consulte [Tutorial: Registro de alterações de estado de uma instância de banco de dados usando o Amazon EventBridge](rds-cloud-watch-events.md#log-rds-instance-state).

**Topics**
+ [Exemplo de um evento de instância de banco de dados](#rds-cloudwatch-events.db-instances)
+ [Exemplo de um evento de grupo de parâmetros de banco de dados](#rds-cloudwatch-events.db-parameter-groups)
+ [Exemplo de um evento de snapshot do banco de dados](#rds-cloudwatch-events.db-snapshots)

### Exemplo de um evento de instância de banco de dados
<a name="rds-cloudwatch-events.db-instances"></a>

Veja a seguir um exemplo de um evento de instância de banco de dados no formato JSON. O evento mostra que o RDS executou um failover multi-AZ para a instância chamada `my-db-instance`. O ID do evento é RDS-EVENT-0049.

```
{
  "version": "0",
  "id": "68f6e973-1a0c-d37b-f2f2-94a7f62ffd4e",
  "detail-type": "RDS DB Instance Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-09-27T22:36:43Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:rds:us-east-1:123456789012:db:my-db-instance"
  ],
  "detail": {
    "EventCategories": [
      "failover"
    ],
    "SourceType": "DB_INSTANCE",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance",
    "Date": "2018-09-27T22:36:43.292Z",
    "Message": "A Multi-AZ failover has completed.",
    "SourceIdentifier": "my-db-instance",
    "EventID": "RDS-EVENT-0049"
  }
}
```

### Exemplo de um evento de grupo de parâmetros de banco de dados
<a name="rds-cloudwatch-events.db-parameter-groups"></a>

Veja a seguir um exemplo de um evento de grupo de parâmetros de banco de dados no formato JSON. O evento mostra que o parâmetro `time_zone` foi atualizado no grupo de parâmetros `my-db-param-group`. O ID do evento é RDS-EVENT-0037.

```
{
  "version": "0",
  "id": "844e2571-85d4-695f-b930-0153b71dcb42",
  "detail-type": "RDS DB Parameter Group Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-10-06T12:26:13Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:rds:us-east-1:123456789012:pg:my-db-param-group"
  ],
  "detail": {
    "EventCategories": [
      "configuration change"
    ],
    "SourceType": "DB_PARAM",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:pg:my-db-param-group",
    "Date": "2018-10-06T12:26:13.882Z",
    "Message": "Updated parameter time_zone to UTC with apply method immediate",
    "SourceIdentifier": "my-db-param-group",
    "EventID": "RDS-EVENT-0037"
  }
}
```

### Exemplo de um evento de snapshot do banco de dados
<a name="rds-cloudwatch-events.db-snapshots"></a>

Veja a seguir um exemplo de um evento de snapshot de banco de dados no formato JSON. O evento mostra a exclusão do snapshot chamado `my-db-snapshot`. O ID do evento é RDS-EVENT-0041.

```
{
  "version": "0",
  "id": "844e2571-85d4-695f-b930-0153b71dcb42",
  "detail-type": "RDS DB Snapshot Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-10-06T12:26:13Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:rds:us-east-1:123456789012:snapshot:rds:my-db-snapshot"
  ],
  "detail": {
    "EventCategories": [
      "deletion"
    ],
    "SourceType": "SNAPSHOT",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:snapshot:rds:my-db-snapshot",
    "Date": "2018-10-06T12:26:13.882Z",
    "Message": "Deleted manual snapshot",
    "SourceIdentifier": "my-db-snapshot",
    "EventID": "RDS-EVENT-0041"
  }
}
```

# Conceder permissões para publicar notificações em um tópico do Amazon SNS
<a name="USER_Events.GrantingPermissions"></a>

Para conceder permissões do Amazon RDS a fim de publicar notificações em um tópico do Amazon Simple Notification Service (Amazon SNS), anexe uma política do AWS Identity and Access Management (IAM) ao tópico de destino. Para obter mais informações sobre permissões, consulte [ Exemplos de casos de controle de acesso do Amazon Simple Notification Service](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html) no *Guia do desenvolvedor do Amazon Simple Notification Service*.

Por padrão, um tópico do Amazon SNS tem uma política que permite que todos os recursos do Amazon RDS na mesma conta publiquem notificações nele. Você pode anexar uma política personalizada para possibilitar notificações entre contas ou restringir o acesso a determinados recursos.

Veja a seguir um exemplo de uma política do IAM anexada ao tópico de destino do Amazon SNS. Ela restringe o tópico a instâncias de banco de dados com nomes correspondentes ao prefixo especificado. Para usar essa política, especifique os seguintes valores:
+ `Resource`: o nome do recurso da Amazon (ARN) do tópico do Amazon SNS
+ `SourceARN`: o ARN de recursos do RDS
+ `SourceAccount`: o ID de sua Conta da AWS

Para ver uma lista dos tipos de recursos e seus ARNs, consulte [Recursos definidos pelo Amazon RDS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-resources-for-iam-policies) na *Referência de autorização do serviço*.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "events.rds.amazonaws.com"
      },
      "Action": [
        "sns:Publish"
      ],
      "Resource": "arn:aws:sns:us-east-1:123456789012:topic_name",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:rds:us-east-1:123456789012:db:prefix-*"
        },
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        }
      }
    }
  ]
}
```

------

# Inscrever-se em notificações de eventos do Amazon RDS
<a name="USER_Events.Subscribing"></a>

A forma mais fácil de criar uma assinatura é com o console do RDS. Se você preferir criar assinaturas de notificações de eventos usando a CLI ou API, é necessário criar um tópico do Amazon Simple Notification Service e fazer a assinatura desse tópico com o console do Amazon SNS ou a API do Amazon SNS. Também será necessário reter o nome de recurso da Amazon (ARN) do tópico, pois ele é usado ao enviar comandos da CLI ou operações da API. Para obter informações sobre como criar um tópico do SNS e assiná-lo, consulte [Conceitos básicos do Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/GettingStarted.html) no *Guia do desenvolvedor do Amazon Simple Notification Service*.

Você pode especificar o tipo de origem sobre o qual deseja ser notificado e a origem do Amazon RDS que aciona o evento:

**Source type** (Tipo de origem)  
O tipo de fonte. Por exemplo, **Source type** (Tipo de origem) pode ser **Instances** (Instâncias). Você deve escolher um tipo de origem.

***Resources* to include** (Recursos para incluir)  
Os recursos do Amazon RDS que estão gerando os eventos. Por exemplo, você pode escolher **Select specific instances** (Selecionar instâncias específicas), depois **myDBInstance1**. 

A tabela a seguir explica o resultado quando você especifica ou não ***Resources* to include** (Recursos para incluir).


|  Recursos para incluir  |  Descrição  |  Exemplo  | 
| --- | --- | --- | 
|  Especificado  |  O RDS notifica você sobre todos os eventos somente do recurso especificado.  | Se o seu Source type (Tipo de origem) for Instances (Instâncias) e seu recurso for myDBInstance1, o RDS notificará você sobre todos os eventos somente para myDBInstance1. | 
|  Não especificado  |  O RDS notifica você sobre os eventos do tipo de fonte especificado para todos os recursos do Amazon RDS.   |  Se o **Source type** (Tipo de origem) for **Instances** (Instâncias), o RDS notificará você sobre todos os eventos relacionados à instância em sua conta.  | 

Por padrão, um assinante de tópico do Amazon SNS recebe todas as mensagens publicadas no tópico. Para receber apenas um subconjunto das mensagens, o assinante deve atribuir uma política de filtro à assinatura do tópico. Para obter mais informações sobre filtragem de mensagens do SNS, consulte [Filtragem de mensagens do Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-message-filtering.html) no *Guia do desenvolvedor do Amazon Simple Notification Service*.

## Console
<a name="USER_Events.Subscribing.Console"></a>

**Para assinar a notificação de eventos do RDS**

1. Faça login no Console de gerenciamento da AWS e 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 **Event subscriptions (Assinaturas de eventos)**. 

1. No painel **Event subscriptions (Assinaturas de eventos)**, escolha **Create event subscription (Criar assinatura de evento)**. 

1. Insira os detalhes da sua assinatura da seguinte forma:

   1. Em **Name** (Nome), insira um nome para a assinatura de notificação de eventos.

   1. Para **Send notifications to** (Enviar notificação para), utilize um dos seguintes procedimentos:
      + Escolha **New email topic** (Novo tópico de e-mail). Insira um nome para o tópico do seu e-mail e uma lista de destinatários. Recomendamos que você configure as assinaturas de eventos com o mesmo endereço de e-mail do contato primário da sua conta. As mensagens de recomendações, eventos de serviço e integridade pessoal são enviadas por meio de canais diferentes. As assinaturas com o mesmo endereço de e-mail garantem que todas as mensagens sejam consolidadas em um único local.
      + Escolha **Amazon Resource Name (ARN)** [Nome do recurso da Amazon (ARN)]. Depois, escolha o ARN do Amazon SNS existente para um tópico do Amazon SNS.

        Se você quiser usar um tópico que tenha sido ativado para criptografia do lado do servidor (SSE), conceda ao Amazon RDS as permissões necessárias para acessar a AWS KMS key. Para obter mais informações, consulte [ Ativar a compatibilidade entre as fontes de eventos de tópicos criptografados e serviços da AWS](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#compatibility-with-aws-services) no *Guia do desenvolvedor do Amazon Simple Notification Service*.

   1. Em **Source type (Tipo de origem)**, escolha um tipo de origem. Por exemplo, escolha **Instances** (Instâncias) ou **Parameter groups** (Grupos de parâmetros).

   1. Escolha as categorias e recursos de eventos para os quais quer receber notificações de eventos.

      O exemplo a seguir configura notificações de eventos para a instância de banco de dados denominada `testinst`.  
![\[Insira o tipo de fonte\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/event-source.png)

   1. Escolha **Criar**.

O console do Amazon RDS indica que a assinatura está sendo criada.

![\[Listar assinaturas de notificação de evento de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EventNotification-Create2.png)


## AWS CLI
<a name="USER_Events.Subscribing.CLI"></a>

Para assinar a Notificação de eventos do RDS, use o comando [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/rds/create-event-subscription.html) da `create-event-subscription`. Inclua os seguintes parâmetros necessários:
+ `--subscription-name`
+ `--sns-topic-arn`

**Example**  
Para Linux, macOS ou Unix:  

```
aws rds create-event-subscription \
    --subscription-name myeventsubscription \
    --sns-topic-arn arn:aws:sns:us-east-1:123456789012:myawsuser-RDS \
    --enabled
```
Para Windows:  

```
aws rds create-event-subscription ^
    --subscription-name myeventsubscription ^
    --sns-topic-arn arn:aws:sns:us-east-1:123456789012:myawsuser-RDS ^
    --enabled
```

## API
<a name="USER_Events.Subscribing.API"></a>

Para assinar a notificação de eventos do Amazon RDS, chame a função da API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateEventSubscription.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateEventSubscription.html) do Amazon RDS. Inclua os seguintes parâmetros necessários: 
+ `SubscriptionName`
+ `SnsTopicArn`

# Tags e atributos de notificação de eventos do Amazon RDS
<a name="USER_Events.TagsAttributesForFiltering"></a>

Quando o Amazon RDS envia uma notificação de evento ao Amazon Simple Notification Service (SNS) ou ao Amazon EventBridge, a notificação contém atributos de mensagem e tags de evento. O RDS envia os atributos da mensagem separadamente com a mensagem, enquanto as tags de evento estão no corpo da mensagem. Use os atributos de mensagem e as tags do Amazon RDS para adicionar metadados aos seus recursos. Você pode modificar essas tags com suas próprias notações sobre as instâncias de banco de dados Para ter mais informações sobre recursos de marcação do Amazon RDS, consulte [Marcar recursos do do Amazon RDS](USER_Tagging.md). 

Por padrão, o Amazon SNS e o Amazon EventBridge recebem todas as mensagens enviadas a eles. O SNS e o EventBridge podem filtrar a mensagem e enviar as notificações ao modo de comunicação preferencial, como um e-mail, uma mensagem de texto ou uma chamada para um endpoint HTTP.

**nota**  
A notificação enviada em um e-mail ou uma mensagem de texto não terá tags de evento.

A tabela a seguir mostra os atributos da mensagem de eventos do RDS enviada ao assinante do tópico.


| Atributo de evento do Amazon RDS |  Descrição  | 
| --- | --- | 
| EventID |  Identificador da mensagem de eventos do RDS, por exemplo, RDS-EVENT-0006.  | 
| Recurso |  O identificador do ARN do recurso que emite o evento, por exemplo, `arn:aws:rds:ap-southeast-2:123456789012:db:database-1`.  | 

As tags do RDS fornecem dados sobre o recurso que foi afetado pelo evento do serviço. O RDS adiciona o estado atual das tags ao corpo da mensagem quando a notificação é enviada ao SNS ou ao EventBridge.

Para ter mais informações sobre filtragem de atributos de mensagens do SNS, consulte [Filtragem de mensagens do Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-message-filtering.html) no *Guia do desenvolvedor do Amazon Simple Notification Service*.

Para obter mais informações sobre a filtragem de tags de evento para o EventBridge, consulte [Operadores de comparação para uso em padrões de eventos do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns-content-based-filtering.html) no *Guia do usuário do Amazon EventBridge*.

Para obter mais informações sobre a filtragem de tags baseadas em carga útil para o SNS, consulte [Introdução à filtragem de mensagens baseadas em carga útil para o Amazon SNS](https://aws.amazon.com/blogs/compute/introducing-payload-based-message-filtering-for-amazon-sns/)

# Listar assinaturas de notificação de evento do Amazon RDS
<a name="USER_Events.ListSubscription"></a>

Você pode listar suas atuais assinaturas de notificações de eventos do Amazon RDS.

## Console
<a name="USER_Events.ListSubscription.Console"></a>

**Para listar suas atuais assinaturas de notificações de eventos do Amazon RDS**

1. Faça login no Console de gerenciamento da AWS e 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 **Event subscriptions (Assinaturas de eventos)**. O painel **Event subscriptions (Assinaturas de eventos)** exibirá todas as suas assinaturas de notificação de eventos.  
![\[Listar assinaturas de notificação de evento de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EventNotification-ListSubs.png)

   

## AWS CLI
<a name="USER_Events.ListSubscription.CLI"></a>

Para listar suas atuais assinaturas de notificações de eventos do Amazon RDS, use o comando da AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-event-subscriptions.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-event-subscriptions.html)I. 

**Example**  
O exemplo a seguir descreve todas as assinaturas de eventos.  

```
aws rds describe-event-subscriptions
```
O exemplo a seguir descreve a pilha `myfirsteventsubscription`.  

```
aws rds describe-event-subscriptions --subscription-name myfirsteventsubscription
```

## API
<a name="USER_Events.ListSubscription.API"></a>

Para listar suas atuais assinaturas de notificações de eventos do Amazon RDS, chame a ação da API do Amazon RDS [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEventSubscriptions.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEventSubscriptions.html).

# Modificar uma assinatura de notificação de evento do Amazon RDS
<a name="USER_Events.Modifying"></a>

Depois que você criar uma assinatura, é possível alterar o nome, identificador de origem, categorias ou ARN do tópico da assinatura.

## Console
<a name="USER_Events.Modifying.Console"></a>

**Para modificar uma assinatura de notificação de evento do Amazon RDS**

1. Faça login no Console de gerenciamento da AWS e 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 **Event subscriptions (Assinaturas de eventos)**. 

1.  No painel **Event subscriptions (Assinaturas de eventos)**, escolha a assinatura que deseja modificar e escolha **Edit (Editar)**. 

1.  Faça as alterações na assinatura usando as seções **Target (Alvo)** ou **Source (Origem)**.

1. Selecione a opção **Editar**. O console do Amazon RDS indica que a assinatura está sendo modificada.  
![\[Listar assinaturas de notificação de evento de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EventNotification-Modify2.png)

   

## AWS CLI
<a name="USER_Events.Modifying.CLI"></a>

Para modificar uma assinatura de notificação de evento do Amazon RDS, use o comando da AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-event-subscription.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-event-subscription.html). Inclua o seguinte parâmetro necessário:
+ `--subscription-name`

**Example**  
O código a seguir habilita `myeventsubscription`.  
Para Linux, macOS ou Unix:  

```
aws rds modify-event-subscription \
    --subscription-name myeventsubscription \
    --enabled
```
Para Windows:  

```
aws rds modify-event-subscription ^
    --subscription-name myeventsubscription ^
    --enabled
```

## API
<a name="USER_Events.Modifying.API"></a>

Para modificar um evento do Amazon RDS, chame a operação da API do Amazon RDS [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyEventSubscription.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyEventSubscription.html). Inclua o seguinte parâmetro necessário:
+ `SubscriptionName`

# Adicionar um identificador de origem a uma assinatura de notificação de evento do Amazon RDS
<a name="USER_Events.AddingSource"></a>

Você pode adicionar um identificador de origem (a origem do Amazon RDS que gera o evento) à uma assinatura existente.

## Console
<a name="USER_Events.AddingSource.Console"></a>

Você pode facilmente adicionar ou remover identificadores de origem usando o console do Amazon RDS selecionando-os ou desmarcando-os ao modificar uma assinatura. Para obter mais informações, consulte [Modificar uma assinatura de notificação de evento do Amazon RDS](USER_Events.Modifying.md).

## AWS CLI
<a name="USER_Events.AddingSource.CLI"></a>

Para adicionar um identificador de origem a uma assinatura de notificação de eventos do Amazon RDS, use o comando da AWS CLI [https://docs.aws.amazon.com/](https://docs.aws.amazon.com/). Inclua os seguintes parâmetros necessários:
+ `--subscription-name`
+ `--source-identifier`

**Example**  
O exemplo a seguir adiciona o identificador de origem `mysqldb` à assinatura `myrdseventsubscription`  
Para Linux, macOS ou Unix:  

```
aws rds add-source-identifier-to-subscription \
    --subscription-name myrdseventsubscription \
    --source-identifier mysqldb
```
Para Windows:  

```
aws rds add-source-identifier-to-subscription ^
    --subscription-name myrdseventsubscription ^
    --source-identifier mysqldb
```

## solicitações de
<a name="USER_Events.AddingSource.API"></a>

Para adicionar um identificador de origem a uma assinatura de notificação de evento do Amazon RDS, chame a API do Amazon RDS [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AddSourceIdentifierToSubscription.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AddSourceIdentifierToSubscription.html). Inclua os seguintes parâmetros necessários:
+ `SubscriptionName`
+ `SourceIdentifier`

# Remover um identificador de origem de uma assinatura de notificação de eventos do Amazon RDS
<a name="USER_Events.RemovingSource"></a>

Você pode remover um identificador de origem (a origem do Amazon RDS que gera o evento) de uma assinatura se você não quiser mais ser notificado sobre eventos para aquela origem. 

## Console
<a name="USER_Events.RemovingSource.Console"></a>

Você pode facilmente adicionar ou remover identificadores de origem usando o console do Amazon RDS selecionando-os ou desmarcando-os ao modificar uma assinatura. Para obter mais informações, consulte [Modificar uma assinatura de notificação de evento do Amazon RDS](USER_Events.Modifying.md).

## AWS CLI
<a name="USER_Events.RemovingSource.CLI"></a>

Para remover um identificador de origem de uma assinatura de notificação de eventos do Amazon RDS, use o comando da AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/remove-source-identifier-from-subscription.html](https://docs.aws.amazon.com/cli/latest/reference/rds/remove-source-identifier-from-subscription.html). Inclua os seguintes parâmetros necessários:
+ `--subscription-name`
+ `--source-identifier`

**Example**  
O exemplo a seguir remove o identificador de origem `mysqldb` da assinatura `myrdseventsubscription`.  
Para Linux, macOS ou Unix:  

```
aws rds remove-source-identifier-from-subscription \
    --subscription-name myrdseventsubscription \
    --source-identifier mysqldb
```
Para Windows:  

```
aws rds remove-source-identifier-from-subscription ^
    --subscription-name myrdseventsubscription ^
    --source-identifier mysqldb
```

## solicitações de
<a name="USER_Events.RemovingSource.API"></a>

Para remover um identificador de origem de uma assinatura de notificação de eventos do Amazon RDS, use o comando [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RemoveSourceIdentifierFromSubscription.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RemoveSourceIdentifierFromSubscription.html) da API do Amazon RDS. Inclua os seguintes parâmetros necessários:
+ `SubscriptionName`
+ `SourceIdentifier`

# Listar as categorias de notificação de evento do Amazon RDS
<a name="USER_Events.ListingCategories"></a>

Todos os eventos para um tipo de recurso são agrupados em categorias. Para visualizar a lista de categorias disponíveis, use os seguintes procedimentos.

## Console
<a name="USER_Events.ListingCategories.Console"></a>

Quando você cria ou modifica uma assinatura de notificação de evento, as categorias de eventos são exibidas no console do Amazon RDS. Para obter mais informações, consulte [Modificar uma assinatura de notificação de evento do Amazon RDS](USER_Events.Modifying.md). 

![\[Listar categorias de notificação de evento de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EventNotification-Categories.png)




## AWS CLI
<a name="USER_Events.ListingCategories.CLI"></a>

Para listar as categorias de notificação de evento do Amazon RDS, use o comando da AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-event-categories.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-event-categories.html). Esse comando não possui parâmetros necessários.

**Example**  

```
aws rds describe-event-categories
```

## API
<a name="USER_Events.ListingCategories.API"></a>

Para listar as categorias de notificação de evento do Amazon RDS, use o comando [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEventCategories.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEventCategories.html) da API do Amazon RDS. Esse comando não possui parâmetros necessários.

# Excluir uma assinatura de notificação de evento do Amazon RDS
<a name="USER_Events.Deleting"></a>

É possível excluir uma assinatura quando não precisar mais dela. Todos os assinantes do tópico não receberão mais notificações de evento especificadas pela assinatura.

## Console
<a name="USER_Events.Deleting.Console"></a>

**Para excluir uma assinatura de notificação de evento do Amazon RDS**

1. Faça login no Console de gerenciamento da AWS e 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 **DB Event Subscriptions (Assinaturas de eventos de banco de dados)**. 

1.  No painel **My DB Event Subscriptions (Minhas assinaturas de eventos de banco de dados)**, escolha a assinatura que deseja excluir. 

1. Escolha **Excluir**.

1. O console do Amazon RDS indica que a assinatura está sendo excluída.  
![\[Excluir uma assinatura de notificação de evento\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/EventNotification-Delete.png)

   

## AWS CLI
<a name="USER_Events.Deleting.CLI"></a>

Para excluir uma assinatura de notificação de evento do Amazon RDS, use o comando da AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/delete-event-subscription.html](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-event-subscription.html). Inclua o seguinte parâmetro necessário:
+ `--subscription-name`

**Example**  
O exemplo a seguir exclui a assinatura `myrdssubscription`.  

```
aws rds delete-event-subscription --subscription-name myrdssubscription
```

## API
<a name="USER_Events.Deleting.API"></a>

Para excluir uma assinatura de notificação de evento do Amazon RDS, use o comando [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteEventSubscription.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteEventSubscription.html) da API do RDS. Inclua o seguinte parâmetro necessário:
+ `SubscriptionName`

# Criar uma regra que é acionada em um evento do Amazon RDS
<a name="rds-cloud-watch-events"></a>

Usando o Amazon EventBridge, é possível automatizar serviços da AWS e responder aos eventos do sistema, como problemas de disponibilidade da aplicação ou alterações de recursos. 

**Topics**
+ [Criar regras para enviar eventos do Amazon RDS ao Amazon EventBridge](#rds-cloudwatch-events.sending-to-cloudwatch-events)
+ [Tutorial: Registro de alterações de estado de uma instância de banco de dados usando o Amazon EventBridge](#log-rds-instance-state)

## Criar regras para enviar eventos do Amazon RDS ao Amazon EventBridge
<a name="rds-cloudwatch-events.sending-to-cloudwatch-events"></a>

É possível gravar regras simples para indicar quais eventos do Amazon RDS são interessantes para você e quais ações automatizadas devem ser realizadas quando um evento corresponder a uma regra. É possível definir uma variedade de destinos, como uma função do AWS Lambda ou um tópico do Amazon SNS, que recebem eventos no formato JSON. Por exemplo, é possível configurar o Amazon RDS para enviar eventos ao Amazon EventBridge sempre que uma instância de banco de dados é criada ou excluída. Para obter mais informações, consulte o [Manual do usuário de do Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/) e o [Manual do usuário do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/).

**Para criar uma regra que é acionada em um evento do RDS:**

1. Abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Em **Events (Eventos)**, no painel de navegação, escolha **Rules (Regras)**.

1. Escolha **Create rule** (Criar regra).

1. Em **Origem do evento**, faça o seguinte:

   1. Escolha **Event Pattern** (Padrão de evento).

   1. Em **Service Name** (Nome do serviço), escolha **Relational Database Service (RDS)**.

   1. Em **Event Type** (Tipo de evento), escolha o tipo de recurso do Amazon RDS que aciona o evento. Por exemplo, se uma instância de banco de dados acionar o evento, escolha **RDS DB Instance Event** (Evento de instância de banco de dados do RDS).

1. Em **Targets (Destinos)**, escolha **Add Target (Adicionar destino)** e escolha o serviço da AWS que deve agir quando um evento do tipo selecionado é detectado. 

1. Em outros campos nesta seção, insira informações específicas para esse tipo de destino, se necessário. 

1. Para muitos tipos de destino, o Eventbridge precisa de permissões para enviar eventos ao destino. Nesses casos, o EventBridge pode criar o perfil do IAM necessário para o perfil ser executado: 
   + Para criar um perfil do IAM automaticamente, escolha **Create a new role for this specific resource**.
   + Para usar um perfil do IAM que você criou antes, escolha **Use existing role (Usar perfil existente)**.

1. Opcionalmente, repita as etapas de 5 a 7 para adicionar outro destino a esta regra.

1. Escolha **Configure details (Configurar detalhes)**. Em **Definição de regra**, digite um nome e uma descrição para a regra.

   O nome da regra deve ser exclusivo dentro dessa região.

1. Escolha **Create rule** (Criar regra).

Para ter mais informações, consulte [Creating an EventBridge Rule That Triggers on an Event](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Rule.html) no *Guia do usuário do Amazon CloudWatch*.

## Tutorial: Registro de alterações de estado de uma instância de banco de dados usando o Amazon EventBridge
<a name="log-rds-instance-state"></a>

Neste tutorial, você pode criar uma função do AWS Lambda que registra as alterações de estado para uma instância do Amazon RDS. Depois, crie uma regra que execute a função sempre que houver uma alteração de estado de uma instância de banco de dados do RDS existente. O tutorial pressupõe que você tem uma pequena instância de teste em execução que você pode desligar temporariamente.

**Importante**  
Não execute este tutorial em uma instância de banco de dados de produção em execução.

**Topics**
+ [Etapa 1: Criar uma função do AWS Lambda](#rds-create-lambda-function)
+ [Etapa 2: Criar uma regra](#rds-create-rule)
+ [Etapa 3: Testar a regra](#rds-test-rule)

### Etapa 1: Criar uma função do AWS Lambda
<a name="rds-create-lambda-function"></a>

Crie uma função Lambda para registrar em log os eventos de alteração de estado. Você especifica essa função quando cria sua regra.

**Como criar uma função do Lambda**

1. Abra o console do AWS Lambda em [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Se você estiver começando a usar o Lambda, verá uma página de boas-vindas. Escolha **Get Started Now (Começar agora)**. Do contrário, escolha **Create function (Criar função)**.

1. Escolha **Author from scratch**.

1. Na página **Create function (Criar função)**, faça o seguinte:

   1. Digite um nome e uma descrição para a função Lambda. Por exemplo, atribua à função o nome **RDSInstanceStateChange**. 

   1. Em **Runtime** (Tempo de execução), selecione **Node.js 14x**. 

   1. Em **Architecture** (Arquitetura), escolha **x86\$164**.

   1. Em **Execution role** (Perfil de execução), realize um dos seguintes procedimentos:
      + Escolha **Create a new role with basic Lambda permissions (Criar uma nova função com permissões básicas do Lambda)**.
      + Em **Existing role** (Perfil existente), escolha **Use an existing role** (Usar um perfil existente). Escolha o perfil que deseja usar. 

   1. Escolha **Create function**.

1. Na página **RDSinstAncestateChange**, faça o seguinte:

   1. Em **Code source** (Fonte do código), selecione **index.js**. 

   1. No painel de **index.js**, exclua o código existente.

   1. Insira o seguinte código:

      ```
      console.log('Loading function');
      
      exports.handler = async (event, context) => {
          console.log('Received event:', JSON.stringify(event));
      };
      ```

   1. Escolha **Deploy (Implantar)**.

### Etapa 2: Criar uma regra
<a name="rds-create-rule"></a>

Crie uma regra para executar sua função do Lambda sempre que executar uma instância do Amazon RDS.

**Como criar a regra do EventBridge**

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

1. No painel de navegação, escolha **Regras**.

1. Escolha **Create rule**.

1. Insira um nome e uma descrição para a regra. Por exemplo, digite **RDSInstanceStateChangeRule**.

1. Escolha **Rule with an event pattern** (Regra com padrão de eventos), depois selecione **Next** (Próximo).

1. Em **Origem do evento**, escolha **Eventos da AWS ou eventos de parceiro do EventBridge**.

1. Role para baixo até a seção **Event pattern** (Padrão de eventos).

1. Para **Origem do evento**, escolha **Serviços da AWS**.

1. Em **Serviço da AWS**, escolha **Relational Database Service (RDS)**.

1. Em **Event type** (Tipo de evento), escolha **RDS DB Instance Event** (Evento de instância de banco de dados do RDS).

1. Mantenha o padrão de eventos predefinido. Escolha **Próximo**.

1. Em **Target types** (Tipos de destino), escolha **AWS service** (Serviço da AWS).

1. Para **Selecionar um destino**, escolha **Função do Lambda**.

1. Em **Function** (Função), selecione a função do Lambda que você criou. Em seguida, escolha **Próximo**.

1. Em **Configure tags** (Configurar etiquetas), escolha **Next** (Próximo).

1. Revise as etapas da sua regra. Em seguida, escolha **Create rule** (Criar regra).

### Etapa 3: Testar a regra
<a name="rds-test-rule"></a>

Para testar sua regra, desligue uma instância de banco de dados do RDS. Depois de esperar alguns minutos para a instância ser inicializada e executada, verifique se a sua função do Lambda foi chamada.

**Como testar a regra ao interromper uma instância de banco de dados**

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

1. Interrupção de uma instância de banco de dados do RDS.

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

1. No painel de navegação, escolha **Rules** (Regras) e escolha o nome da regra criada por você.

1. Em **Detalhes da regra**, escolha **Monitoramento**.

   O sistema redireciona você para o console do Amazon CloudWatch. Se você não for redirecionado, clique em **Visualizar as métricas no CloudWatch**.

1. Em **All metrics** (Todas as métricas), escolha o nome da regra que você criou.

   O gráfico deve indicar que a regra foi invocada.

1. No painel de navegação, escolha **Log groups (Grupos de logs)**.

1. Escolha o nome do grupo de logs para a sua função do Lambda (**/aws/lambda/*nome-da-função***).

1. Escolha o nome do fluxo de logs para visualizar os dados fornecidos pela função para a instância que você iniciou. Será exibido um resultado semelhante ao seguinte:

   ```
   {
       "version": "0",
       "id": "12a345b6-78c9-01d2-34e5-123f4ghi5j6k",
       "detail-type": "RDS DB Instance Event",
       "source": "aws.rds",
       "account": "111111111111",
       "time": "2021-03-19T19:34:09Z",
       "region": "us-east-1",
       "resources": [
           "arn:aws:rds:us-east-1:111111111111:db:testdb"
       ],
       "detail": {
           "EventCategories": [
               "notification"
           ],
           "SourceType": "DB_INSTANCE",
           "SourceArn": "arn:aws:rds:us-east-1:111111111111:db:testdb",
           "Date": "2021-03-19T19:34:09.293Z",
           "Message": "DB instance stopped",
           "SourceIdentifier": "testdb",
           "EventID": "RDS-EVENT-0087"
       }
   }
   ```

   Para obter mais exemplos de eventos do RDS no formato JSON, consulte [Visão geral dos eventos para Amazon RDS](working-with-events.md#rds-cloudwatch-events.sample).

1. (Opcional) Ao terminar, você poderá abrir o console do Amazon RDS e iniciar a instância interrompida.

# Categorias de eventos e mensagens de eventos
<a name="USER_Events.Messages"></a>

O Amazon RDS gera um número significativo de eventos em categorias nas quais você pode fazer uma assinatura usando o console do Amazon RDS, a AWS CLI ou a API.

**Topics**
+ [Eventos de cluster de banco de dados](#USER_Events.Messages.cluster)
+ [Eventos de snapshot de cluster de banco de dados](#USER_Events.Messages.cluster-snapshot)
+ [Eventos de instância de banco de dados](#USER_Events.Messages.instance)
+ [Eventos de grupo de parâmetros de banco de dados](#USER_Events.Messages.parameter-group)
+ [Eventos de grupos de segurança de banco de dados](#USER_Events.Messages.security-group)
+ [Eventos de snapshot de banco de dados](#USER_Events.Messages.snapshot)
+ [Eventos do RDS Proxy](#USER_Events.Messages.rds-proxy)
+ [Eventos de implantação azul/verde](#USER_Events.Messages.BlueGreenDeployments)
+ [Eventos de versão de mecanismos personalizados](#USER_Events.Messages.CEV)

## Eventos de cluster de banco de dados
<a name="USER_Events.Messages.cluster"></a>

A tabela a seguir mostra a categoria de evento e uma lista de eventos quando um cluster de banco de dados é o tipo de origem.

Para ter mais informações sobre Implantações de cluster de banco de dados multi-AZ, consulte [Implantações de cluster de banco de dados multi-AZ para o Amazon RDS](multi-az-db-clusters-concepts.md).


|  Categoria  | ID do evento do RDS |  Mensagem  |  Observações  | 
| --- | --- | --- | --- | 
|  alteração de configuração  | RDS-EVENT-0016 |  Redefina as credenciais principais.  | Nenhum | 
| criação | RDS-EVENT-0170 |  Cluster de banco de dados criado.  |  Nenhum  | 
|  failover  | RDS-EVENT-0069 |  Falha no failover do cluster, verifique a integridade das instâncias do cluster e tente novamente.  |  Nenhum  | 
|  failover  | RDS-EVENT-0070 |  Promover novamente a primária anterior: *nome*.  |  Nenhum  | 
|  failover  | RDS-EVENT-0071 |  Failover concluído para a instância de banco de dados: *nome*.  |  Nenhum  | 
|  failover  | RDS-EVENT-0072 |  Iniciou o mesmo failover da AZ para a instância de banco de dados: *nome*.  |  Nenhum  | 
|  failover  | RDS-EVENT-0073 |  Iniciou o failover cruzado da AZ para a instância de banco de dados: *nome*.  |  Nenhum  | 
| falha | RDS-EVENT-0354 |  Não é possível criar o cluster de banco de dados devido a recursos incompatíveis. *mensagem*.  |  A *mensagem* inclui detalhes sobre a falha.  | 
| falha | RDS-EVENT-0355 |  O cluster de banco de dados não pode ser criado devido a limites insuficientes de recursos. *mensagem*.  |  A *mensagem* inclui detalhes sobre a falha.  | 
|  manutenção  | RDS-EVENT-0156 |  O cluster de banco de dados tem uma atualização de versão secundária do mecanismo de banco de dados disponível.  |  Nenhum  | 
|  manutenção  | RDS-EVENT-0173 |  A versão do mecanismo do cluster de banco de dados foi atualizada.  | A aplicação de patches do cluster de banco de dados foi concluída. | 
|  manutenção  | RDS-EVENT-0174 |  O cluster do banco de dados está em um estado que não pode ser atualizado.  | Nenhum | 
|  manutenção  | RDS-EVENT-0176 |  A versão principal do mecanismo do cluster de banco de dados foi atualizada.  | Nenhum | 
|  manutenção  | RDS-EVENT-0177 |  A atualização do cluster de banco de dados está em andamento.  | Nenhum | 
|  manutenção  | RDS-EVENT-0286 |  A atualização da versão *version\$1number* do mecanismo de cluster de banco de dados foi iniciada. O cluster permanece online.  | Nenhum | 
|  manutenção  | RDS-EVENT-0287 |  Requisito de atualização do sistema operacional detectado.  | Nenhum | 
|  manutenção  | RDS-EVENT-0288 |  Início da atualização do sistema operacional do cluster.  | Nenhum | 
|  manutenção  | RDS-EVENT-0289 |  Atualização do sistema operacional de cluster concluída.  | Nenhum | 
|  manutenção  | RDS-EVENT-0290 |  O cluster de banco de dados foi corrigido: versão de origem *número\$1da\$1versão* => *número\$1da\$1nova\$1versão*.  | Nenhum | 
|  manutenção  | RDS-EVENT-0410 |  A pré-verificação foi iniciada para a atualização da versão do mecanismo do cluster de banco de dados.  | Nenhum | 
|  manutenção  | RDS-EVENT-0412 |  A pré-verificação para a atualização da versão do mecanismo do cluster de banco de dados falhou ou atingiu o tempo limite.  | Nenhum | 
|  manutenção  | RDS-EVENT-0413 |  As tarefas pré-atualização do cluster de banco de dados estão em andamento.  | Nenhum | 
|  manutenção  | RDS-EVENT-0414 |  As tarefas pós-atualização do cluster de banco de dados estão em andamento.  | Nenhum | 
|  manutenção  | RDS-EVENT-0417 |  A atualização da versão do mecanismo de cluster de banco de dados foi iniciada.  | Nenhum | 
|  notificação  | RDS-EVENT-0172 |  Cluster renomeado de *nome* para *nome*.  |  Nenhum  | 
|  réplica de leitura  | RDS-EVENT-0411 |  A pré-verificação foi concluída para a atualização da versão do mecanismo do cluster de banco de dados.  | Nenhum | 

## Eventos de snapshot de cluster de banco de dados
<a name="USER_Events.Messages.cluster-snapshot"></a>

A tabela a seguir mostra a categoria de evento e uma lista de eventos quando um snapshot de cluster de banco de dados é o tipo de origem.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/USER_Events.Messages.html)

## Eventos de instância de banco de dados
<a name="USER_Events.Messages.instance"></a>

As tabelas a seguir mostram a categoria de evento e uma lista de eventos quando uma instância de banco de dados é o tipo de origem.


|  Categoria  | ID do evento do RDS |  Mensagem  |  Observações  | 
| --- | --- | --- | --- | 
|  disponibilidade  | RDS-EVENT-0004 |  Desligamento da instância de banco de dados.  | Nenhum | 
|  disponibilidade  | RDS-EVENT-0006 |  A instância de banco de dados foi reiniciada.  | Nenhum | 
|  disponibilidade  | RDS-EVENT-0022 |  Erro ao reiniciar o mysql: *mensagem*.  | Ocorreu um erro ao reiniciar o MySQL. | 
|  disponibilidade  | RDS-EVENT-0221 |  A instância de banco de dados atingiu o limite total de armazenamento e o banco de dados foi encerrado. É possível aumentar o armazenamento alocado para resolver o problema.  | Nenhum | 
|  disponibilidade  | RDS-EVENT-0222 |  A capacidade de armazenamento livre para a instância de banco de dados *nome* está baixa em *porcentagem* do armazenamento alocado [Armazenamento alocado: *quantidade*, Armazenamento livre: *quantidade*]. O banco de dados será encerrado para evitar corrupção se o armazenamento livre for menor que *valor*. É possível aumentar o armazenamento alocado para resolver o problema.  | Aplica-se somente ao RDS para MySQL quando uma instância de banco de dados consome mais de 90% do armazenamento alocado. Monitore o espaço de armazenamento para uma instância de banco de dados usando a métrica Free Storage Space (Espaço de armazenamento livre). Para obter mais informações, consulte [Armazenamento de instâncias de banco de dados do Amazon RDS](CHAP_Storage.md). | 
|  disponibilidade  | RDS-EVENT-0330 |  A capacidade de armazenamento livre do volume dedicado de logs de transações está muito baixa para a instância de banco de dados *nome*. O armazenamento livre do volume de logs é a *porcentagem* do armazenamento alocado. [Armazenamento alocado: *quantidade*, Armazenamento livre: *quantidade*] O banco de dados será encerrado para evitar corrupção se o armazenamento livre for menor que *quantidade*. É possível desabilitar o volume dedicado de logs de transações para resolver esse problema.  |  Para obter mais informações, consulte [Volume de log dedicado (DLV)](CHAP_Storage.md#CHAP_Storage.dlv).  | 
|  disponibilidade  | RDS-EVENT-0331 |  A capacidade de armazenamento livre do volume dedicado de logs de transações está muito baixa para a instância de banco de dados *nome*. O armazenamento livre do volume de logs é a *porcentagem* do armazenamento provisionado. [Armazenamento provisionado: *quantidade*, Armazenamento livre: *quantidade*] Você pode desabilitar o volume dedicado de logs de transações para resolver esse problema.  |  Para obter mais informações, consulte [Volume de log dedicado (DLV)](CHAP_Storage.md#CHAP_Storage.dlv).  | 
|  disponibilidade  | RDS-EVENT-0396 |  O Amazon RDS programou uma reinicialização dessa réplica de leitura na próxima janela de manutenção dessa instância após a alternância interna da senha do usuário.  |  Nenhum  | 
| disponibilidade | RDS-EVENT-0419 | O Amazon RDS não pôde acessar a chave de criptografia KMS para a instância de banco de dados *nome*. Esse banco de dados será colocado em um estado inacessível. Consulte a seção de solução de problemas na documentação do Amazon RDS para obter mais detalhes. | Nenhum | 
|  backup  | RDS-EVENT-0001 |  Fazendo backup da instância de banco de dados.  | Nenhum | 
|  backup  | RDS-EVENT-0002 |  Backup da instância do banco de dados concluído.  | Nenhum | 
|  backup  | RDS-EVENT-0086 |  Não foi possível associar o grupo de opções *nome* ao *nome* da instância de banco de dados. Confirme se o *nome* do grupo de opções é permitido na classe e na configuração da instância de banco de dados. Se for esse o caso, verifique todas as configurações do grupo de opções e tente novamente.  |  Para ter mais informações, consulte [Trabalhar com grupos de opções](USER_WorkingWithOptionGroups.md). | 
|  alteração de configuração  | RDS-EVENT-0011 |  Atualização para usar DBParameterGroup *name*.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0012 |  Aplicando modificação à classe de instância de banco de dados.   | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0014 |  Conclusão da aplicação de modificação à classe de instância de banco de dados.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0016 |  Redefina as credenciais principais.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0017 |  Concluída aplicação de modificação ao armazenamento alocado.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0018 |  Aplicação de modificação ao armazenamento alocado.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0024 |  Aplicação de modificação para converter em uma instância de banco de dados multi-AZ.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0025 |  Concluída a aplicação de modificação para converter em uma instância de banco de dados multi-AZ.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0028 |  Backups automáticos desabilitados.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0029 |  Concluída a aplicação da modificação para converter em uma instância de banco de dados padrão (single-AZ).  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0030 |  Aplicação de modificação para converter em uma instância de banco de dados padrão (single-AZ).  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0032 |  Backups automáticos habilitados.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0033 |  Há *número* usuários que correspondem ao nome de usuário principal; apenas redefinindo aquele que não está vinculado a um host específico.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0067 |  Não foi possível redefinir sua senha. Informações de erro: *mensagem*.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0078 |  Intervalo de monitoramento alterado para *número*.  |  A configuração de Monitoramento avançado foi alterada. | 
|  alteração de configuração  | RDS-EVENT-0092 |  Conclusão da atualização do grupo de parâmetros do banco de dados.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0217 |  Aplicação de modificação iniciada em escalabilidade automática ao armazenamento alocado.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0218 |  Concluída aplicação de modificação iniciada em escalabilidade automática ao armazenamento alocado.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0237 |  Atualização da configuração de armazenamento iniciada.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0237 |  Atualização da configuração de armazenamento concluída.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0332 |  O volume de logs dedicado está desabilitado.  |  Para obter mais informações, consulte [Volume de log dedicado (DLV)](CHAP_Storage.md#CHAP_Storage.dlv).  | 
|  alteração de configuração  | RDS-EVENT-0333 |  A desabilitação do volume de logs dedicado foi iniciada.  |  Para obter mais informações, consulte [Volume de log dedicado (DLV)](CHAP_Storage.md#CHAP_Storage.dlv).  | 
|  alteração de configuração  | RDS-EVENT-0334 |  A habilitação do volume de logs dedicado foi iniciada.  |  Para obter mais informações, consulte [Volume de log dedicado (DLV)](CHAP_Storage.md#CHAP_Storage.dlv).  | 
|  alteração de configuração  | RDS-EVENT-0335 |  O volume de logs dedicado está habilitado.  |  Para obter mais informações, consulte [Volume de log dedicado (DLV)](CHAP_Storage.md#CHAP_Storage.dlv).  | 
|  alteração de configuração  | RDS-EVENT-0383 |  A *versão do mecanismo* não comporta o plug-in memcached. O RDS continuará atualizando sua instância de banco de dados e removerá esse plug-in.  |  A partir do MySQL 8.3.0, o plug-in memcached não é compatível. Para ter mais informações, consulte [Changes in MySQL 8.3.0 (2024-01-16, Innovation Release)](https://dev.mysql.com/doc/relnotes/mysql/8.3/en/news-8-3-0.html).  | 
|  criação  | RDS-EVENT-0005 |  Instância de banco de dados criada.  | Nenhum | 
|  exclusão  | RDS-EVENT-0003 |  A instância de banco de dados foi excluída.  | Nenhum | 
|  failover  | RDS-EVENT-0013 |  Failover de instância multi-AZ iniciado.  | Um failover de multi-AZ que resultou na promoção de uma instância de banco de dados em espera foi iniciado. | 
|  failover  | RDS-EVENT-0015 |  Failover de multi-AZ para o modo de espera concluído: a propagação do DNS pode levar alguns minutos.  | Um failover de multi-AZ que resultou na promoção de uma instância de banco de dados em espera está concluído. Pode levar vários minutos para o DNS ser transferido para a nova instância primária do banco de dados. | 
|  failover  | RDS-EVENT-0034 |  Abandonando o failover solicitado pelo usuário, pois ocorreu um failover recentemente na instância do banco de dados.  | O Amazon RDS não está tentando um failover solicitado porque ocorreu um failover recentemente na instância de banco de dados. | 
|  failover  | RDS-EVENT-0049 | O failover da instância multi-AZ foi concluído. | Nenhum | 
|  failover  | RDS-EVENT-0050 |  A ativação da instância multi-AZ foi iniciada.  | Uma ativação multi-AZ foi iniciada após uma recuperação bem-sucedida da instância de banco de dados Esse evento ocorre se o Amazon RDS promove a instância de banco de dados primária para a mesma zona de disponibilidade da instância de banco de dados primária anterior. | 
|  failover  | RDS-EVENT-0051 |  A ativação da instância multi-AZ foi concluída.  | Uma ativação multi-AZ está completa. Seu banco de dados deve estar acessível agora.  | 
|  failover  | RDS-EVENT-0065 |  Recuperação de um failover parcial.  | Nenhum | 
|  falha  | RDS-EVENT-0031 |  Instância de banco de dados colocada no estado *nome*. O RDS recomenda que você inicie uma restauração para um ponto no tempo.  | Houve falha na instância de banco de dados devido a uma configuração incompatível ou a um problema do armazenamento subjacente. Inicie um point-in-time-restore para a instância de banco de dados. | 
|  falha  | RDS-EVENT-0035 |  Instância de banco de dados colocada no *estado*. *mensagem*.  | A instância de banco de dados tem parâmetros inválidos. Por exemplo, se a instância de banco de dados não pôde ser iniciada porque um parâmetro relacionado à memória está definido como um valor muito alto para essa classe de instância, a ação seria modificar o parâmetro da memória e reinicializar a instância de banco de dados. | 
|  falha  | RDS-EVENT-0036 |  Instância do banco de dados em *estado*. *mensagem*.  | A instância de banco de dados está em uma rede incompatível. Alguns dos IDs de sub-rede especificados são inválidos ou não existem. | 
|  falha  | RDS-EVENT-0058 |  A instalação do Statspack falhou. *mensagem*.  | Erro ao criar a conta de usuário `PERFSTAT` do Oracle Statspack. Descarte a conta antes de adicionar a opção `STATSPACK`. | 
|  falha  | RDS-EVENT-0079 |  O Amazon RDS não conseguiu criar credenciais para o monitoramento avançado e esse recurso foi desabilitado. Provavelmente, isso ocorre porque rds-monitoring-role não está presente e foi configurado corretamente em sua conta. Consulte a seção de solução de problemas na documentação do Amazon RDS para obter mais detalhes.  |  O Monitoramento avançado não pode ser habilitado sem o perfil do IAM de monitoramento avançado. Para obter informações sobre como criar o perfil do IAM, consulte [Como criar uma função do IAM para o monitoramento avançado do Amazon RDS](USER_Monitoring.OS.Enabling.md#USER_Monitoring.OS.IAMRole).  | 
|  falha  | RDS-EVENT-0080 |  O Amazon RDS não conseguiu configurar o monitoramento avançado em sua instância: *nome* e esse recurso foi desabilitado. Provavelmente, isso ocorre porque rds-monitoring-role não está presente e foi configurado corretamente em sua conta. Consulte a seção de solução de problemas na documentação do Amazon RDS para obter mais detalhes.  |  O Monitoramento avançado foi desabilitado porque ocorreu um erro durante a alteração da configuração. É provável que o perfil do IAM de monitoramento avançado esteja configurado incorretamente. Para obter informações sobre como criar o perfil do IAM de monitoramento avançado, consulte [Como criar uma função do IAM para o monitoramento avançado do Amazon RDS](USER_Monitoring.OS.Enabling.md#USER_Monitoring.OS.IAMRole).  | 
|  falha  | RDS-EVENT-0081 |  O Amazon RDS não conseguiu criar credenciais para a opção *nome*. Isso ocorre porque o perfil do IAM *nome* não está configurado corretamente em sua conta. Consulte a seção de solução de problemas na documentação do Amazon RDS para obter mais detalhes.  |  O perfil do IAM que você usa para acessar seu bucket do Amazon S3 para backup e restauração nativos do SQL Server está configurado incorretamente. Para ter mais informações, consulte [Configurar o backup e a restauração nativos](SQLServer.Procedural.Importing.Native.Enabling.md).  | 
|  falha  | RDS-EVENT-0165 |  A instância de banco de dados do RDS Custom está fora do perímetro de suporte.  |  É sua responsabilidade corrigir problemas de configuração que colocam sua instância de banco de dados do RDS Custom no estado `unsupported-configuration`. Se o problema for com a infraestrutura da AWS, será possível utilizar o console ou a AWS CLI para corrigi-lo. Se o problema for com o sistema operacional ou a configuração do banco de dados, será possível fazer login no host para corrigi-lo.Para obter mais informações, consulte [Perímetro de suporte do RDS Custom](custom-concept.md#custom-troubleshooting.support-perimeter). | 
|  falha  | RDS-EVENT-0188 |  A instância de banco de dados está em um estado que não pode ser atualizado. *mensagem*  |  O Amazon RDS não conseguiu atualizar uma instância de banco de dados MySQL devido a incompatibilidades relacionadas ao dicionário de dados. A instância de banco de dados foi revertida para a versão 5.7 do MySQL porque uma tentativa de atualização para a versão 8.0 falhou, ou revertida para a versão 8.0 do MySQL porque uma tentativa de atualização para a versão 8.4 falhou. Para obter mais informações, consulte [Reversão após falha na atualização](USER_UpgradeDBInstance.MySQL.Major.md#USER_UpgradeDBInstance.MySQL.Major.RollbackAfterFailure).  | 
|  falha  | RDS-EVENT-0219 |  A instância de banco de dados está em um estado inválido. Nenhuma ação é necessária. A escalabilidade automática tentará novamente mais tarde.  | Nenhum | 
|  falha  | RDS-EVENT-0220 |  A instância de banco de dados está no período de desaquecimento de uma operação de armazenamento em escala anterior. Estamos otimizando a instância de banco de dados. Isso leva pelo menos seis horas. Nenhuma ação é necessária. A escalabilidade automática tentará novamente após o período de desaquecimento.  | Nenhum | 
|  falha  | RDS-EVENT-0223 |  O ajuste de escala automático do armazenamento não pode ajudar a escala do armazenamento pelo seguinte motivo: *motivo*.  | Nenhum | 
|  falha  | RDS-EVENT-0224 |  O ajuste de escala automático do armazenamento acionou uma tarefa de armazenamento de escala pendente que atingirá ou excederá o limite máximo de armazenamento. Aumente o limite máximo do armazenamento.  | Nenhum | 
|  falha  | RDS-EVENT-0237 |  A instância de banco de dados tem um tipo de armazenamento que no momento está indisponível na zona de disponibilidade. A escalabilidade automática tentará novamente mais tarde.  | Nenhum | 
| falha | RDS-EVENT-0254 |  A cota de armazenamento subjacente para essa conta de cliente excedeu o limite. Aumente a cota de armazenamento permitida para que o ajuste de escala continue na instância.  | Nenhum | 
|  falha  |  RDS-EVENT-0278  |  Falha na criação da instância de banco de dados. *mensagem*  |  A *mensagem* inclui detalhes sobre a falha.  | 
|  falha  |  RDS-EVENT-0279  |  Falha na promoção da réplica de leitura do RDS Custom. *mensagem*  |  A *mensagem* inclui detalhes sobre a falha.  | 
|  falha  |  RDS-EVENT-0280  |  O RDS Custom não conseguiu fazer upgrade da instância de banco de dados porque a pré-verificação falhou. *mensagem*  |  A *mensagem* inclui detalhes sobre a falha.  | 
|  falha  |  RDS-EVENT-0281  |  O RDS Custom não conseguiu modificar a instância de banco de dados porque a pré-verificação falhou. *mensagem*  |  A *mensagem* inclui detalhes sobre a falha.  | 
|  falha  |  RDS-EVENT-0282  |  O RDS Custom não conseguiu modificar a instância de banco de dados porque as permissões de IP elástico não estão corretas. Confirme se o endereço IP elástico está marcado com `AWSRDSCustom`.  |  Nenhum  | 
|  falha  |  RDS-EVENT-0283  |  O RDS Custom não conseguiu modificar a instância de banco de dados porque o limite de IPs elásticos foi atingido em sua conta. Libere IPs elásticos não utilizados ou solicite um aumento de cota para seu limite de endereços IP elásticos.  |  Nenhum  | 
|  falha  |  RDS-EVENT-0284  |  O RDS Custom não conseguiu converter a instância para alta disponibilidade porque a pré-verificação falhou. *mensagem*  |  A *mensagem* inclui detalhes sobre a falha.  | 
|  falha  |  RDS-EVENT-0285  |  O RDS Custom não conseguiu criar um snapshot final para a instância de banco de dados porque *mensagem*.  |  A *mensagem* inclui detalhes sobre a falha.  | 
|  falha  |  RDS-EVENT-0421  |  O RDS Custom não pôde converter a instância de banco de dados em uma implantação multi-AZ: *mensagem*. A instância permanecerá como uma implantação single-AZ. Consulte o “Guia do usuário do RDS” para ter informações sobre implantações multi-AZ para o RDS Custom para Oracle.  |  A *mensagem* inclui detalhes sobre a falha.  | 
|  falha  | RDS-EVENT-0237 |  Falha na atualização da configuração de armazenamento. Tente fazer o upgrade novamente.  | Nenhum | 
|  falha  | RDS-EVENT-0237 |  Não é possível mover o banco de dados de rede incompatível,*nome*, para o status disponível: *mensagem*  |  A configuração de rede do banco de dados é inválida. Não foi possível mover o banco de dados da rede incompatível para a disponível.  | 
| falha | RDS-EVENT-0328 |  Falha ao ingressar um host a um domínio. O status de associação ao domínio, por exemplo, *nomedainstância* foi definido como “Com falha”.  | Nenhum | 
| falha | RDS-EVENT-0329 |  Falha ao ingressar um host no domínio. Durante o processo de ingresso no domínio, o Microsoft Windows retornou a *mensagem* do código de erro. Verifique as configurações de rede e permissão e emita uma solicitação `modify-db-instance` para tentar ingressar no domínio novamente.  | Ao usar um Active Directory autogerenciado, consulte [Solução de problemas de Active Directory autogerenciado](USER_SQLServer_SelfManagedActiveDirectory.TroubleshootingSelfManagedActiveDirectory.md). | 
| falha | RDS-EVENT-0353 |  A instância de banco de dados não pode ser criada devido a limites insuficientes de recursos. *mensagem*.  |  A *mensagem* inclui detalhes sobre a falha.  | 
| falha | RDS-EVENT-0356 |  O RDS não conseguiu configurar o endpoint do Kerberos no domínio. Isso pode impedir a autenticação do Kerberos para a instância de banco de dados. Verifique a configuração de rede entre a instância de banco de dados e os controladores de domínio.  | Nenhum | 
| falha | RDS-EVENT-0418 | O Amazon RDS não consegue acessar a chave de criptografia KMS para a instância de banco de dados *nome*. Provavelmente, a chave está desabilitada ou o Amazon RDS não pode acessá-la. Se isso continuar, o banco de dados será colocado em um estado inacessível. Consulte a seção de solução de problemas na documentação do Amazon RDS para obter mais detalhes. | Nenhum | 
| falha | RDS-EVENT-0420 | Agora o Amazon RDS pode acessar com êxito a chave de criptografia KMS para a instância de banco de dados *nome*. | Nenhum | 
|  armazenamento baixo  | RDS-EVENT-0007 |  O armazenamento alocado foi esgotado. Aloque armazenamento adicional para resolver.  |  O armazenamento alocado para a instância de banco de dados foi consumido. Para resolver esse problema, aloque armazenamento adicional para a instância de banco de dados. Para ter mais informações, consulte [Perguntas frequentes do RDS](https://aws.amazon.com/rds/faqs). Você pode monitorar o espaço de armazenamento para uma instância de banco de dados usando a métrica **Free Storage Space (Espaço de armazenamento livre)**.  | 
|  armazenamento baixo  | RDS-EVENT-0089 |  A capacidade de armazenamento livre para instância de banco de dados: *nome* está baixa em *porcentagem* do armazenamento provisionado [Armazenamento provisionado: *tamanho*, armazenamento livre: *tamanho*]. Talvez você queira aumentar o armazenamento provisionado para resolver esse problema.  |  A instância de banco de dados consumiu mais de 90% do armazenamento alocado. Você pode monitorar o espaço de armazenamento para uma instância de banco de dados usando a métrica **Free Storage Space (Espaço de armazenamento livre)**.  | 
|  armazenamento baixo  | RDS-EVENT-0227 |  O armazenamento do cluster do Aurora está arriscadamente baixo, com apenas *quantidade* terabytes restantes. Tome medidas para reduzir a carga de armazenamento no cluster.  |  O subsistema de armazenamento do Aurora está com pouco espaço.  | 
|  manutenção  | RDS-EVENT-0026 |  Aplicação de patches off-line à instância de banco de dados.  |  Está ocorrendo a manutenção offline da instância de banco de dados. Atualmente, a instância do banco de dados está indisponível.  | 
|  manutenção  | RDS-EVENT-0027 |  Concluída a aplicação de patches off-line na instância de banco de dados.  |  A manutenção offline da instância de banco de dados está completa. A instância de banco de dados já está disponível.  | 
|  manutenção  | RDS-EVENT-0047 |  Instância de banco de dados corrigida.  | Nenhum | 
|  manutenção  | RDS-EVENT-0155 |  A instância de banco de dados tem uma atualização de versão secundária do mecanismo de banco de dados disponível.  | Nenhum | 
|  manutenção  | RDS-EVENT-0178 |  A atualização da instância do banco de dados está em andamento.  | Nenhum | 
|  manutenção  | RDS-EVENT-0264 |  A pré-verificação foi iniciada para a atualização da versão do mecanismo de banco de dados.  | Nenhum | 
|  manutenção  | RDS-EVENT-0265 |  A pré-verificação foi concluída para a atualização da versão do mecanismo de banco de dados.  | Nenhum | 
|  manutenção  | RDS-EVENT-0266 |  O tempo de inatividade da instância de banco de dados começou.  | Nenhum | 
|  manutenção  | RDS-EVENT-0267 |  A atualização da versão do mecanismo foi iniciada.  | Nenhum | 
|  manutenção  | RDS-EVENT-0268 |  A atualização da versão do mecanismo foi concluída. | Nenhum | 
|  manutenção  | RDS-EVENT-0269 |  As tarefas pós-atualização estão em andamento. | Nenhum | 
|  manutenção  | RDS-EVENT-0270 |  A atualização da versão do mecanismo de banco de dados falhou. A reversão da atualização da versão do mecanismo foi bem-sucedida. | Nenhum | 
|  manutenção  | RDS-EVENT-0398 |  Aguardando a conclusão da atualização da versão do mecanismo de banco de dados na instância de banco de dados primária. | Emitido em uma réplica de leitura durante uma atualização da versão principal do mecanismo. | 
|  manutenção  | RDS-EVENT-0399 |  Aguardando a conclusão da atualização da versão do mecanismo de banco de dados nas réplicas de leitura. | Emitido no mecanismo de banco de dados de origem durante uma atualização da versão principal do mecanismo. | 
|  manutenção  | RDS-EVENT-0422 |  O RDS substituirá o host da instância de banco de dados *nome* devido a uma ação de manutenção pendente. | Nenhum | 
|  manutenção, falha  | RDS-EVENT-0195 |  *message*  |  Falha na atualização do arquivo de fuso horário do Oracle. Para obter mais informações, consulte [Atualização automática do arquivo de fuso horário do Oracle](Appendix.Oracle.Options.Timezone-file-autoupgrade.md).  | 
|  manutenção, notificação  | RDS-EVENT-0191 |  Uma nova versão do arquivo de fuso horário está disponível para atualização.  |  Se você atualizar o mecanismo de banco de dados do RDS para Oracle, o Amazon RDS gerará esse evento se você não tiver escolhido uma atualização de arquivo de fuso horário e o banco de dados não usar o arquivo de fuso horário de verão mais recente disponível na instância. Para obter mais informações, consulte [Atualização automática do arquivo de fuso horário do Oracle](Appendix.Oracle.Options.Timezone-file-autoupgrade.md).  | 
|  manutenção, notificação  | RDS-EVENT-0192 |  A atualização do arquivo de fuso horário foi iniciada.  |  A atualização do arquivo de fuso horário do Oracle foi iniciada. Para ter mais informações, consulte [Atualização automática do arquivo de fuso horário do Oracle](Appendix.Oracle.Options.Timezone-file-autoupgrade.md).  | 
|  manutenção, notificação  | RDS-EVENT-0193 |  Nenhuma atualização está disponível para a versão atual do arquivo de fuso horário.  |  A instância de banco de dados Oracle está usando a versão mais recente do arquivo de fuso horário, e uma das seguintes afirmações é verdadeira: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/USER_Events.Messages.html) Para ter mais informações, consulte [Atualização automática do arquivo de fuso horário do Oracle](Appendix.Oracle.Options.Timezone-file-autoupgrade.md).  | 
|  manutenção, notificação  | RDS-EVENT-0194 |  A atualização do arquivo de fuso horário foi concluída.  |  A atualização do arquivo de fuso horário do Oracle foi concluída. Para obter mais informações, consulte [Atualização automática do arquivo de fuso horário do Oracle](Appendix.Oracle.Options.Timezone-file-autoupgrade.md).  | 
|  notificação  | RDS-EVENT-0044 |  *message*  | Essa é uma notificação emitida pelo operador. Para obter mais informações, consulte a mensagem do evento. | 
|  notificação  | RDS-EVENT-0048 |  Atraso na atualização do mecanismo de banco de dados, pois essa instância tem réplicas de leitura que precisam ser atualizadas primeiro.  | O patch da instância de banco de dados foi atrasado. | 
|  notificação  | RDS-EVENT-0054 |  *message*  | O mecanismo de armazenamento MySQL que você está usando não é o InnoDB, que é o mecanismo de armazenamento MySQL recomendado para o Amazon RDS. Para obter informações sobre os mecanismos de armazenamento do MySQL, consulte [Suporte aos mecanismos de armazenamento no RDS para MySQL](MySQL.Concepts.FeatureSupport.md#MySQL.Concepts.Storage). | 
|  notificação  | RDS-EVENT-0055 |  *message*  |  O número de tabelas existentes para a sua instância de banco de dados excede as práticas recomendadas recomendadas para o Amazon RDS. Reduza o número de tabelas na sua instância de banco de dados. Para obter informações sobre as práticas recomendadas, consulte [Diretrizes operacionais básicas do Amazon RDS](CHAP_BestPractices.md#CHAP_BestPractices.DiskPerformance).  | 
|  notificação  | RDS-EVENT-0056 |  *message*  |  O número de bancos de dados existentes para a sua instância de banco de dados excede as práticas recomendadas recomendadas para o Amazon RDS. Reduza o número de bancos de dados na sua instância de banco de dados. Para obter informações sobre as práticas recomendadas, consulte [Diretrizes operacionais básicas do Amazon RDS](CHAP_BestPractices.md#CHAP_BestPractices.DiskPerformance).  | 
|  notificação  | RDS-EVENT-0064 |  A chave de criptografia do TDE foi alternada com êxito.  | Para obter informações sobre as práticas recomendadas, consulte [Diretrizes operacionais básicas do Amazon RDS](CHAP_BestPractices.md#CHAP_BestPractices.DiskPerformance).  | 
|  notificação  | RDS-EVENT-0084 |  Não foi possível converter a instância de banco de dados em multi-AZ: *mensagem*.  |  Você tentou converter uma instância de banco de dados para multi-AZ, mas ela contém grupos de arquivos na memória que não têm suporte para multi-AZ. Para ter mais informações, consulte [Implantações multi-AZ para o Amazon RDS for Microsoft SQL Server](USER_SQLServerMultiAZ.md).   | 
|  notificação  | RDS-EVENT-0087 |  Instância de banco de dados foi interrompida.   | Nenhum | 
|  notificação  | RDS-EVENT-0088 |  A instância de banco de dados iniciou.  | Nenhum | 
|  notificação  | RDS-EVENT-0154 |  A instância de banco de dados está sendo iniciada porque excede o tempo máximo permitido para permanecer parada.  | Nenhum | 
|  notificação  | RDS-EVENT-0157 |  Não foi possível modificar a classe da instância de banco de dados. *mensagem*.  |  O RDS não pode modificar a classe de instância de banco de dados porque a classe de instância de destino não comporta o número de bancos de dados existentes na instância de banco de dados de origem. A mensagem de erro é exibida como: "A instância possui *N* bancos de dados, mas, após a conversão, comportaria apenas *N*". Para ter mais informações, consulte [Limitações das instâncias de banco de dados Microsoft SQL Server](CHAP_SQLServer.md#SQLServer.Concepts.General.FeatureSupport.Limits).  | 
|  notificação  | RDS-EVENT-0158 |  A instância de banco de dados está em um estado que não pode ser atualizado: *mensagem*.  | Nenhum | 
|  notificação  | RDS-EVENT-0167 |  *message*  |  A configuração do perímetro de suporte do RDS Custom mudou.  | 
|  notificação  | RDS-EVENT-0189 |  Os créditos de saldo de intermitência gp2 para a instância de banco de dados do RDS estão baixos. Para resolver o problema, reduza o uso de IOPS ou modifique as configurações de armazenamento para melhorar o desempenho.  |  Os créditos de saldo de intermitência gp2 para a instância de banco de dados do RDS estão baixos. Para resolver o problema, reduza o uso de IOPS ou modifique suas configurações de armazenamento para melhorar a performance. Para ter mais informações, consulte o tópico sobre [créditos de E/S e performance de intermitência](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html#EBSVolumeTypes_gp2), no *Guia do usuário do Amazon Elastic Compute Cloud*.  | 
|  notificação  | RDS-EVENT-0225 |  O tamanho do armazenamento de *valor* GB está se aproximando do limite máximo de armazenamento de *valor* GB. Aumente o limite máximo do armazenamento.  |  Esse evento é invocado quando o armazenamento atinge 80% do limite máximo de armazenamento. Para evitar o evento, aumente o limite máximo do armazenamento.  | 
|  notificação  | RDS-EVENT-0231 |  A modificação do armazenamento da instância de banco de dados encontrou um erro interno. A solicitação de modificação está pendente e será repetida posteriormente.  |  Ocorreu um erro no processo de replicação de leitura. Para ter mais informações, consulte a mensagem do evento. Além disso, consulte a seção de solução de problemas para réplicas de leitura para o mecanismo de banco de dados. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/USER_Events.Messages.html)  | 
|  notificação  | RDS-EVENT-0253 |  O banco de dados está usando o buffer de gravação dupla. *mensagem*. Para obter mais informações, consulte a documentação sobre gravações otimizadas do RDS para *nome*.  | As gravações otimizadas pelo RDS são incompatíveis com a configuração de armazenamento da instância. Para obter mais informações, consulte [Melhorar a performance das gravações com gravações otimizadas pelo RDS para MySQL](rds-optimized-writes.md) e [Melhorar a performance das gravações com gravações otimizadas pelo Amazon RDS para MariaDB](rds-optimized-writes-mariadb.md). Você pode realizar a atualização da configuração de armazenamento para habilitar gravações otimizadas [criando uma implantação azul/verde](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments-creating.html). | 
|  notificação  | RDS-EVENT-0237 |  A configuração de armazenamento para o *nome* da instância de banco de dados suporta um tamanho máximo de 16384 GiB. Execute uma atualização da configuração de armazenamento para suportar tamanhos de armazenamento maiores que 16384 GiB.  | Você não pode aumentar o tamanho de armazenamento alocado da instância de banco de dados além de 16384 GiB. Para superar essa limitação, realize um upgrade da configuração de armazenamento. Para ter mais informações, consulte [Atualizando o sistema de arquivos de armazenamento para uma instância de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.UpgradeFileSystem).  | 
|  notificação  | RDS-EVENT-0237 |  A configuração de armazenamento para o *nome* da instância de banco de dados suporta um tamanho máximo de tabela de 2048 GiB. Execute uma atualização da configuração de armazenamento para suportar tamanhos de tabela maiores que 2048 GiB.  | As instâncias RDS MySQL e MariaDB com essa limitação não podem ter um tamanho de tabela superior a 2048 GiB. Para superar essa limitação, realize um upgrade da configuração de armazenamento. Para ter mais informações, consulte [Atualizando o sistema de arquivos de armazenamento para uma instância de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.UpgradeFileSystem).  | 
|  notificação  | RDS-EVENT-0327 |  *Mensagem*. O Amazon RDS não conseguiu encontrar o segredo *ARN DO SEGREDO*.  | Nenhum | 
|  notificação  | RDS-EVENT-0365 |  Os arquivos de fuso horário foram atualizados. Reinicie a instância do RDS para que as alterações entrem em vigor.  | Nenhum | 
|  notificação  | RDS-EVENT-0385 |  A topologia do cluster é atualizada.  |  Há alterações de DNS no cluster de banco de dados para a instância de banco de dados. Isso inclui quando novas instâncias de banco de dados são adicionadas ou excluídas, ou quando há um failover.  | 
|  notificação  | RDS-EVENT-0403 |  Um workload do banco de dados está fazendo com que o sistema fique criticamente com pouca memória. Para ajudar a resolver o problema, o RDS definiu automaticamente o valor de innodb\$1buffer\$1pool\$1size como *amount*.  |  Aplica-se somente às instâncias de banco de dados do RDS para MySQL e RDS para MariaDB.  | 
|  notificação  | RDS-EVENT-0404 |  Um workload do banco de dados está fazendo com que o sistema fique criticamente com pouca memória. Para ajudar a resolver o problema, o RDS definiu automaticamente o valor de shared\$1buffers como *amount*.  |  Aplica-se somente a instâncias de banco de dados do RDS para PostgreSQL.  | 
|  réplica de leitura  | RDS-EVENT-0045 |  A replicação foi interrompida.  |  Essa mensagem é exibida quando ocorre um erro durante a replicação. Para determinar o tipo de erro, consulte [Solucionar problemas de uma réplica de leitura do MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.Troubleshooting.html).  | 
|  réplica de leitura  | RDS-EVENT-0046 |  A réplica de leitura foi retomada.  | Essa mensagem aparece quando você cria uma réplica de leitura pela primeira vez, ou como uma mensagem de monitoramento confirmando que a replicação está funcionando corretamente. Se essa mensagem vem depois de uma notificação `RDS-EVENT-0045`, a replicação foi retomada após um erro ou depois que a replicação foi interrompida. | 
|  réplica de leitura  | RDS-EVENT-0057 |  O streaming de replicação foi encerrado.  | Nenhum | 
|  réplica de leitura  | RDS-EVENT-0062 |  A replicação na réplica de leitura foi interrompida manualmente.  | Nenhum | 
|  réplica de leitura  | RDS-EVENT-0063 |  A replicação de uma instância que não é do RDS foi redefinida.  | Nenhum | 
|  réplica de leitura  | RDS-EVENT-0202 |  Falha na criação da réplica de leitura.  | Nenhum | 
|  réplica de leitura  | RDS-EVENT-0233 |  A transição para a réplica de leitura foi iniciada.  | Nenhum | 
|  réplica de leitura  | RDS-EVENT-0357 |  O *nome* do canal de replicação foi iniciado.  | Para ter informações sobre canais de replicação, consulte [Configurar a replicação de várias fontes do Amazon RDS para MySQL](mysql-multi-source-replication.md). | 
|  réplica de leitura  | RDS-EVENT-0358 |  O *nome* do canal de replicação foi interrompido.  | Para ter informações sobre canais de replicação, consulte [Configurar a replicação de várias fontes do Amazon RDS para MySQL](mysql-multi-source-replication.md). | 
|  réplica de leitura  | RDS-EVENT-0359 |  O *nome* do canal de replicação foi interrompido manualmente.  | Para ter informações sobre canais de replicação, consulte [Configurar a replicação de várias fontes do Amazon RDS para MySQL](mysql-multi-source-replication.md). | 
|  réplica de leitura  | RDS-EVENT-0360 |  O *nome* do canal de replicação foi redefinido.  | Para ter informações sobre canais de replicação, consulte [Configurar a replicação de várias fontes do Amazon RDS para MySQL](mysql-multi-source-replication.md). | 
|  réplica de leitura  | RDS-EVENT-0415 |  O processo de atualização retomou a replicação na réplica de leitura.  | Nenhum | 
|  réplica de leitura  | RDS-EVENT-0416 |  O processo de atualização interrompeu a replicação na réplica de leitura.  | Nenhum | 
|  recuperação  | RDS-EVENT-0020 |  A recuperação da instância de banco de dados começou. O tempo de recuperação variará dependendo da quantidade de dados a serem recuperados.  | Nenhum | 
|  recuperação  | RDS-EVENT-0021 |  A recuperação da instância de banco de dados está completa.  | Nenhum | 
|  recuperação  | RDS-EVENT-0023 |  Solicitação de snapshot emergente: *mensagem*.  |  Um backup manual foi solicitado, mas o Amazon RDS está no processo de criar um snapshot de banco de dados. Envie o pedido novamente depois que o Amazon RDS tiver concluído o snapshot de banco de dados.  | 
|  recuperação  | RDS-EVENT-0052 |  A recuperação da instância multi-AZ foi iniciada.  | O tempo de recuperação variará dependendo da quantidade de dados a serem recuperados. | 
|  recuperação  | RDS-EVENT-0053 |  A recuperação da instância multi-AZ foi concluída. Failover ou ativação pendentes.  | Essa mensagem indica que o Amazon RDS preparou a instância de banco de dados para iniciar um failover para a instância secundária, se necessário. | 
|  recuperação  | RDS-EVENT-0066 |  A instância será degradada enquanto o espelhamento for restabelecido: *mensagem*.  |  A instância de banco de dados do SQL Server está restabelecendo seu espelho. O performance será degradado até o espelho ser restabelecido. Um banco de dados foi encontrado com o modelo de recuperação não FULL. O modelo de recuperação foi alterado de volta para FULL, e a recuperação de espelhamento foi iniciada. (<dbname>: <modelo de recuperação encontrado>[,…])"  | 
|  recuperação  | RDS-EVENT-0166 |  *message*  |  A instância de banco de dados do RDS Custom está dentro do perímetro de suporte.  | 
|  recuperação  | RDS-EVENT-0361 |  A recuperação da instância de banco de dados em espera começou.  |  A instância de banco de dados em espera é recriada durante o processo de recuperação. O desempenho do banco de dados é afetado durante o processo de recuperação.  | 
|  recuperação  | RDS-EVENT-0362 |  A recuperação da instância de banco de dados em espera foi concluída.  |  A instância de banco de dados em espera é recriada durante o processo de recuperação. O desempenho do banco de dados é afetado durante o processo de recuperação.  | 
|  restauração  | RDS-EVENT-0019 |  Restauração da instância de banco de dados *nome* para *nome*.  |  A instância de banco de dados foi restaurada a partir de um backup point-in-time.  | 
|  segurança  | RDS-EVENT-0068 |  Descriptografando a senha da partição hsm para atualizar a instância.  |  O RDS está descriptografando a senha da partição do AWS CloudHSM para fazer atualizações na instância de banco de dados. Para obter mais informações, consulte [Oracle Database Transparent Data Encryption (TDE) com o AWS CloudHSM](https://docs.aws.amazon.com/cloudhsm/latest/userguide/oracle-tde.html), no *Guia do usuário do AWS CloudHSM*.  | 
|  patches de segurança  | RDS-EVENT-0230 |  A atualização do sistema está disponível para a instância de banco de dados. Para obter informações sobre como aplicar atualizações, consulte “Como manter uma instância de banco de dados” no Guia do usuário do RDS.  |  Uma nova atualização do sistema operacional está disponível. Uma nova atualização de versão secundária do sistema operacional está disponível para sua instância de banco de dados. Para obter informações sobre a aplicação de atualizações, consulte [Atualizações do sistema operacional para instâncias de banco de dados do RDS](USER_UpgradeDBInstance.Maintenance.md#OS_Updates).  | 
|  manutenção  | RDS-EVENT-0425 |  O Amazon RDS não pode realizar a atualização do sistema operacional porque não há endereços IP disponíveis nas sub-redes especificadas. Escolha sub-redes com endereços IP disponíveis e tente novamente.  |  Nenhum  | 
|  manutenção  | RDS-EVENT-0429 |  O Amazon RDS não pode realizar a atualização do sistema operacional porque não há capacidade suficiente disponível para o tipo de instância *type* instância na zona de disponibilidade *zone*.  |  Nenhum  | 
|  manutenção  | RDS-EVENT-0501 |  O certificado de servidor da instância de banco de dados do Amazon RDS exige a alternância por meio de uma ação de manutenção pendente.  |  O certificado de servidor da instância de banco de dados exige a alternância por meio de uma ação de manutenção pendente. O Amazon RDS reinicializa seu banco de dados durante essa manutenção para concluir a alternância do certificado. Para programar essa manutenção, vá até a guia **Manutenção e backups** e escolha **Aplicar agora** ou **Agendar para a próxima janela de manutenção**. Se a alteração não for programada, o Amazon RDS a aplicará automaticamente em sua janela de manutenção na data de aplicação automática mostrada em sua ação de manutenção.  | 
|  manutenção  | RDS-EVENT-0502 |  O Amazon RDS programou uma alternância de certificados de servidor para a instância de banco de dados durante a próxima janela de manutenção. Essa manutenção exigirá a reinicialização do banco de dados.  |  Nenhum  | 

## Eventos de grupo de parâmetros de banco de dados
<a name="USER_Events.Messages.parameter-group"></a>

A tabela a seguir mostra a categoria de evento e uma lista de eventos quando um grupo de parâmetros de banco de dados é o tipo de origem.


|  Categoria  | ID do evento do RDS |  Mensagem  |  Observações  | 
| --- | --- | --- | --- | 
|  alteração de configuração  | RDS-EVENT-0037 |  Atualização do parâmetro *name* para *value* pelo método de aplicação *method*.   |  Nenhum  | 

## Eventos de grupos de segurança de banco de dados
<a name="USER_Events.Messages.security-group"></a>

A tabela a seguir mostra a categoria de evento e uma lista de eventos quando um grupo de segurança de banco de dados é o tipo de origem.

**nota**  
Grupos de segurança de banco de dados são recursos do EC2-Classic. O EC2-Classic foi removido em 15 de agosto de 2022. Se ainda não migrou do EC2-Classic para uma VPC, recomendamos que você migre o mais rápido possível. Para ter mais informações, consulte [Migrate from EC2-Classic to a VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) (Migrar do EC2-Classic para uma VPC) no *Guia do usuário do Amazon EC2* e o blog [EC2-Classic Networking is Retiring – Here’s How to Prepare](https://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/) (O EC2-Classic Networking será descontinuado. Veja como se preparar).


|  Categoria  | ID do evento do RDS |  Mensagem  |  Observações  | 
| --- | --- | --- | --- | 
|  alteração de configuração  | RDS-EVENT-0038 |  Alteração aplicada ao grupo de segurança.  |  Nenhum  | 
|  falha  | RDS-EVENT-0039 |  Revogando a autorização como *usuário*.  |  O grupo de segurança de propriedade de *usuário* não existe. A autorização para o grupo de segurança foi revogada porque é inválida.  | 

## Eventos de snapshot de banco de dados
<a name="USER_Events.Messages.snapshot"></a>

A tabela a seguir mostra a categoria de evento e uma lista de eventos quando um snapshot de banco de dados é o tipo de origem.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/USER_Events.Messages.html)

## Eventos do RDS Proxy
<a name="USER_Events.Messages.rds-proxy"></a>

As tabelas a seguir mostram a categoria de evento e uma lista de eventos quando um proxy do RDS é o tipo de fonte.


|  Categoria  | ID do evento do RDS |  Mensagem  |  Observações  | 
| --- | --- | --- | --- | 
| alteração de configuração | RDS-EVENT-0204 |  Proxy de banco de dados *nome* modificado pelo RDS.  | Nenhum | 
| alteração de configuração | RDS-EVENT-0207 |  O RDS modificou o endpoint do proxy de banco de dados *nome*.  | Nenhum | 
| alteração de configuração | RDS-EVENT-0213 |  O RDS detectou a adição da instância de banco de dados e a adicionou automaticamente ao grupo de destino do *nome* do proxy de banco de dados.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0214 |  O RDS detectou a exclusão da instância de banco de dados *nome* e a removeu automaticamente do grupo de destino *nome* do proxy de banco de dados *nome*.  | Nenhum | 
|  alteração de configuração  | RDS-EVENT-0215 |  O RDS detectou a exclusão do cluster de banco de dados *nome* e o removeu automaticamente do grupo de destino *nome* do proxy de banco de dados *nome*.  | Nenhum | 
|  criação  | RDS-EVENT-0203 |  O RDS criou o proxy de banco de dados *nome*.  | Nenhum | 
|  criação  | RDS-EVENT-0206 |  O RDS criou o endpoint para *nome* para o proxy do banco de dados *nome*.  | Nenhum | 
| exclusão | RDS-EVENT-0205 |  O RDS excluiu o proxy do banco de dados *nome*.  | Nenhum | 
|  exclusão  | RDS-EVENT-0208 |  O RDS excluiu o endpoint *nome* para o proxy do banco de dados *nome*.  | Nenhum | 
|  falha  | RDS-EVENT-0243 |  O RDS não conseguiu provisionar capacidade para o *nome* do proxy porque não há endereços IP suficientes disponíveis em suas sub-redes: *nome*. Para resolver o problema, as sub-redes devem ter o número mínimo de endereços IP não usados, conforme recomendado na documentação do proxy do RDS.  |  Para determinar o número recomendado para sua classe de instância, consulte [Planejar a capacidade de endereços IP](rds-proxy-network-prereqs.md#rds-proxy-network-prereqs.plan-ip-address).  | 
|  falha | RDS-EVENT-0275 |  O RDS limitou algumas conexões com o proxy de banco de dados *nome*. O número de solicitações de conexão simultâneas do cliente para o proxy excedeu o limite.  | Nenhum | 

## Eventos de implantação azul/verde
<a name="USER_Events.Messages.BlueGreenDeployments"></a>

A tabela a seguir mostra a categoria de evento e uma lista de eventos quando uma implantação azul/verde é o tipo de origem.

Para ter mais informações sobre implantações azul/verde, consulte [Usar implantações azul/verde do Amazon RDS para atualizações de banco de dados](blue-green-deployments.md).


|  Categoria  | ID do evento do Amazon RDS |  Mensagem  |  Observações  | 
| --- | --- | --- | --- | 
|  criação  | RDS-EVENT-0244 |  Tarefas de implantação azul/verde concluídas. Você pode fazer outras modificações nos bancos de dados no ambiente verde ou fazer a transição da implantação.  | Nenhum | 
|  falha  | RDS-EVENT-0245 |  Falha na criação da implantação azul/verde devido a *reason*.  | Nenhum | 
|  exclusão  | RDS-EVENT-0246 |  Implantação azul/verde excluída.  | Nenhum | 
|  notificação  | RDS-EVENT-0247 |  A transição do *azul* para o *verde* começou.  | Nenhum | 
|  notificação  | RDS-EVENT-0248 |  Transição concluída na implantação azul/verde.  | Nenhum | 
|  falha  | RDS-EVENT-0249 |  Transição cancelada na implantação azul/verde.  | Nenhum | 
|  notificação  | RDS-EVENT-0250  |  A transição da réplica primária/de leitura *azul* para *verde* foi iniciada.  | Nenhum | 
|  notificação  | RDS-EVENT-0251  |  A transição da réplica de leitura/primária *azul* para *verde* foi concluída. *Renomeado de *azul* para *azul-antigo* e *verde* para azul.*  | Nenhum | 
|  falha  | RDS-EVENT-0252  |  *A transição do de dados de réplica primária/de leitura *azul* para *verde* foi cancelada por um motivo.*  | Nenhum | 
|  notificação  | RDS-EVENT-0307  |  A sincronização de sequência para alternância do *azul* para *verde foi iniciada*. A alternância ao usar sequências pode levar a um tempo de inatividade prolongado.  | Nenhum | 
|  notificação  | RDS-EVENT-0308  |  A sincronização de sequência para alternância do *azul* para *verde foi concluída*.  | Nenhum | 
|  falha  | RDS-EVENT-0310  |  A sincronização de sequência para alternância do *azul* para *verde* foi cancelada porque as sequências falharam na sincronização.  | Nenhum | 
| notificação | RDS-EVENT-0405 |  Seus volumes de armazenamento estão sendo inicializados.  |  Nenhum  | 
| notificação | RDS-EVENT-0406 |  Seus volumes de armazenamento foram inicializados.  |  Nenhum  | 
|  notificação  | RDS-EVENT-0409  |  *message*  | Nenhum | 

## Eventos de versão de mecanismos personalizados
<a name="USER_Events.Messages.CEV"></a>

A tabela a seguir mostra a categoria de evento e uma lista de eventos quando a versão de um mecanismo personalizado é o tipo de fonte.


|  Categoria  | ID do evento do Amazon RDS |  Mensagem  |  Observações  | 
| --- | --- | --- | --- | 
|  criação  | RDS-EVENT-0237 |  Preparando-se para criar um *nome* de versão do mecanismo personalizado. Todo o processo de criação pode levar até quatro horas para ser concluído.  | Nenhum | 
|  criação  | RDS-EVENT-0237 |  Criação de *nome* de versão de mecanismo personalizado.  | Nenhum | 
|  criação  | RDS-EVENT-0237 |  Validando o *nome* da versão do mecanismo personalizado.  | Nenhum | 
|  criação  | RDS-EVENT-0237 |  O *nome da versão do* mecanismo personalizado foi criado com sucesso.  | Nenhum | 
|  criação  | RDS-EVENT-0237 |  O RDS não pode criar um *nome* de versão de mecanismo personalizado devido a um problema interno. Estamos resolvendo o problema e entraremos em contato com você, se necessário. Para obter mais assistência, entre em contato com o [Suporte AWS Premium/](https://console.aws.amazon.com/support/).  | Nenhum | 
|  falha  | RDS-EVENT-0198 |  Falha ao criar a versão do mecanismo personalizado *nome*. *mensagem*  | A *mensagem* inclui detalhes sobre a falha, como arquivos ausentes. | 
|  falha  | RDS-EVENT-0277 |  Falha durante a exclusão da versão do mecanismo personalizado *nome*. *mensagem*  | A *mensagem* inclui detalhes sobre a falha. | 
|  restaurar  | RDS-EVENT-0352 |  A contagem máxima de banco de dados compatível para restauração para um ponto no tempo foi alterada.  | A *mensagem* inclui detalhes sobre o evento. | 

# Monitorar arquivos de log do Amazon RDS
<a name="USER_LogAccess"></a>

Cada mecanismo de banco de dados do RDS gera logs que você pode acessar para auditoria e solução de problemas. O tipo dos logs depende do mecanismo do banco de dados.

É possível acessar os logs de banco de dados para instâncias de banco de dados usando o Console de gerenciamento da AWS, a AWS Command Line Interface (AWS CLI) ou a API do Amazon RDS. Você não pode visualizar, nem monitorar, nem baixar logs de transações.

**Topics**
+ [Como visualizar e listar arquivos de log do banco de dados](USER_LogAccess.Procedural.Viewing.md)
+ [Como baixar um arquivo de log de banco de dados](USER_LogAccess.Procedural.Downloading.md)
+ [Como observar um arquivo de log de banco de dados](USER_LogAccess.Procedural.Watching.md)
+ [Publicação de logs de banco de dados no Amazon CloudWatch Logs](USER_LogAccess.Procedural.UploadtoCloudWatch.md)
+ [Leitura do conteúdo de arquivos de log usando REST](DownloadCompleteDBLogFile.md)
+ [Arquivos de log do banco de dados do Amazon RDS para Db2](USER_LogAccess.Concepts.Db2.md)
+ [Arquivos de log do banco de dados MariaDB](USER_LogAccess.Concepts.MariaDB.md)
+ [Arquivos de log do banco de dados do Amazon RDS para Microsoft SQL Server](USER_LogAccess.Concepts.SQLServer.md)
+ [Arquivos de log do banco de dados MySQL](USER_LogAccess.Concepts.MySQL.md)
+ [Arquivos de log do banco de dados do Amazon RDS para Oracle](USER_LogAccess.Concepts.Oracle.md)
+ [Arquivos de log do banco de dados RDS para PostgreSQL](USER_LogAccess.Concepts.PostgreSQL.md)

# Como visualizar e listar arquivos de log do banco de dados
<a name="USER_LogAccess.Procedural.Viewing"></a>

É possível visualizar arquivos de log de banco de dados do mecanismo de banco de dados do Amazon RDS usando o Console de gerenciamento da AWS. Você pode listar quais arquivos de log estão disponíveis para download ou monitoramento usando a AWS CLI ou a API do Amazon RDS. 

**nota**  
Se você não encontrar a lista de arquivos de log para uma instância de banco de dados existente do RDS for Oracle, reinicie a instância para visualizar a lista. 

## Console
<a name="USER_LogAccess.CON"></a>

**Para visualizar um arquivo de log de banco de dados**

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)**.

1. Escolha o nome da instância de banco de dados que contém o arquivo de log que você deseja visualizar.

1. Escolha a guia **Logs & events (Logs e eventos)**.

1. Role para baixo até a seção **Logs**.

1. (Opcional) Insira um termo de pesquisa para filtrar seus resultados.

1. Escolha o log que você deseja visualizar e, depois, **View** (Visualizar).

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

Para listar os arquivos de log do banco de dados disponíveis para uma instância de banco de dados, use o comando [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-log-files.html) da `describe-db-log-files`.

O exemplo a seguir retorna uma lista de arquivos de log para uma instância de banco de dados chamada `my-db-instance`.

**Example**  

```
1. aws rds describe-db-log-files --db-instance-identifier my-db-instance
```

## API do RDS
<a name="USER_LogAccess.API"></a>

Para listar os arquivos de log disponíveis do banco de dados para uma instância de banco de dados, use a ação [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html) da API do Amazon RDS.

# Como baixar um arquivo de log de banco de dados
<a name="USER_LogAccess.Procedural.Downloading"></a>

É possível usar o Console de gerenciamento da AWS, a AWS CLI ou a API para baixar um arquivo de log de banco de dados. 

## Console
<a name="USER_LogAccess.Procedural.Downloading.CON"></a>

**Para baixar um arquivo de log de banco de dados**

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)**.

1. Escolha o nome da instância de banco de dados que contém o arquivo de log que você deseja visualizar.

1. Escolha a guia **Logs & events (Logs e eventos)**.

1. Role para baixo até a seção **Logs**. 

1. Na seção **Logs**, escolha o botão próximo ao log do qual você deseja baixar e escolha **Download**.

1. Abra o menu de contexto (clique com o botão direito do mouse) para o link fornecido e escolha **Save Link As (Salvar link como)**. Informe o local onde você deseja salvar o arquivo de log e escolha **Save (Salvar)**.  
![\[como visualizar arquivos de log\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/log_download2.png)

## AWS CLI
<a name="USER_LogAccess.Procedural.Downloading.CLI"></a>

Para baixar um arquivo de log de banco de dados, use o comando [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/rds/download-db-log-file-portion.html) da `download-db-log-file-portion`. Por padrão, esse comando baixa apenas da parte mais recente de um arquivo de log. No entanto, baixe um arquivo inteiro especificando o parâmetro `--starting-token 0`.

O exemplo a seguir mostra como baixar o conteúdo inteiro de um arquivo de log denominado *log/ERROR.4* e armazená-lo em um arquivo local denominado *errorlog.txt*.

**Example**  
Para Linux, macOS ou Unix:  

```
1. aws rds download-db-log-file-portion \
2.     --db-instance-identifier myexampledb \
3.     --starting-token 0 --output text \
4.     --log-file-name log/ERROR.4 > errorlog.txt
```
Para Windows:  

```
1. aws rds download-db-log-file-portion ^
2.     --db-instance-identifier myexampledb ^
3.     --starting-token 0 --output text ^
4.     --log-file-name log/ERROR.4 > errorlog.txt
```

## API do RDS
<a name="USER_LogAccess.Procedural.Downloading.API"></a>

Para baixar um arquivo de log de banco de dados, use a ação [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DownloadDBLogFilePortion.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DownloadDBLogFilePortion.html) da API do Amazon RDS.

# Como observar um arquivo de log de banco de dados
<a name="USER_LogAccess.Procedural.Watching"></a>

Observar um arquivo de log do banco de dados é equivalente a seguir o arquivo em um sistema UNIX ou Linux. É possível monitorar um arquivo de log usando o Console de gerenciamento da AWS. O RDS atualiza o final do log a cada 5 segundos.

**Para observar um arquivo de log de banco de dados**

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)**.

1. Escolha o nome da instância de banco de dados que contém o arquivo de log que você deseja visualizar.

1. Escolha a guia **Logs & events (Logs e eventos)**.  
![\[Escolha a guia Logs & events (Logs e eventos)\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Monitoring_logsEvents.png)

1. Na seção **Logs**, escolha um arquivo de log e **Watch (Observar)**.  
![\[Escolha um log\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Monitoring_LogsEvents_watch.png)

   O RDS mostra o final do log, como no exemplo do MySQL a seguir.  
![\[Final de um arquivo de log\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/Monitoring_LogsEvents_watch_content.png)

# Publicação de logs de banco de dados no Amazon CloudWatch Logs
<a name="USER_LogAccess.Procedural.UploadtoCloudWatch"></a>

Em um banco de dados local, os registros do banco de dados residem no sistema de arquivos. O Amazon RDS não fornece acesso ao host para os logs de banco de dados no sistema de arquivos de sua instância de banco de dados. Por esse motivo, o Amazon RDS permite exportar logs de banco de dados para o [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html). Com o CloudWatch Logs, você pode realizar análise em tempo real de dados de log. Você também pode armazenar os dados em um armazenamento resiliente e gerenciar os dados com o agente do CloudWatch Logs. 

**Topics**
+ [Visão geral da integração do RDS com o CloudWatch Logs](#rds-integration-cw-logs)
+ [Decidir quais logs publicar no CloudWatch Logs](#engine-specific-logs)
+ [Especificar logs para publicar no CloudWatch Logs](#integrating_cloudwatchlogs.configure)
+ [Pesquisar e filtrar logs no CloudWatch Logs](#accessing-logs-in-cloudwatch)

## Visão geral da integração do RDS com o CloudWatch Logs
<a name="rds-integration-cw-logs"></a>

No CloudWatch Logs, um *fluxo de logs* é uma sequência de eventos de logs que compartilham a mesma origem. Cada origem separada de logs no CloudWatch Logs compõe um fluxo de logs separado. Um *grupo de logs* é um grupo de fluxos de log que compartilham as mesmas configurações de retenção, monitoramento e controle de acesso.

O Amazon RDS transmite continuamente os registros de logs de sua instância de banco de dados para um grupo de logs. Por exemplo, suponhamos que você tem um grupo de logs `/aws/rds/instance/instance_name/log_type` para cada tipo de log que publica. Esse grupo de logs está na mesma região da AWS que a instância de banco de dados que gera o log.

A AWS retém os dados de log publicados no CloudWatch Logs por um período indefinido, a menos que você especifique um período de retenção. Para obter mais informações, consulte [Alterar a retenção de dados de log no CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention). 

## Decidir quais logs publicar no CloudWatch Logs
<a name="engine-specific-logs"></a>

Cada mecanismo de banco de dados do RDS oferece suporte ao seu próprio conjunto de logs. Para saber mais sobre as opções do seu mecanismo de banco de dados, consulte os seguintes tópicos:
+ [Publicação de logs do Db2 no Amazon CloudWatch Logs](USER_LogAccess.Concepts.Db2.md#USER_LogAccess.Db2.PublishtoCloudWatchLogs)
+ [Publicar logs do MariaDB no Amazon CloudWatch Logs](USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.md)
+ [Publicação de logs do MySQL no Amazon CloudWatch Logs](USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs.md)
+ [Publicação de logs da Oracle no Amazon CloudWatch Logs](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Oracle.PublishtoCloudWatchLogs)
+ [Publicação de logs do PostgreSQL no Amazon CloudWatch Logs](USER_LogAccess.Concepts.PostgreSQL.md#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs)
+ [Publicar logs do SQL Server no Amazon CloudWatch Logs](USER_LogAccess.Concepts.SQLServer.md#USER_LogAccess.SQLServer.PublishtoCloudWatchLogs)

## Especificar logs para publicar no CloudWatch Logs
<a name="integrating_cloudwatchlogs.configure"></a>

Você especifica quais logs deseja publicar no console. Verifique se você tem um perfil vinculado ao serviço no AWS Identity and Access Management (IAM). Para obter mais informações sobre funções vinculadas ao serviço, consulte [Usar funções vinculadas ao serviço do Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md).

**Como especificar os logs que deseja publicar**

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)**.

1. Realize um dos procedimentos a seguir:
   + Selecione **Criar banco de dados**.
   + Escolha um banco de dados da lista e selecione **Modify** (Modificar).

1. Em **Logs exports** (Exportações de logs), escolha os logs para publicar.

   O exemplo a seguir especifica o log de auditoria, os logs de erros, o log geral e o log de consultas lentas de uma instância de banco de dados do RDS para MySQL.  
![\[Escolher logs para publicar no CloudWatch Logs\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/AddCWLogs.png)

## Pesquisar e filtrar logs no CloudWatch Logs
<a name="accessing-logs-in-cloudwatch"></a>

Você pode procurar entradas de log que atendam a critérios especificados usando o console do CloudWatch Logs. Você pode acessar os logs por meio do console do RDS, que leva você ao console do CloudWatch Logs, ou diretamente do console do CloudWatch Logs.

**Como pesquisar logs do RDS usando o console do RDS**

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)**.

1. Escolha um instância de banco de dados.

1. Escolher **configuração**.

1. Em **Published logs** (Logs publicados), escolha o log de banco de dados que deseja exibir.

**Como pesquisar logs do RDS usando o console do CloudWatch Logs**

1. Abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, escolha **Grupos de logs**.

1. Na caixa de filtro, insira **/aws/rds**.

1. Em **Grupos de logs**, escolha o nome do grupo de logs que contém o fluxo de log a ser pesquisado.

1. Em **Fluxos de log**, escolha o nome do fluxo de log para pesquisa.

1. Em **Eventos de log**, insira a sintaxe do filtro a ser usada.

Para obter mais informações, consulte [Pesquisar e filtrar dados de logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html) no *Guia do usuário do Amazon CloudWatch Logs*. Para acessar um tutorial de blog explicando como monitorar logs do RDS, consulte [Criar monitoramento de banco de dados proativo para o Amazon RDS com o Amazon CloudWatch Logs, o AWS Lambda e o Amazon SNS](https://aws.amazon.com/blogs/database/build-proactive-database-monitoring-for-amazon-rds-with-amazon-cloudwatch-logs-aws-lambda-and-amazon-sns/).

# Leitura do conteúdo de arquivos de log usando REST
<a name="DownloadCompleteDBLogFile"></a>

O Amazon RDS fornece um endpoint REST que permite acesso aos arquivos de log de instâncias de banco de dados. Isso é útil para gravar uma aplicação para transmitir o conteúdo do arquivo de log do Amazon RDS.

A sintaxe é:

```
GET /v13/downloadCompleteLogFile/DBInstanceIdentifier/LogFileName HTTP/1.1
Content-type: application/json
host: rds.region.amazonaws.com
```

Os seguintes parâmetros são obrigatórios:
+ `DBInstanceIdentifier`: o nome da instância de banco de dados que contém o arquivo de log do qual você deseja baixar.
+ `LogFileName`: o nome do arquivo de log que será baixado.

A resposta contém o conteúdo do arquivo de log solicitado, como um fluxo.

O exemplo a seguir baixa o arquivo de log chamado *log/ERROR.6* para a instância de banco de dados chamada *sample-sql* na região *us-west-2*.

```
GET /v13/downloadCompleteLogFile/sample-sql/log/ERROR.6 HTTP/1.1
host: rds.us-west-2.amazonaws.com
X-Amz-Security-Token: AQoDYXdzEIH//////////wEa0AIXLhngC5zp9CyB1R6abwKrXHVR5efnAVN3XvR7IwqKYalFSn6UyJuEFTft9nObglx4QJ+GXV9cpACkETq=
X-Amz-Date: 20140903T233749Z
X-Amz-Algorithm: AWS4-HMAC-SHA256
X-Amz-Credential: AKIADQKE4SARGYLE/20140903/us-west-2/rds/aws4_request
X-Amz-SignedHeaders: host
X-Amz-Content-SHA256: e3b0c44298fc1c229afbf4c8996fb92427ae41e4649b934de495991b7852b855
X-Amz-Expires: 86400
X-Amz-Signature: 353a4f14b3f250142d9afc34f9f9948154d46ce7d4ec091d0cdabbcf8b40c558
```

Se você especificar uma instância de banco de dados não existente, a resposta consistirá no erro a seguir:
+ `DBInstanceNotFound`: `DBInstanceIdentifier` não se refere a uma instância de banco de dados existente. (Código de status HTTP: 404)

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

Você pode acessar logs de diagnóstico e logs de notificação do RDS para Db2 usando o console do Amazon RDS, a AWS CLI ou a API do 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).

**Topics**
+ [Cronograma de retenção](#USER_LogAccess.Concepts.Db2.Retention)
+ [Publicação de logs do Db2 no Amazon CloudWatch Logs](#USER_LogAccess.Db2.PublishtoCloudWatchLogs)

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

Os arquivos de log são revezados a cada dia e sempre que sua instância de banco de dados for reiniciada. A seguir você encontra o cronograma de retenção para logs do RDS para Db2 no Amazon RDS. 


****  

| Tipo de log | Cronograma de retenção | 
| --- | --- | 
|  Logs de diagnóstico  |  O Db2 exclui logs fora das configurações de retenção na configuração no nível da instância. O Amazon RDS define o parâmetro `diagsize` como 1000.  | 
|  Logs de notificação  |  O Db2 exclui logs fora das configurações de retenção na configuração no nível da instância. O Amazon RDS define o parâmetro `diagsize` como 1000.  | 

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

Com o RDS para Db2, você pode publicar eventos de logs de diagnóstico e de notificação diretamente no Amazon CloudWatch Logs. Analise os dados de logs com o CloudWatch Logs e depois use o CloudWatch para criar alarmes e visualizar métricas.

Com o CloudWatch Logs, você pode fazer o seguinte:
+ Armazene os logs em um espaço de armazenamento resiliente e com um período de retenção definido por você.
+ Pesquisar e filtrar dados de log.
+ Compartilhar dados de log entre contas.
+ Exportar logs para o Amazon S3.
+ Faça uma transmissão de dados para o Amazon OpenSearch Service.
+ Processar dados de log em tempo real com o Amazon Kinesis Data Streams. Para obter mais informações, consulte [Trabalhando com o Amazon CloudWatch Logs](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html), no *Guia do desenvolvedor do Amazon Kinesis Data Analytics para aplicativos SQL*.

 O Amazon RDS publica cada log de banco de dados do RDS para Db2 como um fluxo separado de banco de dados no grupo de logs. Por exemplo, se você publicar os logs de diagnóstico e os logs de notificação, os dados de diagnóstico serão armazenados em um fluxo de logs de diagnóstico no grupo de logs `/aws/rds/instance/my_instance/diagnostic`, e os dados de log de notificação serão armazenados no grupo de logs `/aws/rds/instance/my_instance/notify`.

**nota**  
A publicação de logs do RDS para Db2 no CloudWatch Logs não está habilitada por padrão. A publicação de logs de estatísticas do gerenciador de memória autoajustável (STMM) e do otimizador não é permitida. A publicação de logs do RDS para Db2 no CloudWatch Logs é compatível com todas as regiões, exceto Ásia-Pacífico (Hong Kong).

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

**Para publicar logs de banco de dados do RDS para Db2 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.

   Você pode escolher **diag.log**, **notify.log**, ou ambos.

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.Db2.PublishtoCloudWatchLogs.CLI"></a>

Para publicar os logs do RDS para Db2, 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 do RDS para Db2 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-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 do RDS para Db2 com a publicação no CloudWatch Logs habilitada. O valor `--enable-cloudwatch-logs-exports` é uma matriz JSON de strings que podem incluir `diag.log`, `notify.log` ou ambos.  
Para Linux, macOS ou Unix:  

```
aws rds create-db-instance \
    --db-instance-identifier mydbinstance \
    --enable-cloudwatch-logs-exports '["diag.log","notify.log"]' \
    --db-instance-class db.m4.large \
    --engine db2-se
```
Para Windows:  

```
aws rds create-db-instance ^
    --db-instance-identifier mydbinstance ^
    --enable-cloudwatch-logs-exports "[\"diag.log\",\"notify.log\"]" ^
    --db-instance-class db.m4.large ^
    --engine db2-se
```
Ao usar o prompt de comando do Windows, você deve fazer o escape das aspas duplas (") no código JSON, prefixando-as com uma barra invertida (\$1).

**Example**  
O exemplo a seguir altera uma instância de banco de dados do RDS para Db2 existente para publicar os arquivos de log no CloudWatch Logs. O valor `--cloudwatch-logs-export-configuration` é um objeto JSON. A chave desse objeto é `EnableLogTypes`, e seu valor é uma matriz de strings que pode incluir `diag.log`, `notify.log` ou ambos.  
Para Linux, macOS ou Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"EnableLogTypes":["diag.log","notify.log"]}'
```
Para Windows:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"EnableLogTypes\":[\"diag.log\",\"notify.log\"]}"
```
Ao usar o prompt de comando do Windows, você deve fazer o escape das aspas duplas (") no código JSON, prefixando-as com uma barra invertida (\$1).

**Example**  
O exemplo a seguir altera uma instância de banco de dados do RDS para Db2 existente para desabilitar a publicação de arquivos de log de diagnóstico no CloudWatch Logs. O valor `--cloudwatch-logs-export-configuration` é um objeto JSON. A chave desse objeto é `DisableLogTypes`, e seu valor é uma matriz de strings que pode incluir `diag.log`, `notify.log` ou ambos.  
Para Linux, macOS ou Unix:  

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

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"DisableLogTypes\":[\"diag.log\"]}"
```
Ao usar o prompt de comando do Windows, você deve fazer o escape das aspas duplas (") no código JSON, prefixando-as com uma barra invertida (\$1).

# Arquivos de log do banco de dados MariaDB
<a name="USER_LogAccess.Concepts.MariaDB"></a>

É possível monitorar o log de erros do MariaDB, o log de erros de consultas lentas, o log de erros de autenticação de banco de dados do IAM e o log geral. O log de erros do MariaDB é gerado por padrão. Você pode gerar a consulta lenta e os logs gerais definindo parâmetros em seu grupo de parâmetros do banco de dados. O Amazon RDS alterna todos os arquivos de log do MariaDB; os intervalos para cada tipo são fornecidos a seguir. 

Você pode monitorar os logs do MariaDB diretamente por meio do console do Amazon RDS, da API do Amazon RDS, da CLI do Amazon RDS ou os SDKs da AWS. Você também pode acessar os logs do MariaDB direcionando os logs para uma tabela de banco de dados no banco de dados primário e consultando essa tabela. Você pode usar o utilitário mysqlbinlog para baixar um log de binários. 

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

**Topics**
+ [Acessar logs de erros do MariaDB](USER_LogAccess.MariaDB.Errorlog.md)
+ [Acessar os logs gerais e de consultas lentas do MariaDB](USER_LogAccess.MariaDB.Generallog.md)
+ [Publicar logs do MariaDB no Amazon CloudWatch Logs](USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.md)
+ [Alternância e retenção de logs para o MariaDB](USER_LogAccess.MariaDB.LogFileSize.md)
+ [Gerenciar logs do MariaDB com base em tabelas](Appendix.MariaDB.CommonDBATasks.Logs.md)
+ [Configurar o registro em log binário do MariaDB](USER_LogAccess.MariaDB.BinaryFormat.md)
+ [Acessar logs binários do MariaDB](USER_LogAccess.MariaDB.Binarylog.md)
+ [Habilitar a anotação de log binário do MariaDB](USER_LogAccess.MariaDB.BinarylogAnnotation.md)

# Acessar logs de erros do MariaDB
<a name="USER_LogAccess.MariaDB.Errorlog"></a>

O log de erros do MariaDB é gravado no arquivo `<host-name>.err`. É possível visualizar esse arquivo usando o console do Amazon RDS. Você também pode recuperar o log usando a API do Amazon RDS, a CLI do Amazon RDS ou AWS SDKs. O arquivo `<host-name>.err` é descarregado a cada 5 minutos, e seu conteúdo é anexado a `mysql-error-running.log`. O arquivo `mysql-error-running.log` é então rotacionado a cada hora, e os arquivos horários gerados durante as últimas 24 horas são mantidos. Cada arquivo de log tem a hora em que foi gerado (em UTC) anexada ao seu nome. Os arquivos de log também possuem um carimbo de data/hora que ajuda você a determinar quando as entradas de log foram gravadas.

O MariaDB grava no log de erros apenas na inicialização, no desligamento e quando encontra erros. Uma instância de banco de dados pode passar horas ou dias sem novas entradas gravadas no log de erros. Se você não vir nenhuma entrada recente, é porque o servidor não encontrou um erro que resultou em uma entrada de log.

# Acessar os logs gerais e de consultas lentas do MariaDB
<a name="USER_LogAccess.MariaDB.Generallog"></a>

É possível gravar o log de consultas lentas do MariaDB e o log geral em um arquivo ou uma tabela de banco de dados definindo parâmetros em seu grupo de parâmetros de banco de dados. Para obter informações sobre como criar e modificar um grupo de parâmetros de banco de dados, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md). Você deve definir esses parâmetros antes de visualizar o log de consultas lentas ou o log geral no console do Amazon RDS ou usando a API do Amazon RDS, a AWS CLI ou os SDKs da AWS.

Você pode controlar o registro em log do MariaDB usando os parâmetros nessa lista:
+ `slow_query_log` ou `log_slow_query`: para criar o log de consultas lentas, defina como 1. O padrão é 0.
+ `general_log`: para criar o log geral, defina como 1. O padrão é 0.
+ `long_query_time` ou `log_slow_query_time`: para evitar que as consultas de execução rápida sejam registradas no log de consultas lentas, especifique um valor para o tempo de execução de consultas mais curto a ser registrado, em segundos. O padrão é 10 segundos; o mínimo é 0. Se log\$1output = FILE, você poderá especificar um valor de ponto flutuante com resolução por microssegundo. Se log\$1output = TABLE, você deverá especificar um valor inteiro com a segunda resolução. Apenas as consultas cujo tempo de execução excede o valor `long_query_time` ou `log_slow_query_time` são registradas em log. Por exemplo, definir `long_query_time` ou `log_slow_query_time` como 0,1 impede que qualquer consulta que seja executada por menos de 100 milissegundos seja registrada.
+ `log_queries_not_using_indexes`: para registrar todas as consultas que não usam um índice no log de consultas lentas, defina esse parâmetro como 1. O padrão é 0. As consultas que não usam um índice são registradas em log, mesmo que seu tempo de execução seja inferior ao valor do parâmetro `long_query_time`.
+ `log_output option`: você pode especificar uma das seguintes opções para o parâmetro `log_output`:
  + **TABLE** (padrão): grava consultas gerais na tabela `mysql.general_log` e consultas lentas na tabela `mysql.slow_log`. 
  + **FILE**: grave logs de consultas gerais e lentas no sistema de arquivos. Arquivos de log são rotacionados de hora em hora. 
  + **NONE**: desabilite o registro em log.

Quando o registro em log está habilitado, o Amazon RDS faz o rodízio de logs de tabelas ou exclui arquivos de log em intervalos regulares. Essa medida é uma precaução para reduzir a possibilidade de um arquivo de log grande bloquear o uso do banco de dados ou afetar a performance. O registro em log `FILE` e `TABLE` abordam o rodízio e a exclusão da seguinte maneira:
+ Quando o registro em log `FILE` está habilitado, os arquivos de log são examinados a cada hora, e os arquivos de log com mais de 24 horas são excluídos. Em alguns casos, o tamanho do arquivo de log combinado restante após a exclusão pode exceder o limite de 2% do espaço alocado da instância de um banco de dados. Nesses casos, os arquivos de log maiores são excluídos até que o tamanho de arquivo de log não exceda o limite. 
+ Quando o registro de `TABLE` estiver ativado, em alguns casos as tabelas de log serão rotacionadas a cada 24 horas. Essa alternância ocorrerá se o espaço utilizado pelos logs de tabelas for superior a 20% do espaço de armazenamento alocado. Isso também ocorrerá se o tamanho de todos os logs combinados for superior a 10 GB. Se a quantidade de espaço usada por uma instância de banco de dados for maior que 90% do espaço de armazenamento alocado da instância de banco de dados, os limites para a alternância do log serão reduzidos. As tabelas de logs serão, então, alternadas se o espaço utilizado pelos logs de tabelas for superior a 10% do espaço de armazenamento alocado. Eles também serão alternados se o tamanho de todos os logs combinados for superior a 5 GB.

  Quando as tabelas de log são revezadas, a tabela de log atual é copiada para uma tabela de log de backup e as entradas na tabela de log atual são removidas. Se a tabela de log de backup já existir, então ela será excluída antes que a tabela de log atual seja copiada ao backup. Você pode consultar a tabela de log de backup, se necessário. A tabela de log de backup para a tabela `mysql.general_log` é denominada `mysql.general_log_backup`. A tabela de log de backup para a tabela `mysql.slow_log` é denominada `mysql.slow_log_backup`.

  Você pode rotacionar a tabela `mysql.general_log` chamando o procedimento `mysql.rds_rotate_general_log`. Você pode rotacionar a tabela `mysql.slow_log` chamando o procedimento `mysql.rds_rotate_slow_log`.

  Os logs de tabelas são rotacionados durante um upgrade de versão do banco de dados.

O Amazon RDS registra o rodízio dos logs `TABLE` e `FILE` em um evento do Amazon RDS e envia uma notificação para você.

Para trabalhar com os logs no console do Amazon RDS, na API do Amazon RDS, na CLI do Amazon RDS ou nos SDKs da AWS, defina o parâmetro `log_output` como FILE. Como o log de erros do MariaDB, esses arquivos de log são rotacionados por hora. Os arquivos de log que foram gerados durante as 24 horas anteriores são retidos.

Para obter mais informações sobre os log de consultas gerais e de consultas lentas, acesse os seguintes tópicos na documentação do MariaDB:
+ [Log de consultas lentas](http://mariadb.com/kb/en/mariadb/slow-query-log/)
+ [Log de consultas gerais](http://mariadb.com/kb/en/mariadb/general-query-log/)

# Publicar logs do MariaDB no Amazon CloudWatch Logs
<a name="USER_LogAccess.MariaDB.PublishtoCloudWatchLogs"></a>

Você pode configurar sua instância de banco de dados MariaDB para publicar dados de log em um grupo de log no Amazon CloudWatch Logs. Com o CloudWatch Logs, você pode executar análise em tempo real de 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 MariaDB como um fluxo separado de banco de dados no grupo de logs. Por exemplo, suponha que você configure a função de exportação para incluir o log de consultas lentas. Depois, os dados de consultas lentas são armazenados em uma fluxo de log de consultas lentas no grupo de logs `/aws/rds/instance/my_instance/slowquery`.

O log de erros está habilitado por padrão. A tabela a seguir resume os requisitos de outros logs do MariaDB.


| Log | Requisito | 
| --- | --- | 
|  Log de auditoria  |  A instância de banco de dados deve usar um grupo de opções personalizado com a opção `MARIADB_AUDIT_PLUGIN`.  | 
|  Log geral  |  A instância de banco de dados deve usar um grupo de parâmetros personalizado com a configuração de parâmetro `general_log = 1` para habilitar o log geral.  | 
|  Log de consultas lentas  |  A instância de banco de dados deve usar um grupo de parâmetros personalizado com a configuração de parâmetro `slow_query_log = 1` ou `log_slow_query = 1` para habilitar o log de consultas lentas.  | 
|  Log de erros de autenticação de banco de dados do IAM  |  Você deve habilitar o tipo de log `iam-db-auth-error` para uma instância de banco de dados criando ou modificando uma instância de banco de dados.  | 
|  Resultado de saída do log  |  A instância de banco de dados deve usar um grupo de parâmetros personalizado com a configuração de parâmetro `log_output = FILE` para gravar logs no sistema de arquivos e publicá-los no CloudWatch Logs.  | 

## Console
<a name="USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.CON"></a>

**Para publicar logs do MariaDB no CloudWatch Logs a partir do console**

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.MariaDB.PublishtoCloudWatchLogs.CLI"></a>

Você pode publicar logs do MariaDB com o AWS CLI. Você pode chamar 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.

Também é possível publicar logs do MariaDB seguindo os seguintes comandos AWS CLI: 
+ [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)

Execute um destes comandos da AWS CLI com as seguintes opções: 
+ `--db-instance-identifier`
+ `--enable-cloudwatch-logs-exports`
+ `--db-instance-class`
+ `--engine`

Outras opções podem ser obrigatórias, dependendo do comando da AWS CLI executado.

**Example**  
O exemplo a seguir altera uma instância de Banco de Dados MariaDB 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 `audit`, `error`, `general` e `slowquery`.  
Para Linux, macOS ou Unix:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
```
Para Windows:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
```

**Example**  
O comando a seguir cria uma instância de banco de dados do MariaDB e publica arquivos de log no CloudWatch Logs. O valor `--enable-cloudwatch-logs-exports` é uma matriz de strings JSON. As strings podem ser qualquer combinação de `audit`, `error`, `general` e `slowquery`.  
Para Linux, macOS ou Unix:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' \
4.     --db-instance-class db.m4.large \
5.     --engine mariadb
```
Para Windows:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' ^
4.     --db-instance-class db.m4.large ^
5.     --engine mariadb
```

## API do RDS
<a name="USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.API"></a>

Você pode publicar logs MariaDB com a API da RDS. É possível chamar a operaçã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 é possível publicar logs do MariaDB 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 exigidos dependendo do comando AWS CLI que você executa.

# Alternância e retenção de logs para o MariaDB
<a name="USER_LogAccess.MariaDB.LogFileSize"></a>

Quando o registro em log está habilitado, o Amazon RDS faz o rodízio de logs de tabelas ou exclui arquivos de log em intervalos regulares. Essa medida é uma precaução para reduzir a possibilidade de um arquivo de log grande bloquear o uso do banco de dados ou afetar o desempenho.

Os tamanhos de arquivo do log de consultas lentas, do log de erros e do log geral do MariaDB são restritos a não mais de 2% do espaço de armazenamento alocado para uma instância de banco de dados. Para manter esse limite, os logs são rotacionados automaticamente a cada hora, e os arquivos de log com mais de 24 horas são removidos. Se o tamanho do arquivo de log combinado exceder o limite após a remoção dos arquivos de log antigos, os arquivos de log maiores serão excluídos até o tamanho do arquivo de log deixar de exceder esse limite.

O Amazon RDS alterna os arquivos de log de erros de autenticação de banco de dados do IAM maiores que 10 MB. O Amazon RDS remove os arquivos de log de erros de autenticação de banco de dados do IAM com mais de cinco dias ou maiores que 100 MB.

# Gerenciar logs do MariaDB com base em tabelas
<a name="Appendix.MariaDB.CommonDBATasks.Logs"></a>

Você pode direcionar os logs de consultas gerais e lentas para tabelas na instância de banco de dados. Para fazer isso, crie um grupo de parâmetros do banco de dados e defina o parâmetro `log_output` do servidor como `TABLE`. As consultas gerais são registradas na tabela `mysql.general_log` e as consultas lentas são registradas na tabela `mysql.slow_log`. Você pode consultar as tabelas para acessar as informações do log. Habilitar esse registro aumenta a quantidade de dados gravados no banco de dados, o que pode degradar a performance.

O log geral e os logs de consultas lentas estão desabilitados por padrão. Para habilitar o registro em log de tabelas, também é necessário definir os seguintes parâmetros de servidor como `1`:
+ `general_log`
+ `slow_query_log` ou `log_slow_query`

As tabelas de log continuarão crescendo até que as respectivas atividades de log sejam desativadas com a redefinição do parâmetro apropriado como `0`. Uma grande quantidade de dados geralmente se acumula ao longo do tempo, o que pode consumir uma porcentagem considerável do espaço de armazenamento alocado. O Amazon RDS não permite truncar tabelas de log, mas é possível mover o respectivo conteúdo. Rotacionar uma tabela salva seu conteúdo em uma tabela de backup e, em seguida, cria uma nova tabela de log vazia. Você pode rotacionar manualmente as tabelas de log com os seguintes procedimentos de linha de comando, em que o prompt de comando é indicado por `PROMPT>`: 

```
PROMPT> CALL mysql.rds_rotate_slow_log;
PROMPT> CALL mysql.rds_rotate_general_log;
```

 Para remover completamente os dados antigos e recuperar o espaço em disco, chame o procedimento apropriado duas vezes sucessivamente. 

# Configurar o registro em log binário do MariaDB
<a name="USER_LogAccess.MariaDB.BinaryFormat"></a>

O *log binário* é um conjunto de arquivos de log que contêm informações sobre modificações de dados feitas em uma instância do servidor MariaDB. O log binário contém informações como as seguintes:
+ Eventos que descrevem alterações no banco de dados, como criação de tabela ou modificações de linha
+ Informações sobre a duração de cada instrução que atualizou dados
+ Eventos para declarações que poderiam ter dados atualizados, mas não foram

O log binário registra instruções que são enviadas durante a replicação. Também é necessário para algumas operações de recuperação. Para obter mais informações, consulte [Log binário](https://mariadb.com/kb/en/binary-log/) na documentação do MariaDB.

O recurso de backups automatizados determina se o registro em log binário está ativado ou desativado para o MariaDB. Você tem as seguintes opções:

Ativar o registro em log binário  
Defina o período de retenção de backup para um valor positivo diferente de zero.

Desativar o registro em log binário  
Defina o período de retenção de backup para 0.

Para obter mais informações, consulte [Ativar backups automáticos](USER_WorkingWithAutomatedBackups.Enabling.md).

O MariaDB no Amazon RDS oferece suporte a formatos do registro de logs binários *baseados em linha*, *baseados em instrução* e *mistos*. O formato de registro em log binário padrão é *combinado*. Para obter detalhes sobre os diferentes formatos de logs binários do MariaDB, consulte o tópico sobre [Formatos de logs binários](http://mariadb.com/kb/en/mariadb/binary-log-formats/) na documentação do MariaDB.

Se você planeja usar a replicação, o formato de registro em log binário é importante. O motivo disso é porque ele determina o registro de alterações de dados que é registrado na origem e enviado aos destinos de replicação. Para obter informações sobre as vantagens e as desvantagens de formatos de registro em logs binários para replicação, consulte [Vantagens e desvantagens da replicação baseada em instrução e baseada em linha](https://dev.mysql.com/doc/refman/5.7/en/replication-sbr-rbr.html) na documentação do MySQL.

**Importante**  
Definir o formato de registro em log de binários como baseado em linha pode resultar em arquivos de log de binários muito grandes. Arquivos de log binários grandes reduzem a quantidade de armazenamento disponível para uma instância de banco de dados. Eles também podem aumentar o tempo necessário para realizar uma operação de restauração de uma instância de banco de dados.  
A replicação baseada em instrução pode causar inconsistências entre a instância de banco de dados de origem e uma réplica de leitura. Para obter mais informações, consulte [ Instruções não seguras para replicação baseada na instrução](https://mariadb.com/kb/en/library/unsafe-statements-for-statement-based-replication/) na documentação do MariaDB.  
Habilitar o registro em log binário aumenta o número de operações de E/S do disco de gravação na instância de banco de dados. Você pode monitorar o uso de IOPS com a métrica `WriteIOPS` do CloudWatch.

**Para definir o formato de registro em log binário do MariaDB**

1. Faça login no Console de gerenciamento da AWS e 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, selecione **Parameter groups**.

1. Escolha o grupo de parâmetros usado pela instância de banco de dados que você deseja modificar.

   Não é possível modificar um grupo de parâmetros padrão. Se a instância de banco de dados estiver usando um grupo de parâmetros padrão, crie um novo grupo de parâmetros e o associe à instância de banco de dados.

   Para obter mais informações sobre grupos de parâmetros de banco de dados, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md).

1. Em **Parameter group actions (Ações do grupo de parâmetros)**, escolha **Edit (Editar)**.

1. Defina o parâmetro `binlog_format` para o formato de registro em log binário escolhido (**ROW**, **STATEMENT** ou **MIXED**).

   Você pode desativar o registro em log binário definindo o período de retenção de backup de uma instância de banco de dados como zero, mas isso desativa os backups automatizados diários. Desabilitar os backups automatizados desativa ou desabilita a variável de sessão `log_bin`. Isso desabilita o registro em log binário na instância de banco de dados do RDS para MariaDB que, por sua vez, redefine a variável de sessão `binlog_format` como o valor padrão de `ROW` no banco de dados. Recomendamos não desabilitar os backups. Para receber mais informações sobre a configuração **Período de retenção de backup**, consulte [Configurações para instâncias de banco de dados](USER_ModifyInstance.Settings.md).

1. Escolha **Save changes (Salvar alterações)** para salvar as atualizações no grupo de parâmetros de banco de dados.

Como o parâmetro `binlog_format` é dinâmico no RDS para MariaDB, você não precisa reinicializar a instância de banco de dados para que as alterações sejam aplicadas. 

**Importante**  
Alterar um grupo de parâmetros de banco de dados afeta todas as instâncias de banco de dados que usam esse grupo de parâmetros. Se você quiser especificar diferentes formatos do registro em log binário para diferentes instâncias de banco de dados MariaDB em uma região da AWS, as instâncias de banco de dados deverão usar diferentes grupos de parâmetros de banco de dados. Esses grupos de parâmetros identificam diferentes formatos de log. Atribua o grupo de parâmetros de banco de dados apropriado a cada instância de banco de dados.

# Acessar logs binários do MariaDB
<a name="USER_LogAccess.MariaDB.Binarylog"></a>

Você pode usar o utilitário mysqlbinlog para baixar logs binários no formato de texto das instâncias de bancos de dados MariaDB. O log binário é baixado para o computador local. Para obter mais informações sobre como usar o utilitário mysqlbinlog, acesse o tópico sobre como [usar mysqlbinlog](http://mariadb.com/kb/en/mariadb/using-mysqlbinlog/) na documentação do MariaDB.

 Para executar o utilitário mysqlbinlog em uma instância do Amazon RDS, use as seguintes opções: 
+  Especifique a opção `--read-from-remote-server`. 
+  `--host`: especifique o nome DNS do endpoint da instância. 
+  `--port`: especifique a porta usada pela instância. 
+  `--user`: especifique um usuário do MariaDB ao qual foi concedida a permissão de escravo de replicação. 
+  `--password`: especifique a senha para o usuário ou omita um valor de senha para que o utilitário solicite uma senha. 
+  `--result-file`: especifique o arquivo local que recebe a saída. 
+ Especifique os nomes de um ou mais arquivos de log binários. Para obter uma lista dos logs disponíveis, use o comando SQL SHOW BINARY LOGS. 

Para obter mais informações sobre as opções de mysqlbinlog, acesse [Opções de mysqlbinlog](http://mariadb.com/kb/en/mariadb/mysqlbinlog-options/) na documentação do MariaDB. 

 Veja um exemplo a seguir: 

Para Linux, macOS ou Unix:

```
mysqlbinlog \
    --read-from-remote-server \
    --host=mariadbinstance1.1234abcd.region.rds.amazonaws.com \
    --port=3306  \
    --user ReplUser \
    --password <password> \
    --result-file=/tmp/binlog.txt
```

Para Windows:

```
mysqlbinlog ^
    --read-from-remote-server ^
    --host=mariadbinstance1.1234abcd.region.rds.amazonaws.com ^
    --port=3306  ^
    --user ReplUser ^
    --password <password> ^
    --result-file=/tmp/binlog.txt
```

Normalmente, o Amazon RDS limpa um log binário o mais rápido possível. No entanto, o log binário ainda deve estar disponível na instância para ser acessado por mysqlbinlog. Para especificar o número de horas durante as quais o RDS vai reter os logs binários, use o procedimento armazenado `mysql.rds_set_configuration`. Especifique um período com tempo suficiente para baixar os logs. Após configurar o período de retenção, monitore o uso de armazenamento da instância de banco de dados para garantir que os logs binários retidos não consumam muito armazenamento.

O exemplo a seguir define o período de retenção como 1 dia.

```
call mysql.rds_set_configuration('binlog retention hours', 24); 
```

Para exibir a configuração atual, use o procedimento armazenado `mysql.rds_show_configuration`.

```
call mysql.rds_show_configuration; 
```

# Habilitar a anotação de log binário do MariaDB
<a name="USER_LogAccess.MariaDB.BinarylogAnnotation"></a>

Em uma instância de banco de dados MariaDB, você pode usar o evento `Annotate_rows` para anotar um evento de linha com uma cópia da consulta SQL que causou esse evento de linha. Essa abordagem fornece funcionalidade semelhante para habilitar o parâmetro `binlog_rows_query_log_events` em uma instância de banco de dados do RDS para MySQL.

Você pode habilitar anotações de logs binários globalmente criando um grupo de parâmetros personalizado e definindo o parâmetro `binlog_annotate_row_events` como **1**. Você também pode habilitar anotações em nível de sessão, chamando `SET SESSION binlog_annotate_row_events = 1`. Use a opção `replicate_annotate_row_events` para replicar anotações de logs binários para a instância de réplica se o registro em log binário estiver habilitado nela. Não são necessários privilégios especiais para usar essas configurações.

A seguir está um exemplo de uma transação com base em linha no MariaDB. O uso do registro em log baseado em fila é acionado definindo o nível de isolamento da transação como confirmado na leitura.

```
CREATE DATABASE IF NOT EXISTS test;
USE test;
CREATE TABLE square(x INT PRIMARY KEY, y INT NOT NULL) ENGINE = InnoDB;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
BEGIN
INSERT INTO square(x, y) VALUES(5, 5 * 5);
COMMIT;
```

Sem anotações, as entradas de logs binários para a transação são as seguintes:

```
BEGIN
/*!*/;
# at 1163
# at 1209
#150922  7:55:57 server id 1855786460  end_log_pos 1209         Table_map: `test`.`square` mapped to number 76
#150922  7:55:57 server id 1855786460  end_log_pos 1247         Write_rows: table id 76 flags: STMT_END_F
### INSERT INTO `test`.`square`
### SET
###   @1=5
###   @2=25
# at 1247
#150922  7:56:01 server id 1855786460  end_log_pos 1274         Xid = 62
COMMIT/*!*/;
```

A seguinte instrução permite anotações em nível de sessão para essa mesma transação e as desabilita em seguida confirmando a transação:

```
CREATE DATABASE IF NOT EXISTS test;
USE test;
CREATE TABLE square(x INT PRIMARY KEY, y INT NOT NULL) ENGINE = InnoDB;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET SESSION binlog_annotate_row_events = 1;
BEGIN;
INSERT INTO square(x, y) VALUES(5, 5 * 5);
COMMIT;
SET SESSION binlog_annotate_row_events = 0;
```

Com anotações, as entradas de logs binários para a transação são as seguintes:

```
BEGIN
/*!*/;
# at 423
# at 483
# at 529
#150922  8:04:24 server id 1855786460  end_log_pos 483  Annotate_rows:
#Q> INSERT INTO square(x, y) VALUES(5, 5 * 5)
#150922  8:04:24 server id 1855786460  end_log_pos 529  Table_map: `test`.`square` mapped to number 76
#150922  8:04:24 server id 1855786460  end_log_pos 567  Write_rows: table id 76 flags: STMT_END_F
### INSERT INTO `test`.`square`
### SET
###   @1=5
###   @2=25
# at 567
#150922  8:04:26 server id 1855786460  end_log_pos 594  Xid = 88
COMMIT/*!*/;
```

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

Você pode acessar os logs de erros, logs de agentes, arquivos de rastreamento e arquivos de despejo do Microsoft SQL Server usando o console do Amazon RDS, a AWS CLI ou a API do 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).

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

Os arquivos de log são revezados a cada dia e sempre que sua instância de banco de dados for reiniciada. A seguir você encontra o cronograma de retenção para logs do Microsoft SQL Server no Amazon RDS. 


****  

| Tipo de log | Cronograma de retenção | 
| --- | --- | 
|  Logs de erro  |  No máximo, 30 logs de erros são retidos. O Amazon RDS pode excluir logs de erros com mais de 7 dias.   | 
|  Logs de agente  |  No máximo, 10 logs de agente são retidos. O Amazon RDS pode excluir logs de agente com mais de 7 dias.   | 
|  Arquivos de rastreamento  |  Os arquivos de rastreamento são mantidos de acordo com o período de retenção de arquivos de rastreamento de sua instância de banco de dados. O período de retenção padrão de arquivos de rastreamento é de 7 dias. Para modificar o período de retenção de arquivos de rastreamento de sua instância de banco de dados, consulte [Como definir o período de retenção para arquivos de rastreamento e despejo](Appendix.SQLServer.CommonDBATasks.TraceFiles.md#Appendix.SQLServer.CommonDBATasks.TraceFiles.PurgeTraceFiles).   | 
|  Arquivos de despejo  |  Os arquivos de despejo são mantidos de acordo com o período de retenção de arquivos de despejo de sua instância de banco de dados. O período de retenção padrão de arquivos de despejo é de 7 dias. Para modificar o período de retenção de arquivos de despejo de sua instância de banco de dados, consulte [Como definir o período de retenção para arquivos de rastreamento e despejo](Appendix.SQLServer.CommonDBATasks.TraceFiles.md#Appendix.SQLServer.CommonDBATasks.TraceFiles.PurgeTraceFiles).   | 

## Visualizar o log de erros do SQL Server usando o procedimento rds\$1read\$1error\$1log
<a name="USER_LogAccess.Concepts.SQLServer.Proc"></a>

Você pode usar o procedimento armazenado `rds_read_error_log` do Amazon RDS para visualizar logs de erros e logs de agente. Para obter mais informações, consulte [Visualizar logs do agente ou erros](Appendix.SQLServer.CommonDBATasks.Logs.md#Appendix.SQLServer.CommonDBATasks.Logs.SP). 

## Publicar logs do SQL Server no Amazon CloudWatch Logs
<a name="USER_LogAccess.SQLServer.PublishtoCloudWatchLogs"></a>

Com o Amazon RDS para SQL Server, você pode publicar eventos de log de erros e de agentes diretamente no Amazon CloudWatch Logs. Analise os dados de logs com o CloudWatch Logs e depois use o CloudWatch para criar alarmes e visualizar métricas.

Com o CloudWatch Logs, você pode fazer o seguinte:
+ Armazene os logs em um espaço de armazenamento resiliente e com um período de retenção definido por você.
+ Pesquisar e filtrar dados de log.
+ Compartilhar dados de log entre contas.
+ Exportar logs para o Amazon S3.
+ Faça uma transmissão de dados para o Amazon OpenSearch Service.
+ Processar dados de log em tempo real com o Amazon Kinesis Data Streams. Para obter mais informações, consulte [Trabalhando com o Amazon CloudWatch Logs](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html), no *Guia do desenvolvedor do Amazon Kinesis Data Analytics para aplicativos SQL*.

 O Amazon RDS publica cada log de banco de dados SQL Server como um fluxo separado de banco de dados no grupo de logs. Por exemplo, se você publicar os logs de erro e os logs do agente, os dados de erro serão armazenados em um fluxo de logs de erros no grupo de logs `/aws/rds/instance/my_instance.node1/error`, e os dados de log do agente serão armazenados no grupo de logs `/aws/rds/instance/my_instance.node1/agent`.

Para instâncias de banco de dados multi-AZ, o Amazon RDS publica o log do banco de dados como dois fluxos separados no grupo de logs. Por exemplo, se você publicar logs de erro, os dados de erro serão armazenados nos fluxos de log de erros `/aws/rds/instance/my_instance.node1/error` e `/aws/rds/instance/my_instance.node2/error` respectivamente. Os fluxos de log não mudam durante um failover e o fluxo de logs de erros de cada nó pode conter logs de erros da instância primária ou secundária. Com o multi-AZ, um fluxo de logs é criado automaticamente para `/aws/rds/instance/my_instance/rds-events` para armazenar dados de eventos, como failovers de instâncias de banco de dados.

**nota**  
A publicação de logs do SQL Server no CloudWatch Logs não está habilitada por padrão. Não há suporte para a publicação de arquivos de rastreamento e despejo. A publicação de logs do SQL Server no CloudWatch Logs é aceita em todas as regiões.

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

**Para publicar logs de banco de dados do SQL Server no CloudWatch Logs a partir do 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.

   Você pode escolher **Agent log (Log do agente)**, **Error log (Log de erros)** ou ambos.

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.SQLServer.PublishtoCloudWatchLogs.CLI"></a>

Para publicar os logs do SQL Server, 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 logs da SQL Server 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-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 SQL Server com a publicação no CloudWatch Logs habilitada. O valor `--enable-cloudwatch-logs-exports` é uma matriz JSON de strings que podem incluir `error`, `agent` ou ambos.  
Para Linux, macOS ou Unix:  

```
aws rds create-db-instance \
    --db-instance-identifier mydbinstance \
    --enable-cloudwatch-logs-exports '["error","agent"]' \
    --db-instance-class db.m4.large \
    --engine sqlserver-se
```
Para Windows:  

```
aws rds create-db-instance ^
    --db-instance-identifier mydbinstance ^
    --enable-cloudwatch-logs-exports "[\"error\",\"agent\"]" ^
    --db-instance-class db.m4.large ^
    --engine sqlserver-se
```
Ao usar o prompt de comando do Windows, você deve fazer o escape das aspas duplas (") no código JSON, prefixando-as com uma barra invertida (\$1).

**Example**  
O exemplo a seguir altera uma instância de banco de dados SQL Server existente para publicar os arquivos de log no CloudWatch Logs. O valor `--cloudwatch-logs-export-configuration` é um objeto JSON. A chave desse objeto é `EnableLogTypes`, e seu valor é uma matriz de strings que pode incluir `error`, `agent` ou ambos.  
Para Linux, macOS ou Unix:  

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

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"EnableLogTypes\":[\"error\",\"agent\"]}"
```
Ao usar o prompt de comando do Windows, você deve fazer o escape das aspas duplas (") no código JSON, prefixando-as com uma barra invertida (\$1).

**Example**  
O exemplo a seguir altera uma instância de banco de dados SQL Server existente para desabilitar a publicação de arquivos de log do agente no CloudWatch Logs. O valor `--cloudwatch-logs-export-configuration` é um objeto JSON. A chave desse objeto é `DisableLogTypes`, e seu valor é uma matriz de strings que pode incluir `error`, `agent` ou ambos.  
Para Linux, macOS ou Unix:  

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

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"DisableLogTypes\":[\"agent\"]}"
```
Ao usar o prompt de comando do Windows, você deve fazer o escape das aspas duplas (") no código JSON, prefixando-as com uma barra invertida (\$1).

# Arquivos de log do banco de dados MySQL
<a name="USER_LogAccess.Concepts.MySQL"></a>

Você pode monitorar os logs do MySQL diretamente por meio do console do Amazon RDS, da API do Amazon RDS, da AWS CLI ou dos SDKs da AWS. Você também pode acessar os logs do MySQL direcionando os logs para uma tabela de banco de dados no banco de dados primário e consultando essa tabela. Você pode usar o utilitário mysqlbinlog para baixar um log de binários. 

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

**Topics**
+ [Visão geral dos logs de banco de dados do RDS para MySQL](USER_LogAccess.MySQL.LogFileSize.md)
+ [Publicação de logs do MySQL no Amazon CloudWatch Logs](USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs.md)
+ [Enviar a saída de log do MySQL para tabelas](Appendix.MySQL.CommonDBATasks.Logs.md)
+ [Configurar o registro em log binário do RDS para MySQL para bancos de dados single-AZ](USER_LogAccess.MySQL.BinaryFormat.md)
+ [Configuração do registro em log binário do MySQL para clusters de banco de dados multi-AZ](USER_Binlog.MultiAZ.md)
+ [Acessar logs binários do MySQL](USER_LogAccess.MySQL.Binarylog.md)

# Visão geral dos logs de banco de dados do RDS para MySQL
<a name="USER_LogAccess.MySQL.LogFileSize"></a>

Você pode monitorar os seguintes tipos de arquivos de log do RDS para MySQL:
+ Log de erros
+ Log de consultas lentas
+ Log geral
+ Log de auditoria
+ Log de instância
+ Log de erros de autenticação de banco de dados do IAM

O log de erros do RDS para MySQL é gerado por padrão. Você pode gerar a consulta lenta e os logs gerais definindo parâmetros no seu grupo de parâmetros do banco de dados.

**Topics**
+ [Logs de erro do RDS para MySQL](#USER_LogAccess.MySQL.Errorlog)
+ [Logs gerais e de consultas lentas do RDS para MySQL](#USER_LogAccess.MySQL.Generallog)
+ [Log de auditoria do MySQL](#USER_LogAccess.MySQL.Auditlog)
+ [Alternância e retenção de logs do RDS para MySQL](#USER_LogAccess.MySQL.LogFileSize.retention)
+ [Limites de tamanho em redo logs](#USER_LogAccess.MySQL.LogFileSize.RedoLogs)

## Logs de erro do RDS para MySQL
<a name="USER_LogAccess.MySQL.Errorlog"></a>

O RDS para MySQL grava erros no arquivo `mysql-error.log`. Cada arquivo de log tem a hora em que foi gerado (em UTC) anexada ao seu nome. Os arquivos de log também possuem um carimbo de data/hora que ajuda você a determinar quando as entradas de log foram gravadas.

O RDS para MySQL grava no log de erros apenas na inicialização, no desligamento e quando encontra erros. Uma instância de banco de dados pode passar horas ou dias sem novas entradas gravadas no log de erros. Se você não vir nenhuma entrada recente, é porque o servidor não encontrou nenhum erro que tenha gerado uma entrada de log.

Por padrão, os logs de erros são filtrados para que apenas eventos inesperados, como erros, sejam exibidos. No entanto, os logs de erros também contêm algumas informações adicionais do banco de dados, por exemplo, o andamento da consulta, que não são mostradas. Portanto, mesmo sem erros reais, o tamanho dos logs de erros pode aumentar devido às atividades em andamento do banco de dados. Embora você possa ver determinado tamanho em bytes ou quilobytes para os logs de erros no Console de gerenciamento da AWS, eles poderão ter 0 byte quando você fizer download deles.

O RDS para MySQL grava o `mysql-error.log` no disco a cada cinco minutos. Ele acrescenta o conteúdo do log ao `mysql-error-running.log`.

O RDS para MySQL alterna o arquivo `mysql-error-running.log` de hora em hora. Ele retém os logs gerados durante as últimas duas semanas.

**nota**  
Observe que o período de retenção é diferente entre o Amazon RDS e o Aurora.

## Logs gerais e de consultas lentas do RDS para MySQL
<a name="USER_LogAccess.MySQL.Generallog"></a>

É possível gravar o log de consultas lentas e o log geral do RDS para MySQL em um arquivo ou em uma tabela de banco de dados. Para isso, defina parâmetros em seu grupo de parâmetros de banco de dados. Para obter informações sobre como criar e modificar um grupo de parâmetros de banco de dados, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md). Você deve definir esses parâmetros antes de visualizar o log de consultas lentas ou o log geral no console do Amazon RDS ou usando a API do Amazon RDS, a CLI do Amazon RDS ou os SDKs da AWS.

Você pode controlar o registro em log do RDS para MySQL usando os parâmetros nesta lista:
+ `slow_query_log`: para criar o log de consultas lentas, defina como 1. O padrão é 0.
+ `general_log`: para criar o log geral, defina como 1. O padrão é 0.
+ `long_query_time`: para evitar que as consultas de execução rápida sejam registradas no log de consultas lentas, especifique um valor para o tempo de execução de consultas mais curto a ser registrado, em segundos. O padrão é 10 segundos; o mínimo é 0. Se log\$1output = FILE, você poderá especificar um valor de ponto flutuante com resolução por microssegundo. Se log\$1output = TABLE, você deverá especificar um valor inteiro com a segunda resolução. Apenas as consultas cujo tempo de execução excede o valor `long_query_time` são registradas em log. Por exemplo, definir `long_query_time` como 0.1 impede que qualquer consulta que seja executada por menos de 100 milissegundos seja registrada.
+ `log_queries_not_using_indexes`: para registrar todas as consultas que não usam um índice no log de consultas lentas, defina como 1. As consultas que não usam um índice são registradas, mesmo que seu tempo de execução seja inferior ao valor do parâmetro `long_query_time`. O padrão é 0.
+ `log_output option`: você pode especificar uma das seguintes opções para o parâmetro `log_output`. 
  + **TABLE** (padrão): grava consultas gerais na tabela `mysql.general_log` e consultas lentas na tabela `mysql.slow_log`.
  + **FILE**: grave logs de consultas gerais e lentas no sistema de arquivos.
  + **NONE**: desabilite o registro em log.

Para que dados de consulta lenta apareçam no Amazon CloudWatch Logs, as seguintes condições devem ser atendidas:
+ O CloudWatch Logs deve ser configurado para incluir logs de consultas lentas.
+ `slow_query_log` deve estar habilitado.
+ `log_output` deve ser definido como `FILE`.
+ A consulta deve demorar mais do que o tempo configurado para `long_query_time`.

Para obter mais informações sobre os log de consultas gerais e de consultas lentas, acesse os seguintes tópicos na documentação do MySQL:
+ [O log de consultas lentas](https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html)
+ [O log de consultas gerais](https://dev.mysql.com/doc/refman/8.0/en/query-log.html)

## Log de auditoria do MySQL
<a name="USER_LogAccess.MySQL.Auditlog"></a>

Para acessar o log de auditoria, a instância de banco de dados deve usar um grupo de opções personalizado com a opção `MARIADB_AUDIT_PLUGIN`. Para obter mais informações, consulte [Suporte ao plug-in de auditoria do MariaDB para MySQL](Appendix.MySQL.Options.AuditPlugin.md).

## Alternância e retenção de logs do RDS para MySQL
<a name="USER_LogAccess.MySQL.LogFileSize.retention"></a>

Quando o registro em log está habilitado, o Amazon RDS faz o rodízio de logs de tabelas ou exclui arquivos de log em intervalos regulares. Essa medida é uma precaução para reduzir a possibilidade de um arquivo de log grande bloquear o uso do banco de dados ou afetar o desempenho. O RDS para MySQL lida com a alternância e a exclusão da seguinte forma:
+ Os tamanhos de arquivo do log de consultas lentas, do log de erros e do log geral do MySQL são restritos a não mais de 2% do espaço de armazenamento alocado para uma instância de banco de dados. Para manter esse limite, os logs são alternados automaticamente a cada hora. O MySQL remove arquivos de log criados há mais de duas semanas. Se o tamanho do arquivo de log combinado exceder o limite após a remoção dos arquivos de log antigos, os arquivos de log mais antigos serão excluídos até o tamanho do arquivo de log deixar de exceder esse limite.
+ Quando o registro em log `FILE` é ativado, os arquivos de log são examinados a cada hora e os arquivos de log com mais de duas semanas são excluídos. Em alguns casos, o tamanho do arquivo de log combinado restante após a exclusão pode exceder o limite de 2% do espaço alocado da instância de um banco de dados. Nesses casos, os arquivos de log mais antigos serão excluídos até que o tamanho do arquivo de log não exceda o limite.
+ Quando o registro de `TABLE` estiver ativado, em alguns casos as tabelas de log serão rotacionadas a cada 24 horas. Essa alternância ocorrerá se o espaço utilizado pelos logs de tabelas for superior a 20% do espaço de armazenamento alocado. Isso também ocorrerá se o tamanho de todos os logs combinados for superior a 10 GB. Se a quantidade de espaço usada por uma instância de banco de dados for maior que 90 por cento do espaço de armazenamento alocado da instância de banco de dados, os limites para o rodízio do log serão reduzidos. As tabelas de logs serão, então, alternadas se o espaço utilizado pelos logs de tabelas for superior a 10% do espaço de armazenamento alocado. Eles também serão alternados se o tamanho de todos os logs combinados for superior a 5 GB. Você pode assinar a categoria de evento `low storage` para ser notificado quando tabelas de log forem rotacionadas para liberar espaço. Para obter mais informações, consulte [Trabalhar com a notificação de eventos do Amazon RDS](USER_Events.md).

  Quando as tabelas de log são alternadas, a tabela de logs atual é copiada primeiro em uma tabela de logs de backup. Depois, as entradas na tabela de logs atual são removidas. Se a tabela de log de backup já existir, então ela será excluída antes que a tabela de log atual seja copiada ao backup. Você pode consultar a tabela de log de backup, se necessário. A tabela de log de backup para a tabela `mysql.general_log` é denominada `mysql.general_log_backup`. A tabela de log de backup para a tabela `mysql.slow_log` é denominada `mysql.slow_log_backup`.

  Você pode rotacionar a tabela `mysql.general_log` chamando o procedimento `mysql.rds_rotate_general_log`. Você pode rotacionar a tabela `mysql.slow_log` chamando o procedimento `mysql.rds_rotate_slow_log`.

  Os logs de tabelas são rotacionados durante um upgrade de versão do banco de dados.

Para trabalhar com os logs no console do Amazon RDS, na API do Amazon RDS, na CLI do Amazon RDS ou nos SDKs da AWS, defina o parâmetro `log_output` como FILE. Como o log de erros do MySQL, esses arquivos de log são rotacionados por hora. Os arquivos de log que foram gerados durante as duas semanas anteriores são retidos. Observe que o período de retenção é diferente entre o Amazon RDS e o Aurora.

## Limites de tamanho em redo logs
<a name="USER_LogAccess.MySQL.LogFileSize.RedoLogs"></a>

Para o RDS para MySQL versão 8.0.32 e anterior, o valor padrão desse parâmetro é 256 MB. Esse valor é obtido multiplicando o valor padrão do parâmetro `innodb_log_file_size` (128 MB) pelo valor padrão do parâmetro `innodb_log_files_in_group` (2). Para ter mais informações, consulte [Best practices for configuring parameters for Amazon RDS for MySQL, part 1: Parameters related to performance](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/). 

Para o RDS para MySQL versão 8.0.33 e posterior e versões secundárias posteriores, o Amazon RDS usa o parâmetro `innodb_redo_log_capacity` em vez do `innodb_log_file_size`. O valor padrão do parâmetro `innodb_redo_log_capacity` do Amazon RDS é 2 GB. Para obter mais informações, consulte [Changes in MySQL 8.0.30](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-30.html) (Alterações no MySQL 8.0.30) na documentação do MySQL.

A partir do MySQL 8.4, o Amazon RDS habilita o parâmetro `innodb_dedicated_server` por padrão. Com o parâmetro `innodb_dedicated_server`, o mecanismo do banco de dados calcula os parâmetros `innodb_buffer_pool_size` e `innodb_redo_log_capacity`. Para obter mais informações, consulte [Configuração do tamanho do pool de buffer e a capacidade de log redo no MySQL 8.4](Appendix.MySQL.CommonDBATasks.Config.Size.8.4.md).

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

Você pode configurar sua instância de banco de dados MySQL para publicar dados de log em um grupo de log no Amazon CloudWatch Logs. Com o CloudWatch Logs, você pode executar análise em tempo real de 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 MySQL 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 consultas lentas, os dados de consultas lentas serão armazenados em um fluxo de log de consultas lentas no grupo de logs `/aws/rds/instance/my_instance/slowquery`. 

O log de erros está habilitado por padrão. A tabela a seguir resume os requisitos de outros logs do MySQL.


| Log | Requisito | 
| --- | --- | 
|  Log de auditoria  |  A instância de banco de dados deve usar um grupo de opções personalizado com a opção `MARIADB_AUDIT_PLUGIN`.  | 
|  Log geral  |  A instância de banco de dados deve usar um grupo de parâmetros personalizado com a configuração de parâmetro `general_log = 1` para habilitar o log geral.  | 
|  Log de consultas lentas  |  A instância de banco de dados deve usar um grupo de parâmetros personalizado com a configuração de parâmetro `slow_query_log = 1` para habilitar o log de consulta lenta.  | 
|  Log de erros de autenticação de banco de dados do IAM  |  Você deve habilitar o tipo de log `iam-db-auth-error` para uma instância de banco de dados criando ou modificando uma instância de banco de dados.  | 
|  Resultado de saída do log  |  A instância de banco de dados deve usar um grupo de parâmetros personalizado com a configuração de parâmetro `log_output = FILE` para gravar logs no sistema de arquivos e publicá-los no CloudWatch Logs.  | 

## Console
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.CON"></a>

**Para publicar logs do MySQL no CloudWatch Logs usando o console**

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.MySQL.PublishtoCloudWatchLogs.CLI"></a>

 Você pode publicar logs do MySQL com o AWS CLI. Você pode chamar 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.

Também é possível publicar logs do MySQL chamando os seguintes comandos AWS CLI: 
+ [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)

Execute um destes comandos da AWS CLI com as seguintes opções: 
+ `--db-instance-identifier`
+ `--enable-cloudwatch-logs-exports`
+ `--db-instance-class`
+ `--engine`

Outras opções podem ser obrigatórias, dependendo do comando da AWS CLI executado.

**Example**  
O exemplo a seguir altera uma instância de Banco de Dados MySQL 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 `audit`, `error`, `general` e `slowquery`.  
Para Linux, macOS ou Unix:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
```
Para Windows:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
```

**Example**  
O exemplo a seguir cria uma instância de Banco de Dados MySQL e publica os arquivos de log no CloudWatch Logs. O valor `--enable-cloudwatch-logs-exports` é uma matriz de strings JSON. As strings podem ser qualquer combinação de `audit`, `error`, `general` e `slowquery`.  
Para Linux, macOS ou Unix:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' \
4.     --db-instance-class db.m4.large \
5.     --engine MySQL
```
Para Windows:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' ^
4.     --db-instance-class db.m4.large ^
5.     --engine MySQL
```

## API do RDS
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.API"></a>

Você pode publicar logs do MySQL com a API da 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 é possível publicar logs do MySQL 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 exigidos dependendo do comando AWS CLI que você executa.

# Enviar a saída de log do MySQL para tabelas
<a name="Appendix.MySQL.CommonDBATasks.Logs"></a>

Você pode direcionar os logs de consultas gerais e lentas para tabelas na instância de banco de dados, criando um grupo de parâmetros de banco de dados e definindo o parâmetro do servidor `log_output` como `TABLE`. As consultas gerais são registradas na tabela `mysql.general_log` e as consultas lentas são registradas na tabela `mysql.slow_log`. Você pode consultar as tabelas para acessar as informações do log. Habilitar esse registro aumenta a quantidade de dados gravados no banco de dados, o que pode degradar a performance.

O log geral e os logs de consultas lentas estão desabilitados por padrão. Para habilitar o registro em log de tabelas, você também deve definir os parâmetros de servidor `general_log` e `slow_query_log` como `1`.

As tabelas de log continuarão crescendo até que as respectivas atividades de log sejam desativadas com a redefinição do parâmetro apropriado como `0`. Uma grande quantidade de dados geralmente se acumula ao longo do tempo, o que pode consumir uma porcentagem considerável do espaço de armazenamento alocado. O Amazon RDS não permite truncar tabelas de log, mas é possível mover o conteúdo delas. Rotacionar uma tabela salva seu conteúdo em uma tabela de backup e, em seguida, cria uma nova tabela de log vazia. Você pode rotacionar manualmente as tabelas de log com os seguintes procedimentos de linha de comando, em que o prompt de comando é indicado por `PROMPT>`: 

```
PROMPT> CALL mysql.rds_rotate_slow_log;
PROMPT> CALL mysql.rds_rotate_general_log;
```

Para remover completamente os dados antigos e recuperar o espaço em disco, chame o procedimento apropriado duas vezes sucessivamente. 

# Configurar o registro em log binário do RDS para MySQL para bancos de dados single-AZ
<a name="USER_LogAccess.MySQL.BinaryFormat"></a>

O *log binário* é um conjunto de arquivos de log que contêm informações sobre modificações de dados feitas em uma instância do servidor MySQL. O log binário contém informações como as seguintes:
+ Eventos que descrevem alterações no banco de dados, como criação de tabela ou modificações de linha
+ Informações sobre a duração de cada instrução que atualizou dados
+ Eventos para declarações que poderiam ter dados atualizados, mas não foram

O log binário registra instruções que são enviadas durante a replicação. Também é necessário para algumas operações de recuperação. Para obter mais informações, consulte [The Binary Log](https://dev.mysql.com/doc/refman/8.0/en/binary-log.html) na documentação do MySQL.

O recurso de backups automatizados determina se o registro em log binário está ativado ou desativado para o MySQL. Você tem as seguintes opções:

Ativar o registro em log binário  
Defina o período de retenção de backup para um valor positivo diferente de zero.

Desativar o registro em log binário  
Defina o período de retenção de backup para 0.

Para ter mais informações, consulte [Ativar backups automáticos](USER_WorkingWithAutomatedBackups.Enabling.md).

O MySQL no Amazon RDS é compatível com os formatos de registro em log binário *baseados em linha*, *baseados em instrução* e *mistos*. Recomendamos misto, a menos que você precise de um formato específico de log binário. Para obter detalhes sobre os diferentes formatos de logs binários do MySQL, consulte [Formatos de registro em log binário](https://dev.mysql.com/doc/refman/8.0/en/binary-log-formats.html) na documentação do MySQL.

Se você pretende usar replicação, o formato do registro em log binário é importante porque determina o registro de alterações feitas nos dados salvas na origem e enviadas para os destinos de replicação. Para obter informações sobre as vantagens e as desvantagens de formatos de registro em logs binários para replicação, consulte [Vantagens e desvantagens da replicação baseada em instrução e baseada em linha](https://dev.mysql.com/doc/refman/8.0/en/replication-sbr-rbr.html) na documentação do MySQL.

**Importante**  
Com o MySQL 8.0.34, o MySQL descontinuou o parâmetro `binlog_format`. Em versões posteriores do MySQL, o MySQL pretende remover o parâmetro e oferecer suporte somente à replicação baseada em linhas. Como resultado, recomendamos o uso de registro baseado em linhas para novas configurações de replicação do MySQL. Para obter mais informações, consulte [binlog\$1format](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_format) na documentação do MySQL.  
As versões 8.0 e 8.4 do MySQL aceitam o parâmetro `binlog_format`. Ao usar esse parâmetro, o MySQL emite um aviso de descontinuação. Em uma futura versão principal, o MySQL removerá o parâmetro `binlog_format`.  
A replicação baseada em instrução pode causar inconsistências entre a instância de banco de dados de origem e uma réplica de leitura. Para obter mais informações, consulte [Determinação de instruções seguras e inseguras no registro de logs binários](https://dev.mysql.com/doc/refman/8.0/en/replication-rbr-safe-unsafe.html). na documentação do MySQL.  
Habilitar o registro em log binário aumenta o número de operações de E/S do disco de gravação na instância de banco de dados. Você pode monitorar o uso de IOPS com a métrica `WriteIOPS``` do CloudWatch.

**Para definir o formato de registro em log binário do MySQL**

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, selecione **Parameter groups**.

1. Selecione o grupo de parâmetros do de banco de dados associado à instância de banco de dados que você deseja modificar.

   Não é possível modificar um grupo de parâmetros padrão. Se a instância de banco de dados estiver usando um grupo de parâmetros padrão, crie outro grupo de parâmetros e o associe à instância de banco de dados.

   Para ter mais informações sobre grupos de parâmetros, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md).

1. Em **Ações**, selecione **Editar**.

1. Defina o parâmetro `binlog_format` como o formato de registro em log binário de sua escolha (`ROW`, `STATEMENT` ou `MIXED`).

   Você pode desativar o registro em log binário definindo o período de retenção de backup de uma instância de banco de dados como zero, mas isso desativa os backups automatizados diários. Desabilitar os backups automatizados desativa ou desabilita a variável de sessão `log_bin`. Isso desabilita o registro em log binário na instância de banco de dados do RDS para MySQL que, por sua vez, redefine a variável de sessão `binlog_format` como o valor padrão de `ROW` no banco de dados. Recomendamos não desabilitar os backups. Para receber mais informações sobre a configuração **Período de retenção de backup**, consulte [Configurações para instâncias de banco de dados](USER_ModifyInstance.Settings.md).

1. Escolha **Salvar alterações** para salvar as atualizações no grupo de parâmetros de banco de dados.

Como o parâmetro `binlog_format` é dinâmico no RDS para MySQL, você não precisa reinicializar a instância de banco de dados para que as alterações sejam aplicadas. (Observe que, no Aurora MySQL, esse parâmetro é estático. Consulte mais informações em [Configurar o registro em log binário do Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.MySQL.BinaryFormat.html).)

**Importante**  
Alterar um grupo de parâmetros de banco de dados afeta todas as instâncias de banco de dados que usam esse grupo de parâmetros. Se você quiser especificar diferentes formatos do registro em log binário para diferentes instâncias de banco de dados MySQL em uma região da AWS, as instâncias de banco de dados deverão usar diferentes grupos de parâmetros de banco de dados. Esses grupos de parâmetros identificam diferentes formatos de log. Atribua o grupo de parâmetros de banco de dados apropriado a cada instância de banco de dados.

# Configuração do registro em log binário do MySQL para clusters de banco de dados multi-AZ
<a name="USER_Binlog.MultiAZ"></a>

O registro em log binário no Amazon RDS para MySQL para clusters de banco de dados multi-AZ registra todas as alterações do banco de dados para oferecer suporte a replicação, recuperação point-in-time e auditoria. Em clusters de banco de dados multi-AZ, os logs binários sincronizam os nós secundários com o nó primário, garantindo a consistência de dados em todas as zonas de disponibilidade e permitindo failovers contínuos. 

Para otimizar o registro em log binário, o Amazon RDS oferece suporte à compactação de transações de log binário, o que reduz os requisitos de armazenamento para logs binários e melhora a eficiência da replicação.

**Topics**
+ [Compactação de transação de log binário para clusters de banco de dados multi-AZ](#USER_Binlog.MultiAZ.compression)
+ [Configuração da compactação de transação de log binário para clusters de banco de dados multi-AZ](#USER_Binlog.MultiAZ.configuring)

## Compactação de transação de log binário para clusters de banco de dados multi-AZ
<a name="USER_Binlog.MultiAZ.compression"></a>

A compactação de transações de log binário usa o algoritmo zstd para reduzir o tamanho dos dados de transação armazenados em logs binários. Quando habilitado, o mecanismo de banco de dados MySQL comprime as cargas úteis de transação em um único evento, minimizando a sobrecarga de E/S e armazenamento. Esse recurso melhora o desempenho do banco de dados, reduz o tamanho do log binário e otimiza o uso de recursos para gerenciar e replicar logs em clusters de banco de dados multi-AZ.

O Amazon RDS fornece compactação de transação de log binário para clusters de banco de dados multi-AZ do RDS para MySQL por meio dos seguintes parâmetros:
+ `binlog_transaction_compression`: quando habilitado (`1`), o mecanismo de banco de dados compacto as cargas úteis da transação e as grava no log binário como um único evento. Isso reduz o uso do armazenamento e a sobrecarga de E/S. Por padrão, o parâmetro é desabilitado.
+ `binlog_transaction_compression_level_zstd`: configura o nível de compressão zstd para transações de log binário. Valores mais altos aumentam a taxa de compactação, reduzindo ainda mais os requisitos de armazenamento, mas aumentando o uso da CPU e da memória para compactação. O valor padrão é 3, com um intervalo de 1 a 22.

Esses parâmetros permitem ajustar a compactação de logs binários com base nas características da workload e na disponibilidade de recursos. Para obter mais informações, consulte [Compactação de transações de log binário](https://dev.mysql.com/doc/refman/8.4/en/binary-log-transaction-compression.html) na documentação do MySQL.

A compactação de transações de log binário oferece os seguintes benefícios principais:
+ A compactação diminui o tamanho dos logs binários, especialmente para workloads com grandes transações ou altos volumes de gravação.
+ Logs binários menores reduzem a sobrecarga de rede e de E/S, aprimorando o desempenho da replicação.
+ O parâmetro `binlog_transaction_compression_level_zstd` fornece controle sobre o equilíbrio entre a taxa de compressão e o consumo de recursos.

## Configuração da compactação de transação de log binário para clusters de banco de dados multi-AZ
<a name="USER_Binlog.MultiAZ.configuring"></a>

Para configurar a compactação de transações de log binário para um cluster de banco de dados multi-AZ do RDS para MySQL, modifique as configurações relevantes dos parâmetros do cluster de acordo com seus requisitos de workload.

### Console
<a name="USER_Binlog.MultiAZ.configuring-console"></a>

**Como habilitar a compactação de transações de log binário**

1. Modifique o grupo de parâmetros de cluster de banco de dados para definir o parâmetro `binlog_transaction_compression` como `1`.

1. (Opcional) Ajuste o valor do parâmetro `binlog_transaction_compression_level_zstd` com base nos requisitos de workload e na disponibilidade de recursos.

Para obter mais informações, consulte [Modificar parâmetros em um grupo de parâmetros de cluster de banco de dados](USER_WorkingWithParamGroups.ModifyingCluster.md).

### AWS CLI
<a name="USER_Binlog.MultiAZ.configuring-cli"></a>

Para configurar a compactação de transações de log binário usando a AWS CLI, use o comando [modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html).

**Example**  
Para Linux, macOS ou Unix:  

```
aws rds modify-db-cluster-parameter-group \
  --db-cluster-parameter-group-name your-cluster-parameter-group \
  --parameters "ParameterName=binlog_transaction_compression,ParameterValue=1,ApplyMethod=pending-reboot"
```
Para Windows:  

```
aws rds modify-db-cluster-parameter-group ^
  --db-cluster-parameter-group-name your-cluster-parameter-group ^
  --parameters "ParameterName=binlog_transaction_compression,ParameterValue=1,ApplyMethod=pending-reboot"
```

### API do RDS
<a name="USER_Binlog.MultiAZ.configuring-api"></a>

Para configurar a compactação de transações de log binário usando a API do Amazon RDS, use a operação [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html).

# Acessar logs binários do MySQL
<a name="USER_LogAccess.MySQL.Binarylog"></a>

É possível usar o utilitário mysqlbinlog para baixar ou transmitir os logs binários de instâncias do RDS para instâncias de banco de dados do MySQL. O log binário é baixado para o computador local, onde você pode realizar ações como reproduzir o log usando o utilitário mysql. Para ter mais informações sobre como usar o utilitário mysqlbinlog, acesse [Usar mysqlbinlog para fazer backup de arquivos de log binários](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-backup.html) na documentação do MySQL.

Para executar o utilitário mysqlbinlog em uma instância do Amazon RDS, use as seguintes opções:
+ `--read-from-remote-server` – obrigatório.
+ `--host`: o nome DNS do endpoint da instância.
+ `--port`: a porta usada pela instância.
+ `--user`: um usuário do MySQL ao qual foi concedida a permissão `REPLICATION SLAVE`.
+ `--password`: a senha do usuário do MySQL ou omita um valor de senha de forma que o utilitário solicite uma senha.
+ `--raw`: baixe o arquivo em formato binário.
+ `--result-file`: o arquivo local para receber a saída bruta.
+ `--stop-never`: transmita os arquivos de log binários.
+ `--verbose`: ao usar o formato de log binário `ROW`, inclua essa opção para ver os eventos de linha como instruções pseudo-SQL. Para ter mais informações sobre a opção `--verbose`, consulte [Exibição de evento da linha mysqlbinlog](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-row-events.html) na documentação do MySQL.
+ Especifique os nomes de um ou mais arquivos de log binários. Para obter uma lista dos logs disponíveis, use o comando SQL `SHOW BINARY LOGS`.

Para ter mais informações sobre as opções de mysqlbinlog, consulte [mysqlbinlog: utilitário para processar arquivos de log binários](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog.html) na documentação do MySQL.

Os exemplos a seguir mostram como usar o utilitário mysqlbinlog.

Para Linux, macOS ou Unix:

```
mysqlbinlog \
    --read-from-remote-server \
    --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com \
    --port=3306  \
    --user ReplUser \
    --password \
    --raw \
    --verbose \
    --result-file=/tmp/ \
    binlog.00098
```

Para Windows:

```
mysqlbinlog ^
    --read-from-remote-server ^
    --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com ^
    --port=3306  ^
    --user ReplUser ^
    --password ^
    --raw ^
    --verbose ^
    --result-file=/tmp/ ^
    binlog.00098
```

Os logs binários devem permanecer disponíveis na instância de banco de dados para que o utilitário mysqlbinlog possa acessá-los. Para garantir a disponibilidade deles, use o procedimento armazenado [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) e especifique um período com tempo suficiente para você baixar os logs. Se essa configuração não for definida, o Amazon RDS purgará os logs binários o mais rápido possível, causando lacunas nos logs binários que o utilitário mysqlbinlog recupera. 

O exemplo a seguir define o período de retenção como 1 dia.

```
call mysql.rds_set_configuration('binlog retention hours', 24);
```

Para exibir a configuração atual, use o procedimento armazenado [mysql.rds\$1show\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_show_configuration).

```
call mysql.rds_show_configuration;
```

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

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

Você pode monitorar os seguintes tipos de arquivo de log do :
+ Log do PostgreSQL
+ Log de atualização
+ Log de erros de autenticação de banco de dados do IAM
**nota**  
Para habilitar os logs de erro de autenticação de banco de dados do IAM, você deve primeiro habilitar a autenticação de banco de dados do IAM para a instância de banco de dados do RDS para PostgreSQL. Para ter mais informações sobre a autenticação de banco de dados do IAM, consulte [Habilitar e desabilitar a autenticação de banco de dados do IAM](UsingWithRDS.IAMDBAuth.Enabling.md).

O RDS para PostgreSQL registra as atividades do banco de dados no arquivo de log padrão do PostgreSQL. Para uma instância de banco de dados PostgreSQL on-premises, essas mensagens são armazenadas localmente em `log/postgresql.log`. Para uma instância de banco de dados do RDS para PostgreSQL, o arquivo de log está disponível na instância do Amazon RDS. Esses logs também podem ser acessados por meio do Console de gerenciamento da AWS, onde você pode visualizá-los ou baixá-los. O nível de registro em log padrão captura falhas de login, erros fatais do servidor, deadlocks e falhas de consulta.

Para ter mais informações sobre a visualização, o download e os logs de banco de dados baseados no monitoramento de arquivos, consulte [Monitorar arquivos de log do Amazon RDS](USER_LogAccess.md). Para saber mais sobre logs do PostgreSQL, consulte [Working with Amazon RDS and Aurora PostgreSQL logs: Part 1](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-1/) (Trabalhar com o Amazon RDS e logs do Aurora PostgreSQL: parte 1) e [Working with RDS and Aurora PostgreSQL logs: Part 2](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-2/) (Trabalhar com o Amazon RDS e logs do Aurora PostgreSQL: parte 2). 

Além dos logs padrão do PostgreSQL abordados neste tópico, o RDS para PostgreSQL também é compatível com a extensão Audit do PostgreSQL (`pgAudit`). A maioria dos setores regulamentados e agências governamentais precisa manter um log de auditoria ou uma trilha de auditoria das alterações feitas nos dados para cumprir os requisitos legais. Para obter informações sobre a instalação e o uso de pgAudit, consulte [Usar pgAudit para registrar a atividade do banco de dados](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md).

**Topics**
+ [Parâmetros para registro em log no RDS para PostgreSQL](USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups.md)
+ [Ativar o registro em log de consultas para a instância de banco de dados do RDS para PostgreSQL](USER_LogAccess.Concepts.PostgreSQL.Query_Logging.md)
+ [Publicação de logs do PostgreSQL no Amazon CloudWatch Logs](#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs)

# Parâmetros para registro em log no RDS para PostgreSQL
<a name="USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups"></a>

É possível personalizar o comportamento do registro em log da instância de banco de dados do RDS para PostgreSQL modificando vários parâmetros. Na tabela a seguir, você encontra os parâmetros que afetam por quanto tempo os logs são armazenados, quando alternar o log e se ele deve ser gerado no formato CSV (valor separado por vírgula). Você também pode encontrar a saída de texto enviada para STDERR, entre outras configurações. Para alterar as configurações dos parâmetros que podem ser modificados, use um grupo de parâmetros de banco de dados para o Instância do RDS para PostgreSQL. Para ter mais informações, consulte [Grupos de parâmetros de banco de dados para instâncias de banco de dados do Amazon RDS](USER_WorkingWithDBInstanceParamGroups.md).


| Parâmetro | Padrão | Descrição | 
| --- | --- | --- | 
| log\$1destination | stderr | Define o formato de saída para o log. O padrão é `stderr`, mas você também pode especificar valores separados por vírgula (CSV) adicionando `csvlog` à configuração. Para obter mais informações, consulte [Definir o destino dos logs (`stderr`, `csvlog`)](#USER_LogAccess.Concepts.PostgreSQL.Log_Format).  | 
| log\$1filename |  postgresql.log.%Y-%m-%d-%H%M  | Especifica o padrão para o nome do arquivo de log. Além do padrão, esse parâmetro é compatível com `postgresql.log.%Y-%m-%d` e `postgresql.log.%Y-%m-%d-%H%M` para o padrão de nome de arquivo.  | 
| log\$1line\$1prefix | %t:%r:%u@%d:[%p]: | Define o prefixo para cada linha de log que é gravada em `stderr`, para anotar a hora (%t), o host remoto (%r), o usuário (%u), o banco de dados (%d) e o ID do processo (%p). | 
| log\$1rotation\$1age | 60 | Minutos após os quais o arquivo de log é alternado automaticamente. É possível alterar esse valor no intervalo de 1 a e 1.440 minutos. Para obter mais informações, consulte [Configurar a alternância do arquivo de log](#USER_LogAccess.Concepts.PostgreSQL.log_rotation).  | 
| log\$1rotation\$1size | – | O tamanho (kB) no qual o log é alternado automaticamente. Por padrão, esse parâmetro não é usado porque os logs são trocados com base no parâmetro `log_rotation_age`. Para saber mais, consulte [Configurar a alternância do arquivo de log](#USER_LogAccess.Concepts.PostgreSQL.log_rotation). | 
| rds.log\$1retention\$1period | 4320 | Os logs do PostgreSQL mais antigos que o número especificado de minutos são excluídos. O valor padrão de 4.320 minutos exclui os arquivos de log após três dias. Para ter mais informações, consulte [Definir o período de retenção de log](#USER_LogAccess.Concepts.PostgreSQL.log_retention_period). | 

Para identificar problemas de aplicações, você pode procurar falhas de consulta, falhas de login, deadlocks e erros fatais de servidor no log. Por exemplo, suponha que você converta uma aplicação herdada do Oracle no Amazon RDS PostgreSQL, mas nem todas as consultas foram convertidas corretamente. Essas consultas formatadas incorretamente geram mensagens de erro nos logs, que você pode usar para identificar problemas. Para ter mais informações sobre o registro em log de consultas, consulte [Ativar o registro em log de consultas para a instância de banco de dados do RDS para PostgreSQL](USER_LogAccess.Concepts.PostgreSQL.Query_Logging.md). 

Nos tópicos a seguir, você encontrará informações sobre como definir vários parâmetros que controlam os detalhes básicos de seus logs do PostgreSQL. 

**Topics**
+ [Definir o período de retenção de log](#USER_LogAccess.Concepts.PostgreSQL.log_retention_period)
+ [Configurar a alternância do arquivo de log](#USER_LogAccess.Concepts.PostgreSQL.log_rotation)
+ [Definir o destino dos logs (`stderr`, `csvlog`)](#USER_LogAccess.Concepts.PostgreSQL.Log_Format)
+ [Noções básicas sobre o parâmetro log\$1line\$1prefix](#USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix)

## Definir o período de retenção de log
<a name="USER_LogAccess.Concepts.PostgreSQL.log_retention_period"></a>

O parâmetro `rds.log_retention_period` especifica por quanto tempo sua instância de banco de dados do Aurora PostgreSQL mantém seus arquivos de log. A configuração padrão é de três dias (4.320 minutos), mas você pode definir esse valor de um dia (1.440 minutos) a sete dias (10.080 minutos). O A instância de banco de dados do RDS para PostgreSQL deve ter armazenamento suficiente para armazenar os arquivos de log durante o período.

Recomendamos que você publique habitualmente seus logs no Amazon CloudWatch Logs para que possa visualizar e analisar os dados do sistema muito tempo depois que os logs tiverem sido removidos do Instância de banco de dados do RDS para PostgreSQL. Para ter mais informações, consulte [Publicação de logs do PostgreSQL no Amazon CloudWatch Logs](USER_LogAccess.Concepts.PostgreSQL.md#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs).  

## Configurar a alternância do arquivo de log
<a name="USER_LogAccess.Concepts.PostgreSQL.log_rotation"></a>

Por padrão, o Amazon RDS cria arquivos de log a cada hora. O tempo é controlado pelo parâmetro `log_rotation_age`. Esse parâmetro tem um valor padrão de 60 (minutos), mas você pode definir qualquer valor entre 1 minuto e 24 horas (1.440 minutos). Quando chegar o momento da alternância, será criado um novo arquivo de log distinto. O arquivo é nomeado de acordo com o padrão especificado pelo parâmetro `log_filename`. 

Também é possível alternar os arquivos de log de acordo com o tamanho, conforme especificado no parâmetro `log_rotation_size`. Esse parâmetro especifica que o log deva ser alternado quando atingir o tamanho determinado (em kilobytes). Para uma instância de banco de dados do RDS para PostgreSQL, `log_rotation_size` não é definido, ou seja, não há valor especificado. No entanto, é possível definir o parâmetro de 0 a 2.097.151 kB (kilobytes).  

Os nomes dos arquivos de log são baseados no padrão de nome do arquivo do parâmetro `log_filename`. As configurações disponíveis para esse parâmetro são as seguintes:
+ `postgresql.log.%Y-%m-%d`: formato padrão do nome do arquivo de log. Inclui o ano, o mês e a data no nome do arquivo de log.
+ `postgresql.log.%Y-%m-%d-%H`: inclui a hora no formato do nome do arquivo de log.

Para ter mais informações, consulte [https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-AGE](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-AGE) e [https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-SIZE](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-SIZE) na documentação do PostgreSQL.

## Definir o destino dos logs (`stderr`, `csvlog`)
<a name="USER_LogAccess.Concepts.PostgreSQL.Log_Format"></a>

Por padrão, o Amazon RDS PostgreSQL gera logs no formato de erro padrão (stderr). Esse formato é a configuração padrão do parâmetro `log_destination`. Cada mensagem é prefixada usando o padrão especificado no parâmetro `log_line_prefix`. Para ter mais informações, consulte [Noções básicas sobre o parâmetro log\$1line\$1prefix](#USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix). 

O RDS para PostgreSQL também pode gerar os registros no formato `csvlog`. O `csvlog` é útil para analisar os dados de log como dados de valores separados por vírgula (CSV). Por exemplo, digamos que você use a extensão `log_fdw` para trabalhar com seus logs como tabelas externas. A tabela externa criada nos arquivos de log do `stderr` contém uma única coluna com dados de eventos de log. Ao adicionar `csvlog` ao parâmetro `log_destination`, você obtém o arquivo de log no formato CSV com demarcações para as várias colunas da tabela externa. Agora você pode classificar e analisar os logs com maior facilidade. Para saber como usar o `log_fdw` com o `csvlog`, consulte [Usar a extensão log\$1fdw para acessar o log de banco de dados usando SQL](CHAP_PostgreSQL.Extensions.log_fdw.md).

Se você especificar `csvlog` para esse parâmetro, lembre-se de que os arquivos `stderr` e `csvlog` são gerados. Monitore o armazenamento consumido pelos logs, levando em consideração o `rds.log_retention_period` e outras configurações que afetam o armazenamento e a rotatividade dos logs. O uso de `stderr` e `csvlog` mais do que dobra o armazenamento consumido pelos logs.

Se você adicionar `csvlog` a `log_destination` e quiser reverter para o `stderr`, precisará redefinir o parâmetro. Para fazer isso, use o console do Amazon RDS e, depois, abra o grupo de parâmetros do banco de dados para sua instância. Selecione o parâmetro `log_destination`, **Edit parameter** (Editar parâmetro) e depois **Reset** (Redefinir). 

Para ter mais informações sobre como configurar o registro em log, consulte [Trabalhar com logs do Amazon RDS e do Aurora PostgreSQL: parte 1](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-1/).

## Noções básicas sobre o parâmetro log\$1line\$1prefix
<a name="USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix"></a>

O formato de log `stderr` prefixa cada mensagem de log com os detalhes especificados pelo parâmetro `log_line_prefix`. O valor padrão é:

```
%t:%r:%u@%d:[%p]:t
```

A partir do Aurora PostgreSQL versão 16, você também pode escolher:

```
%m:%r:%u@%d:[%p]:%l:%e:%s:%v:%x:%c:%q%a
```

Cada entrada de log enviada para stderr inclui as seguintes informações com base no valor selecionado:
+ `%t`: hora da entrada do log sem milissegundos.
+ `%m`: hora da entrada do log com milissegundos.
+  `%r`: endereço do host remoto.
+  `%u@%d`: nome de usuário no nome do banco de dados.
+  `[%p]`: ID do processo, se disponível.
+  `%l`: número da linha de log por sessão. 
+  `%e`: código de erro SQL. 
+  `%s`: data e hora de início do processo. 
+  `%v`: ID da transação virtual. 
+  `%x`: ID da transação. 
+  `%c`: ID da sessão. 
+  `%q`: terminador não relacionado à sessão. 
+  `%a`: nome da aplicação. 

# Ativar o registro em log de consultas para a instância de banco de dados do RDS para PostgreSQL
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging"></a>

Você pode coletar informações mais detalhadas sobre suas atividades de banco de dados, inclusive consultas, consultas à espera de bloqueios, pontos de verificação e muitos outros detalhes definindo alguns dos parâmetros listados na tabela a seguir. Este tópico se concentra no registro em log de consultas.


| Parâmetro | Padrão | Descrição | 
| --- | --- | --- | 
| log\$1connections | – | Registra cada conexão bem-sucedida.  | 
| log\$1disconnections | – | Registra o final de cada sessão e sua duração.  | 
| log\$1checkpoints | 1 | Registra em log cada ponto de verificação.  | 
| log\$1lock\$1waits | – | Registra esperas de bloqueio longas. Por padrão, esse parâmetro não está definido. | 
| log\$1min\$1duration\$1sample | – | (ms) Define o tempo de execução mínimo acima do qual uma amostra de declarações será registrada. O tamanho da amostra é definido usando o parâmetro log\$1statement\$1sample\$1rate. | 
| log\$1min\$1duration\$1statement | – | Todas as instruções SQL executadas pelo menos por um período especificado ou mais é registrada. Por padrão, esse parâmetro não está definido. Ativar esse parâmetro pode ajudar a encontrar consultas não otimizadas. | 
| log\$1statement | – | Define o tipo de instruções registradas. Por padrão, esse parâmetro não está definido, mas você pode alterá-lo para `all`, `ddl` ou `mod` para especificar os tipos de declaração SQL que você deseja registrar. Se você especificar algo diferente de `none` para esse parâmetro, você também deve tomar medidas adicionais para evitar a exposição de senhas nos arquivos de log. Para ter mais informações, consulte [Reduzir o risco de exposição de senhas ao usar o registro em log de consultasReduzir o risco de exposição de senhas](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk).  | 
| log\$1statement\$1sample\$1rate | – | A porcentagem de declarações que excedem o tempo especificado em `log_min_duration_sample` para serem registradas, expressa como um valor de ponto flutuante entre 0,0 e 1,0.  | 
| log\$1statement\$1stats | – | Grava estatísticas de desempenho cumulativas no log do servidor. | 

## Usar o registro em log para encontrar consultas de baixa performance
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging.using"></a>

Você pode registrar consultas e declarações SQL para ajudar a encontrar consultas com a performance lenta. Você ativa esse recurso modificando as configurações dos parâmetros `log_statement` e `log_min_duration` conforme descrito nesta seção. Antes de ativar o registro em log de consultas para sua instância de banco de dados do RDS para PostgreSQL, você deve estar ciente da possível exposição de senhas nos logs e de como reduzir os riscos. Para ter mais informações, consulte [Reduzir o risco de exposição de senhas ao usar o registro em log de consultasReduzir o risco de exposição de senhas](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk). 

A seguir, você encontrará informações de referência sobre os parâmetros `log_statement` e `log_min_duration`.log\$1statement

Esse parâmetro especifica o tipo de declarações SQL que devem ser enviadas ao log. O valor padrão é `none`. Se você alterar esse parâmetro para `all`, `ddl` ou `mod`, realize algumas das ações recomendadas para reduzir o risco de expor senhas nos logs. Para ter mais informações, consulte [Reduzir o risco de exposição de senhas ao usar o registro em log de consultasReduzir o risco de exposição de senhas](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk). 

**todas**  
Registra todas as declarações. Essa configuração é recomendada para fins de depuração.

**ddl**  
Registra todas as declarações de linguagem de definição de dados (DDL), como CREATE, ALTER, DROP etc.

**mod**  
Registra todas as declarações DDL e declarações de linguagem de manipulação de dados (INSERT, UPDATE e DELETE) que modificam os dados.

**nenhuma**  
Nenhuma declaração SQL é registrada. Recomendamos essa configuração para evitar o risco de expor senhas nos logs.log\$1min\$1duration\$1statement

Todas as instruções SQL executadas pelo menos por um período especificado ou mais é registrada. Por padrão, esse parâmetro não está definido. Ativar esse parâmetro pode ajudar a encontrar consultas não otimizadas.

**–1–2147483647**  
O número de milissegundos (ms) de tempo de execução durante o qual uma declaração é registrada.

**Como configurar o registro em log de consultas**

Essas etapas pressupõem que o A instância de banco de dados do RDS para PostgreSQL usa um grupo de parâmetros de banco de dados personalizado. 

1. Defina o parâmetro `log_statement` como `all`. O exemplo a seguir mostra a informação gravada no arquivo `postgresql.log`com essa configuração de parâmetro.

   ```
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: statement: SELECT feedback, s.sentiment,s.confidence
   FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s
   ORDER BY s.confidence DESC;
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: QUERY STATISTICS
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:DETAIL: ! system usage stats:
   ! 0.017355 s user, 0.000000 s system, 0.168593 s elapsed
   ! [0.025146 s user, 0.000000 s system total]
   ! 36644 kB max resident size
   ! 0/8 [0/8] filesystem blocks in/out
   ! 0/733 [0/1364] page faults/reclaims, 0 [0] swaps
   ! 0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent
   ! 19/0 [27/0] voluntary/involuntary context switches
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: SELECT feedback, s.sentiment,s.confidence
   FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s
   ORDER BY s.confidence DESC;
   2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:ERROR: syntax error at or near "ORDER" at character 1
   2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: ORDER BY s.confidence DESC;
   ----------------------- END OF LOG ----------------------
   ```

1. Defina o parâmetro `log_min_duration_statement`. O exemplo a seguir mostra a informação gravada no arquivo `postgresql.log` quando o parâmetro estiver definido como `1`.

   As consultas que excedem a duração especificada no parâmetro `log_min_duration_statement` são registradas. Por exemplo: Você pode visualizar o arquivo de log de sua instância de banco de dados do RDS para PostgreSQL no console do Amazon RDS. 

   ```
   2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: statement: DROP table comments;
   2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: duration: 167.754 ms
   2022-10-05 19:08:07 UTC::@:[355]:LOG: checkpoint starting: time
   2022-10-05 19:08:08 UTC::@:[355]:LOG: checkpoint complete: wrote 11 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.013 s, sync=0.006 s, total=1.033 s; sync files=8, longest=0.004 s, average=0.001 s; distance=131028 kB, estimate=131028 kB
   ----------------------- END OF LOG ----------------------
   ```

### Reduzir o risco de exposição de senhas ao usar o registro em log de consultas
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk"></a>

Recomendamos manter `log_statement` definido como `none` para evitar a exposição de senhas. Se você definir `log_statement` como `all`, `ddl` ou`mod`, recomendamos que você siga uma ou mais destas etapas.
+ Para o cliente, criptografe informações confidenciais. Para ter mais informações consulte [Encryption Options](https://www.postgresql.org/docs/current/encryption-options.html) (Opções de criptografia) na documentação do PostgreSQL. Use as opções `ENCRYPTED` (e `UNENCRYPTED`) das declarações `CREATE` e `ALTER`. Para ter mais informações, consulte [CREATE USER](https://www.postgresql.org/docs/current/sql-createuser.html) na documentação do PostgreSQL.
+ Para instância de banco de dados do RDS para PostgreSQL, configure e use a extensão de auditoria do PostgreSQL (pgAudit). Essa extensão remove informações confidenciais das declarações CREATE e ALTER enviadas ao log. Para ter mais informações, consulte [Usar pgAudit para registrar a atividade do banco de dados](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md). 
+ Restringir o acesso aos logs CloudWatch.
+ Use mecanismos de autenticação mais fortes, como IAM.

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

Para armazenar os registros de log do PostgreSQL em armazenamento resiliente, você pode usar o Amazon CloudWatch Logs. Com o CloudWatch Logs, é possível realizar análise em tempo real de dados e usar o CloudWatch para visualizar métricas e criar alarmes. Por exemplo, se você definir `log_statement` como `ddl`, poderá configurar um alarme para alertar sempre que uma declaração DDL for executada. Você pode optar por fazer upload dos logs do PostgreSQL no CloudWatch Logs durante o processo de criação de sua instância de banco de dados do RDS para PostgreSQL. Se você optar por não fazer upload de logs no momento, poderá modificar sua instância posteriormente para começar a fazer upload dos logs a partir desse momento. Em outras palavras, não é feito upload dos logs existentes. Só é feito upload de novos logs, pois eles são criados em sua instância de banco de dados do RDS para PostgreSQL modificada.

Todas as versões do RDS para PostgreSQL atualmente disponíveis são compatíveis com a publicação de arquivos de log no CloudWatch Logs. Para obter informações, consulte [Amazon RDS for PostgreSQL updates](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-versions.html) (Atualizações do Amazon RDS para PostgreSQL) nas *Amazon RDS for PostgreSQL Release Notes* (Notas de versão do Amazon RDS para PostgreSQL). 

Para trabalhar com o CloudWatch Logs, configure o RDS para a instância de banco de dados do PostgreSQL para publicar dados de log a um grupo de log.

Você pode publicar os seguintes tipos de log no CloudWatch Logs do RDS do PostgreSQL: 
+ Log do PostgreSQL
+ Log de atualização 
+ Log de erros de autenticação de banco de dados do IAM

Depois que você concluir a configuração, o Amazon RDS publicará os eventos de log em fluxos de logs dentro de um grupo de logs do CloudWatch. Por exemplo, os dados de log do PostgreSQL são armazenados no grupo de logs `/aws/rds/instance/my_instance/postgresql`. Para visualizar os logs, abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

### Console
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.CON"></a>

**Para publicar logs do PostgreSQL no CloudWatch Logs usando o console**

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)**.

1. Escolha a instância de banco de dados que você deseja modificar e escolha **Modify (Modificar)**.

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

   A seção **Log exports (Exportações de log)** só está disponível para versões do PostgreSQL compatível com a publicação 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.Concepts.PostgreSQL.PublishtoCloudWatchLogs.CLI"></a>

Publique logs do PostgreSQL com a AWS CLI. Você pode chamar 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 parâmetros a seguir.
+ `--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.

Também publique logs do PostgreSQL chamando os seguintes comandos de CLI:
+ [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-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

Execute um destes comandos da CLI com as seguintes opções: 
+ `--db-instance-identifier`
+ `--enable-cloudwatch-logs-exports`
+ `--db-instance-class`
+ `--engine`

Outras opções podem ser obrigatórias, dependendo do comando da CLI executado.

**Example Modificar uma instância para publicar logs no CloudWatch Logs**  
O exemplo a seguir modifica uma instância de banco de dados PostgreSQL existente para publicar arquivos de log em CloudWatch Logs. O valor `--cloudwatch-logs-export-configuration` é um objeto JSON. A chave desse objeto é `EnableLogTypes`, e o valor é uma matriz de strings com uma combinação qualquer de `postgresql` e `upgrade`.  
Para Linux, macOS ou Unix:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql", "upgrade"]}'
```
Para Windows:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql","upgrade"]}'
```

**Example Criar uma instância para publicar logs no CloudWatch Logs**  
O exemplo a seguir cria uma instância de banco de dados PostgreSQL e publica arquivos de log em CloudWatch Logs. O valor `--enable-cloudwatch-logs-exports` é uma matriz de strings JSON. As strings podem ser uma combinação qualquer de `postgresql` e `upgrade`.  
Para Linux, macOS ou Unix:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' \
4.     --db-instance-class db.m4.large \
5.     --engine postgres
```
Para Windows:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' ^
4.     --db-instance-class db.m4.large ^
5.     --engine postgres
```

### API do RDS
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.API"></a>

Publique logs do PostgreSQL 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 é possível publicar logs do PostgreSQL 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_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 executada.

 

# Monitorar chamadas de API do Amazon RDSno AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

O AWS CloudTrail é um serviço da AWS que ajuda a auditar a conta da AWS. O AWS CloudTrail é ativado na sua conta da AWS quando ela é criada. Para obter mais informações sobre o CloudTrail, consulte o [ Guia do usuário do AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/).

**Topics**
+ [Integração do CloudTrail com o Amazon RDS](#service-name-info-in-cloudtrail)
+ [Entradas do arquivo de log do Amazon RDS](#understanding-service-name-entries)

## Integração do CloudTrail com o Amazon RDS
<a name="service-name-info-in-cloudtrail"></a>

Todas as ações do Amazon RDS são registradas em log pelo CloudTrail. O CloudTrail fornece um registro de ações executadas por um usuário, uma função ou um serviço da AWS no Amazon RDS.

### Eventos do CloudTrail
<a name="service-name-info-in-cloudtrail.events"></a>

O CloudTrail captura as chamadas de API do Amazon RDS como eventos. Um evento representa uma única solicitação de qualquer origem e inclui informações sobre a ação solicitada, a data e a hora da ação, os parâmetros de solicitação e assim por diante. Os eventos incluem as chamadas do console do Amazon RDS e as chamadas de código para as operações de API do Amazon RDS. 

A atividade do Amazon RDS é registrada em um evento do CloudTrail em **Event history** (Histórico de eventos). Você pode usar o console do CloudTrail para visualizar os últimos 90 dias de eventos e de atividades de API registrados em uma região da AWS. Para obter mais informações, consulte [Visualizar eventos com o histórico de eventos do CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html). 

### Trilhas do CloudTrail
<a name="service-name-info-in-cloudtrail.trails"></a>

Para obter um registro contínuo de eventos na conta da AWS, incluindo eventos do Amazon RDS, crie uma trilha. Uma trilha é uma configuração que permite a entrega de eventos a um bucket do Amazon S3 especificado. O CloudTrail normalmente fornece os arquivos de log em até 15 minutos após uma atividade da conta.

**nota**  
Se você não configurar uma trilha, ainda poderá visualizar os eventos mais recentes no console do CloudTrail no **Histórico de eventos**.

É possível criar dois tipos de trilhas para uma conta da AWS: uma trilha que se aplica a todas as regiões ou uma trilha que se aplica a uma região. Por padrão, quando uma trilha é criada no console, a mesma é aplicada a todas as regiões da . 

Além disso, é possível configurar outros serviços da AWS para analisar e agir melhor com base nos dados de eventos coletados nos logs do CloudTrail. Para obter mais informações, consulte: 
+ [Visão geral da criação de uma trilha](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [Serviços e integrações compatíveis com o CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [Configurar notificações do Amazon SNS para o CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [Receber arquivos de log do CloudTrail de várias regiões](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html) e [Receber arquivos de log do CloudTrail de várias contas](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

## Entradas do arquivo de log do Amazon RDS
<a name="understanding-service-name-entries"></a>

Os arquivos de log do CloudTrail contêm uma ou mais entradas de log. Os arquivos de log do CloudTrail não são um rastreamento de pilha ordenada das chamadas de API pública. Dessa forma, eles não são exibidos em uma ordem específica. 

O exemplo a seguir mostra uma entrada de log do CloudTrail que demonstra a ação `CreateDBInstance`.

```
{
    "eventVersion": "1.04",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AKIAIOSFODNN7EXAMPLE",
        "arn": "arn:aws:iam::123456789012:user/johndoe",
        "accountId": "123456789012",
        "accessKeyId": "AKIAI44QH8DHBEXAMPLE",
        "userName": "johndoe"
    },
    "eventTime": "2018-07-30T22:14:06Z",
    "eventSource": "rds.amazonaws.com",
    "eventName": "CreateDBInstance",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "192.0.2.0",
    "userAgent": "aws-cli/1.15.42 Python/3.6.1 Darwin/17.7.0 botocore/1.10.42",
    "requestParameters": {
        "enableCloudwatchLogsExports": [
            "audit",
            "error",
            "general",
            "slowquery"
        ],
        "dBInstanceIdentifier": "test-instance",
        "engine": "mysql",
        "masterUsername": "myawsuser",
        "allocatedStorage": 20,
        "dBInstanceClass": "db.m1.small",
        "masterUserPassword": "****"
    },
    "responseElements": {
        "dBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance",
        "storageEncrypted": false,
        "preferredBackupWindow": "10:27-10:57",
        "preferredMaintenanceWindow": "sat:05:47-sat:06:17",
        "backupRetentionPeriod": 1,
        "allocatedStorage": 20,
        "storageType": "standard",
        "engineVersion": "8.0.28",
        "dbInstancePort": 0,
        "optionGroupMemberships": [
            {
                "status": "in-sync",
                "optionGroupName": "default:mysql-8-0"
            }
        ],
        "dBParameterGroups": [
            {
                "dBParameterGroupName": "default.mysql8.0",
                "parameterApplyStatus": "in-sync"
            }
        ],
        "monitoringInterval": 0,
        "dBInstanceClass": "db.m1.small",
        "readReplicaDBInstanceIdentifiers": [],
        "dBSubnetGroup": {
            "dBSubnetGroupName": "default",
            "dBSubnetGroupDescription": "default",
            "subnets": [
                {
                    "subnetAvailabilityZone": {"name": "us-east-1b"},
                    "subnetIdentifier": "subnet-cbfff283",
                    "subnetStatus": "Active"
                },
                {
                    "subnetAvailabilityZone": {"name": "us-east-1e"},
                    "subnetIdentifier": "subnet-d7c825e8",
                    "subnetStatus": "Active"
                },
                {
                    "subnetAvailabilityZone": {"name": "us-east-1f"},
                    "subnetIdentifier": "subnet-6746046b",
                    "subnetStatus": "Active"
                },
                {
                    "subnetAvailabilityZone": {"name": "us-east-1c"},
                    "subnetIdentifier": "subnet-bac383e0",
                    "subnetStatus": "Active"
                },
                {
                    "subnetAvailabilityZone": {"name": "us-east-1d"},
                    "subnetIdentifier": "subnet-42599426",
                    "subnetStatus": "Active"
                },
                {
                    "subnetAvailabilityZone": {"name": "us-east-1a"},
                    "subnetIdentifier": "subnet-da327bf6",
                    "subnetStatus": "Active"
                }
            ],
            "vpcId": "vpc-136a4c6a",
            "subnetGroupStatus": "Complete"
        },
        "masterUsername": "myawsuser",
        "multiAZ": false,
        "autoMinorVersionUpgrade": true,
        "engine": "mysql",
        "cACertificateIdentifier": "rds-ca-2015",
        "dbiResourceId": "db-ETDZIIXHEWY5N7GXVC4SH7H5IA",
        "dBSecurityGroups": [],
        "pendingModifiedValues": {
            "masterUserPassword": "****",
            "pendingCloudwatchLogsExports": {
                "logTypesToEnable": [
                    "audit",
                    "error",
                    "general",
                    "slowquery"
                ]
            }
        },
        "dBInstanceStatus": "creating",
        "publiclyAccessible": true,
        "domainMemberships": [],
        "copyTagsToSnapshot": false,
        "dBInstanceIdentifier": "test-instance",
        "licenseModel": "general-public-license",
        "iAMDatabaseAuthenticationEnabled": false,
        "performanceInsightsEnabled": false,
        "vpcSecurityGroups": [
            {
                "status": "active",
                "vpcSecurityGroupId": "sg-f839b688"
            }
        ]
    },
    "requestID": "daf2e3f5-96a3-4df7-a026-863f96db793e",
    "eventID": "797163d3-5726-441d-80a7-6eeb7464acd4",
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

Conforme mostrado no elemento `userIdentity` no exemplo anterior, cada evento ou entrada de log contém informações sobre quem gerou a solicitação. As informações de identidade ajudam a determinar: 
+ Se a solicitação foi feita com credenciais de usuário-raiz ou usuário do IAM.
+ Se a solicitação foi feita com credenciais de segurança temporárias de uma função ou de um usuário federado.
+ Se a solicitação foi feita por outro serviço da AWS.

Para obter mais informações sobre o `userIdentity`, consulte o [Elemento userIdentity do CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html). Para obter mais informações sobre `CreateDBInstance` e outras ações do Amazon RDS, consulte a [Referência da API do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/).

# Monitorar o Amazon RDS com o recurso Database Activity Streams
<a name="DBActivityStreams"></a><a name="das"></a>

Usando o recurso Database Activity Streams, você pode monitorar fluxos quase em tempo real da atividade de um banco de dados.

**Topics**
+ [Visão geral dos Database Activity Streams](#DBActivityStreams.Overview)
+ [Configurar a auditoria unificada do Oracle Database](DBActivityStreams.configuring-auditing.md)
+ [Configurar uma política de auditoria para o Amazon RDS para Microsoft SQL Server](DBActivityStreams.configuring-auditing-SQLServer.md)
+ [Iniciar um stream de atividade de banco de dados](DBActivityStreams.Enabling.md)
+ [Modificar um fluxo de atividades de banco de dados para o Amazon RDS](DBActivityStreams.Modifying.md)
+ [Obter o status de um fluxo de atividade de banco de dados](DBActivityStreams.Status.md)
+ [Interromper um fluxo de atividade de banco de dados](DBActivityStreams.Disabling.md)
+ [Monitorar fluxos de atividades de banco de dados](DBActivityStreams.Monitoring.md)
+ [Exemplos de políticas do IAM para fluxos de atividades de banco de dados](DBActivityStreams.ManagingAccess.md)

## Visão geral dos Database Activity Streams
<a name="DBActivityStreams.Overview"></a>

Como administrador de um banco de dados do Amazon RDS, você precisa proteger o banco de dados e atender aos requisitos regulatórios e de compatibilidade. Uma estratégia é integrar fluxos de atividades de banco de dados às suas ferramentas de monitoramento. Dessa forma, você monitora e define alarmes para realizar a auditoria da atividade no banco de dados.

As ameaças à segurança são externas e internas. Para se proteger contra ameaças internas, você pode controlar o acesso do administrador aos transmissões de dados configurando o recurso Database Activity Streams. Os administradores de bancos de dados do Amazon RDS não têm acesso à coleta, transmissão, armazenamento e processamento das transmissões.

**Contents**
+ [Como os fluxos de atividade do banco de dados funcionam](#DBActivityStreams.Overview.how-they-work)
+ [Auditoria no Oracle Database e no banco de dados Microsoft SQL](#DBActivityStreams.Overview.auditing)
  + [Auditoria unificada no Oracle Database](#DBActivityStreams.Overview.unified-auditing)
  + [Auditoria no Microsoft SQL Server](#DBActivityStreams.Overview.SQLServer-auditing)
  + [Campos de auditoria não nativos para Oracle Database e SQL Server](#DBActivityStreams.Overview.unified-auditing.non-native)
  + [Substituição do grupo de parâmetros de banco de dados](#DBActivityStreams.Overview.unified-auditing.parameter-group)
+ [Modo assíncrono para fluxos de atividades de banco de dados](#DBActivityStreams.Overview.sync-mode)
+ [Requisitos e limitações para fluxos de atividade de banco de dados](#DBActivityStreams.Overview.requirements)
+ [Disponibilidade de regiões e versões](#DBActivityStreams.RegionVersionAvailability)
+ [Classes de instância de banco de dados compatíveis para transmissões de atividades de banco de dados](#DBActivityStreams.Overview.requirements.classes)

### Como os fluxos de atividade do banco de dados funcionam
<a name="DBActivityStreams.Overview.how-they-work"></a>

O Amazon RDS envia atividades para um fluxo de dados do Amazon Kinesis quase em tempo real. O fluxo do Kinesis é criado automaticamente. No Kinesis, é possível configurar serviços da AWS, como o Amazon Data Firehose e o AWS Lambda, para consumir o fluxo e armazenar os dados.

**Importante**  
O uso do recurso Database Activity Streams é gratuito no Amazon RDS, mas o Amazon Kinesis cobra pelo fluxo de dados. Para ter mais informações, consulte [Definição de preço do Amazon Kinesis Data Streams](https://aws.amazon.com/kinesis/data-streams/pricing/).

É possível configurar aplicações para gerenciamento de conformidade com o objetivo de consumir fluxos de atividades do banco de dados. Essas aplicações podem usar o fluxo para gerar alertas e auditar atividades em seu banco de dados.

O Amazon RDS é compatível com fluxos de atividade de banco de dados em implantações multi-AZ. Nesse caso, os fluxos de atividades do banco de dados auditam as instâncias principal e em espera.

### Auditoria no Oracle Database e no banco de dados Microsoft SQL
<a name="DBActivityStreams.Overview.auditing"></a>

Auditoria é o monitoramento e registro de ações de banco de dados configuradas. O Amazon RDS não captura a atividade de um banco de dados por padrão. Você mesmo cria e gerencia políticas de auditoria no banco de dados.

**Topics**
+ [Auditoria unificada no Oracle Database](#DBActivityStreams.Overview.unified-auditing)
+ [Auditoria no Microsoft SQL Server](#DBActivityStreams.Overview.SQLServer-auditing)
+ [Campos de auditoria não nativos para Oracle Database e SQL Server](#DBActivityStreams.Overview.unified-auditing.non-native)
+ [Substituição do grupo de parâmetros de banco de dados](#DBActivityStreams.Overview.unified-auditing.parameter-group)

#### Auditoria unificada no Oracle Database
<a name="DBActivityStreams.Overview.unified-auditing"></a>

Em um banco de dados Oracle, uma *política de auditoria unificada* é um grupo chamado de configurações de auditoria que você pode usar para auditar um aspecto do comportamento do usuário. Uma política pode ser tão simples quanto auditar as atividades de um único usuário. Também é possível criar políticas de auditoria complexas que usam condições.

Um banco de dados Oracle grava registros de auditoria, inclusive registros de auditoria do `SYS`, para a *trilha de auditoria unificada*. Por exemplo, se ocorrer um erro durante uma instrução `INSERT`, a auditoria padrão indicará o número do erro e o SQL que foi executado. A trilha de auditoria reside em uma tabela somente leitura no esquema do `AUDSYS`. Para acessar esses registros,consulte a visualização do dicionário de dados `UNIFIED_AUDIT_TRAIL`.

Normalmente, configure fluxos de atividade do banco de dados da seguinte maneira:

1. Crie uma política de auditoria do Oracle Database usando o comando `CREATE AUDIT POLICY`.

   O Oracle Database gera registros de auditoria.

1. Ative a política de auditoria usando o comando `AUDIT POLICY`.

1. Configurar fluxos de atividade do banco de dados.

   Somente as atividades que correspondem às políticas de auditoria do Oracle Database são capturadas e enviadas ao fluxo de dados do Amazon Kinesis. Quando fluxos de atividades de banco de dados são habilitados, um administrador de banco de dados Oracle não pode alterar a política de auditoria nem remover registros de auditoria.

Para saber mais sobre as políticas de auditoria unificadas, consulte [Sobre atividades de auditoria com políticas de auditoria unificadas e AUDIT](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-audit-policies.html#GUID-2435D929-10AD-43C7-8A6C-5133170074D0) no *Guia de segurança do Oracle Database*.

#### Auditoria no Microsoft SQL Server
<a name="DBActivityStreams.Overview.SQLServer-auditing"></a>

O fluxo de atividade de banco de dados usa o recurso SQLAudit para auditar o banco de dados do SQL Server.

A instância do RDS para SQL Server contém o seguinte:
+ Auditoria de servidor: a auditoria de servidor SQL coleta uma única instância de ações no nível do servidor ou do banco de dados, e um grupo de ações a serem monitoradas. As auditorias `RDS_DAS_AUDIT` e `RDS_DAS_AUDIT_CHANGES` em nível de servidor são gerenciadas pelo RDS.
+ Especificação de auditoria de servidor: a especificação de auditoria de servidor registra os eventos no nível do servidor. Você pode modificar a especificação `RDS_DAS_SERVER_AUDIT_SPEC`. Essa especificação está vinculada à auditoria de servidor `RDS_DAS_AUDIT`. A especificação `RDS_DAS_CHANGES_AUDIT_SPEC` é gerenciada pelo RDS.
+ Especificação de auditoria de banco de dados: a especificação de auditoria de banco de dados registra os eventos no nível do banco de dados. Você pode criar uma especificação de auditoria de banco de dados `RDS_DAS_DB_<name>` e vinculá-la à auditoria de servidor `RDS_DAS_AUDIT`.

Você pode configurar fluxos de atividade de banco de dados usando o console ou a CLI. Normalmente, configure fluxos de atividade do banco de dados da seguinte maneira:

1. (Opcional) Crie uma especificação de auditoria de banco de dados com o comando `CREATE DATABASE AUDIT SPECIFICATION` e vincule-a à auditoria de servidor `RDS_DAS_AUDIT`. 

1. (Opcional) Modifique a especificação de auditoria de servidor com o comando `ALTER SERVER AUDIT SPECIFICATION` e defina as políticas. 

1. Ative as políticas de auditoria de banco de dados e servidor. Por exemplo:

   `ALTER DATABASE AUDIT SPECIFICATION [<Your database specification>] WITH (STATE=ON)`

   `ALTER SERVER AUDIT SPECIFICATION [RDS_DAS_SERVER_AUDIT_SPEC] WITH (STATE=ON)`

1. Configurar fluxos de atividade do banco de dados.

   Somente as atividades que correspondem às políticas de auditoria de servidor e banco de dados são capturadas e enviadas ao fluxo de dados do Amazon Kinesis. Quando fluxos de atividade de banco de dados estão habilitados e as políticas estão bloqueadas, um administrador de banco de dados não pode alterar a política de auditoria nem remover registros de auditoria. 
**Importante**  
Se a especificação de auditoria de banco de dados para um banco de dados específico estiver habilitada e a política estiver em um estado bloqueado, o banco de dados não poderá ser descartado.

Para ter mais informações sobre auditoria do SQL Server, consulte [Componentes de auditoria do SQL Server](https://learn.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-database-engine?view=sql-server-ver16) na *documentação do Microsoft SQL Server*.



#### Campos de auditoria não nativos para Oracle Database e SQL Server
<a name="DBActivityStreams.Overview.unified-auditing.non-native"></a>

Quando você inicia um fluxo de atividade de banco de dados, cada evento de banco de dados gera um evento de fluxo de atividade correspondente. Por exemplo, um usuário de banco de dados pode executar as instruções `SELECT` e `INSERT`. O banco de dados audita esses eventos e os envia para um fluxo de dados do Amazon Kinesis.

Os eventos são representados no fluxo como objetos JSON. Um objeto JSON contém um `DatabaseActivityMonitoringRecord`, que contém uma matriz `databaseActivityEventList`. Os campos predefinidos na matriz incluem `class`, `clientApplication` e `command`.

Por padrão, um fluxo de atividade não contém campos de auditoria nativos do mecanismo. É possível configurar o Amazon RDS para Oracle e o SQL Server de modo que inclua esses campos extras no objeto JSON `engineNativeAuditFields`.

No Oracle Database, a maioria dos eventos na trilha de auditoria unificada são mapeados para campos do fluxo de atividade de dados do RDS. Por exemplo, o campo `UNIFIED_AUDIT_TRAIL.SQL_TEXT` em mapas de auditoria unificada para o campo `commandText` em um fluxo de atividade de banco de dados. No entanto, campos de auditoria do Oracle Database, como `OS_USERNAME`, não são mapeados para campos predefinidos em um fluxo de atividade de banco de dados.

No SQL Server, a maioria dos campos do evento que são registrados pelo SQLAudit são mapeados para os campos no fluxo de atividade do banco de dados RDS. Por exemplo, o campo `code` de `sys.fn_get_audit_file` na auditoria é mapeado para o campo `commandText` em um fluxo de atividade de banco de dados. No entanto, campos de auditoria de banco de dados do SQL Server, como `permission_bitmask`, não são mapeados para campos predefinidos em um fluxo de atividade de banco de dados.

Para ter mais informações sobre databaseActivityEventList, consulte [Matriz JSON databaseActivityEventList para fluxos de atividades de banco de dados](DBActivityStreams.AuditLog.databaseActivityEventList.md).

#### Substituição do grupo de parâmetros de banco de dados
<a name="DBActivityStreams.Overview.unified-auditing.parameter-group"></a>

Normalmente, você ativa a auditoria unificada no RDS for Oracle anexando um grupo de parâmetros. No entanto, o recurso Database Activity Streams requer configuração adicional. Para melhorar a experiência do cliente, o Amazon RDS faz o seguinte:
+ Se você ativar um fluxo de atividade, o RDS para Oracle vai ignorar os parâmetros de auditoria no grupo de parâmetros.
+ Se você desativar um fluxo de atividade, o RDS para Oracle deixará de ignorar os parâmetros de auditoria.

O fluxo de atividade de banco de dados para o SQL Server não depende de nenhum parâmetro definido na opção de auditoria SQL.

### Modo assíncrono para fluxos de atividades de banco de dados
<a name="DBActivityStreams.Overview.sync-mode"></a>

Os fluxos de atividade no Amazon RDS são sempre assíncronos. Quando uma sessão de banco de dados gera um evento de fluxo de atividade, a sessão retorna às atividades normais imediatamente. Em segundo plano, o Amazon RDS transforma o evento do fluxo de atividade em um registro durável.

Se ocorrer um erro na tarefa de segundo plano, o Amazon RDS gera um evento. Este evento indica o início e o final de qualquer janela de tempo em que os registros do evento do fluxo de atividade podem ter sido perdidos. O modo assíncrono favorece a performance do banco de dados sobre a precisão do fluxo de atividade.

### Requisitos e limitações para fluxos de atividade de banco de dados
<a name="DBActivityStreams.Overview.requirements"></a>

No RDS, os fluxos de atividade de banco de dados têm os seguintes requisitos e limites:
+ O Amazon Kinesis é imprescindível para os fluxos de atividades do banco de dados.
+ O AWS Key Management Service (AWS KMS) é imprescindível para fluxos de atividades de banco de dados, pois eles são sempre criptografados.
+ A aplicação de criptografia adicional ao seu fluxo de dados do Amazon Kinesis é incompatível com fluxos de atividade do banco de dados, que já estão criptografados com sua chave do AWS KMS.
+ Você mesmo cria e gerencia políticas de auditoria. Por padrão, diferente do Amazon Aurora, o RDS for Oracle não captura atividades.
+ Você mesmo cria e gerencia políticas e especificações de auditoria. Por padrão, ao contrário do Amazon Aurora, o Amazon RDS não captura a atividade de um banco de dados.
+ Em uma implantação multi-AZ, inicie o fluxo de atividade de banco de dados apenas na instância de banco de dados primária. O fluxo de atividades audita as instâncias de banco de dados primário e em espera automaticamente. Não é necessária nenhuma etapa adicional durante um failover.
+ Renomear uma instância de banco de dados não criará um novo fluxo do Kinesis.
+ O RDS para Oracle não oferece suporte a CDBs.
+ As réplicas de leitura não são compatíveis.

### Disponibilidade de regiões e versões
<a name="DBActivityStreams.RegionVersionAvailability"></a>

A disponibilidade e a compatibilidade de recursos variam entre versões específicas de cada mecanismo de banco de dados e entre Regiões da AWS. Para ter mais informações sobre a disponibilidade de versões e regiões para fluxos de atividades de banco de dados, consulte [Regiões e mecanismos de banco de dados compatíveis com fluxos de atividades de banco de dados no Amazon RDS](Concepts.RDS_Fea_Regions_DB-eng.Feature.DBActivityStreams.md).

### Classes de instância de banco de dados compatíveis para transmissões de atividades de banco de dados
<a name="DBActivityStreams.Overview.requirements.classes"></a>

Para o RDS para Oracle, é possível utilizar fluxos de atividade de banco de dados com as seguintes classes de instâncias de banco de dados:
+ db.m4.\$1large
+ db.m5.\$1large
+ db.m5d.\$1large
+ db.m6i.\$1large
+ db.r4.\$1large
+ db.r5.\$1large
+ db.r5.\$1large.tpc\$1.mem\$1x
+ db.r5b.\$1large
+ db.r5b.\$1large.tpc\$1.mem\$1x
+ db.r5d.\$1large
+ db.r6i.\$1large
+ db.r6i.\$1large.tpc\$1.mem\$1x
+ db.x2idn.\$1large
+ db.x2iedn.\$1large
+ db.x2iezn.\$1large
+ db.z1d.\$1large

Para o RDS para SQL Server, é possível utilizar fluxos de atividade de banco de dados com as seguintes classes de instâncias de banco de dados:
+ db.m4.\$1large
+ db.m5.\$1large
+ db.m5d.\$1large
+ db.m6i.\$1large
+ db.r4.\$1large
+ db.r5.\$1large
+ db.r5b.\$1large
+ db.r5d.\$1large
+ db.r6i.\$1large
+ db.x1e.\$1large
+ db.x2iedn.\$1large
+ db.z1d.\$1large

Para mais informações sobre tipos de classes da instância, consulte [Classes de instâncias de banco de dados do ](Concepts.DBInstanceClass.md).

# Configurar a auditoria unificada do Oracle Database
<a name="DBActivityStreams.configuring-auditing"></a>

Ao configurar a auditoria unificada para uso com fluxos de atividades de banco de dados, as seguintes situações são possíveis:
+ A auditoria unificada não está configurada para o banco de dados Oracle.

  Nesse caso, crie políticas com o comando `CREATE AUDIT POLICY`, depois ative-as com o comando `AUDIT POLICY`. O exemplo a seguir cria e ativa uma política para monitorar usuários com privilégios e perfis específicos.

  ```
  CREATE AUDIT POLICY table_pol
  PRIVILEGES CREATE ANY TABLE, DROP ANY TABLE
  ROLES emp_admin, sales_admin;
  
  AUDIT POLICY table_pol;
  ```

  Para obter instruções completas, consulte [Configuring Audit Policies](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-audit-policies.html#GUID-22CDB667-5AA2-4051-A262-FBD0236763CB) (Configurar políticas de auditoria) na documentação do Oracle Database.
+ A auditoria unificada está configurada para o banco de dados Oracle.

  Quando você ativa um fluxo de atividade de banco de dados, o RDS para Oracle limpa automaticamente os dados de auditoria existentes. Também revoga privilégios de trilha de auditoria. O RDS for Oracle não pode mais fazer o seguinte:
  + Elimine os registros de trilha de auditoria unificada.
  + Adicione, exclua ou modifique a política de auditoria unificada.
  + Atualize o último carimbo de data/hora arquivado.
**Importante**  
Recomendamos fortemente que você faça backup dos dados de auditoria antes de ativar um fluxo de atividade de banco de dados.

  Para obter uma descrição da visualização `UNIFIED_AUDIT_TRAIL`, consulte [UNIFIED\$1AUDIT\$1TRAIL](https://docs.oracle.com/database/121/REFRN/GUID-B7CE1C02-2FD4-47D6-80AA-CF74A60CDD1D.htm#REFRN29162). Se você tiver uma conta do Oracle Support, consulte [Como depurar a TRILHA DE AUDITORIA UNIFICADA](https://support.oracle.com/knowledge/Oracle%20Database%20Products/1582627_1.html).

# Configurar uma política de auditoria para o Amazon RDS para Microsoft SQL Server
<a name="DBActivityStreams.configuring-auditing-SQLServer"></a>

Uma instância de banco de dados do SQL Server tem a auditoria de servidor `RDS_DAS_AUDIT`, que é gerenciada pelo Amazon RDS. Você pode definir as políticas para registrar eventos do servidor na especificação de auditoria de servidor `RDS_DAS_SERVER_AUDIT_SPEC`. Você pode criar uma especificação de auditoria de banco de dados, como `RDS_DAS_DB_<name>`, e definir as políticas para registrar eventos do banco de dados. Para obter a lista de grupos de ações de auditoria em nível de servidor e banco de dados, consulte [Ações e grupos de ações de auditoria do SQL Server](https://learn.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions) na *documentação do Microsoft SQL Server*.

A política de servidor padrão monitora somente falhas de logins e alterações em bancos de dados ou especificações de auditoria de servidor para fluxos de atividade de banco de dados.

As limitações para a auditoria e para as especificações de auditoria incluem o seguinte:
+ Você não pode modificar as especificações de auditoria de servidor ou banco de dados quando o fluxo de atividade do banco de dados está em um estado *bloqueado*.
+ Você não pode modificar a especificação de auditoria de servidor `RDS_DAS_AUDIT`.
+ Você não pode modificar a auditoria `RDS_DAS_CHANGES` do SQL Server ou sua especificação de auditoria de servidor relacionada `RDS_DAS_CHANGES_AUDIT_SPEC`.
+ Ao criar uma especificação de auditoria de banco de dados, você deve usar o formato `RDS_DAS_DB_<name>`; por exemplo, `RDS_DAS_DB_databaseActions`.

**Importante**  
Para classes de instâncias menores, recomendamos que você não audite todos os dados, apenas os necessários. Isso ajuda a reduzir o impacto na performance do recurso Database Activity Streams nessas classes de instâncias.

O exemplo de código abaixo modifica a especificação de auditoria de servidor `RDS_DAS_SERVER_AUDIT_SPEC` e realiza a auditoria de todas as ações de desconexão e de login bem-sucedido:

```
ALTER SERVER AUDIT SPECIFICATION [RDS_DAS_SERVER_AUDIT_SPEC]
      WITH (STATE=OFF);
ALTER SERVER AUDIT SPECIFICATION [RDS_DAS_SERVER_AUDIT_SPEC]
      ADD (LOGOUT_GROUP),
      ADD (SUCCESSFUL_LOGIN_GROUP)
      WITH (STATE = ON );
```

O exemplo de código abaixo cria uma especificação de auditoria de banco de dados `RDS_DAS_DB_database_spec` e a anexa à auditoria de servidor `RDS_DAS_AUDIT`:

```
USE testDB;
CREATE DATABASE AUDIT SPECIFICATION [RDS_DAS_DB_database_spec]
     FOR SERVER AUDIT [RDS_DAS_AUDIT]
     ADD ( INSERT, UPDATE, DELETE  
          ON testTable BY testUser )  
     WITH (STATE = ON);
```

Depois que as especificações de auditoria forem configuradas, certifique-se de que as especificações `RDS_DAS_SERVER_AUDIT_SPEC` e `RDS_DAS_DB_<name>` estejam definidas no estado `ON`. Agora elas podem enviar os dados de auditoria para o fluxo de atividade do banco de dados.

# Iniciar um stream de atividade de banco de dados
<a name="DBActivityStreams.Enabling"></a>

Ao iniciar um fluxo de atividade para instância de banco de dados, cada evento da atividade do banco de dados que você configurou na política de auditoria gera um evento do fluxo de atividade. Comandos SQL, como `CONNECT` e `SELECT`, geram eventos de acesso. Comandos SQL, como `CREATE` e `INSERT`, geram eventos de alteração.

**Importante**  
Ativar um fluxo de atividade para uma instância de banco de dados Oracle limpa os dados de auditoria existentes. Também revoga privilégios de trilha de auditoria. Quando o fluxo está habilitado, o RDS for Oracle não pode mais fazer o seguinte:  
Elimine os registros de trilha de auditoria unificada.
Adicione, exclua ou modifique a política de auditoria unificada.
Atualize o último carimbo de data/hora arquivado.

------
#### [ Console ]

**Para iniciar um fluxo de atividade de banco de dados**

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)**.

1. Escolha a instância de banco de dados do Amazon RDS em que deseja iniciar um fluxo de atividade. Em uma implantação multi-AZ, inicie o fluxo apenas na instância principal. O fluxo de atividades audita as instâncias principal e em espera.

1. Em **Actions (Ações)**, escolha **Start activity (Iniciar atividade)**. 

   A janela **Start database activity stream: ***name* (Iniciar fluxo de atividade do banco de dados: nome) aparece. Nela, *name* (nome) é a sua instância do RDS.

1. Insira as seguintes configurações:
   + Em **AWS KMS key**, escolha uma chave na lista de AWS KMS keys.

     O Amazon RDS usa a chave do KMS para criptografar a chave que, por sua vez, criptografa a atividade do banco de dados. Escolha uma chave do KMS diferente da chave padrão. Para obter mais informações sobre as chaves de criptografia e o AWS KMS, consulte [O que é o AWS Key Management Service?](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) no *Guia do desenvolvedor do AWS Key Management Service.*
   + Em **Eventos de atividades do banco de dados**, escolha **Habilitar os campos de auditoria nativos do mecanismo** para incluir campos de auditoria específicos do mecanismo.
   + Escolha **Immediately** (Imediatamente).

     Quando você escolhe **Immediately** (Imediatamente), a instância do RDS reinicia imediatamente. Se você escolher **During the next maintenance window**, (Durante a próxima janela de manutenção), a instância do RDS não reinicia imediatamente. Nesse caso, o stream de atividade do banco de dados não é iniciado até a próxima janela de manutenção.

1. Selecione **Start database activity stream** (Iniciar fluxo de atividades do banco de dados).

   O status para o banco de dados mostra que o fluxo de atividade está começando.
**nota**  
Se você receber o erro `You can't start a database activity stream in this configuration`, confira [Classes de instância de banco de dados compatíveis para transmissões de atividades de banco de dados](DBActivityStreams.md#DBActivityStreams.Overview.requirements.classes) para ver se seu cluster de banco de dados está usando uma classe de instância compatível.

------
#### [ AWS CLI ]

Para iniciar fluxos de atividade de banco de dados para uma instância de banco de dados, configure o banco de dados utilizando o comando [start-activity-stream](https://docs.aws.amazon.com/cli/latest/reference/rds/start-activity-stream.html) da AWS CLI.
+ `--resource-arn arn`: especifica o nome do recurso da Amazon (ARN) da instância de banco de dados.
+ `--kms-key-id key`: especifica o identificador de chave KMS para criptografar mensagens no fluxo de atividade do banco de dados. O identificador da chave do KMS da AWS é o ARN da chave, o ID da chave ou o ARN do alias ou o nome do alias para AWS KMS key.
+ `--engine-native-audit-fields-included`: contém campos de auditoria específicos do mecanismo no fluxo de dados. Para excluir esses campos, especifique `--no-engine-native-audit-fields-included` (padrão).

O exemplo a seguir inicia um fluxo de atividade de banco de dados para uma instância de banco de dados no modo assíncrono.

Para Linux, macOS ou Unix:

```
aws rds start-activity-stream \
    --mode async \
    --kms-key-id my-kms-key-arn \
    --resource-arn my-instance-arn \
    --engine-native-audit-fields-included \
    --apply-immediately
```

Para Windows:

```
aws rds start-activity-stream ^
    --mode async ^
    --kms-key-id my-kms-key-arn ^
    --resource-arn my-instance-arn ^
    --engine-native-audit-fields-included ^
    --apply-immediately
```

------
#### [ Amazon RDS API ]

Para iniciar fluxos de atividade de banco de dados para uma instância de banco de dados, configure a instância utilizando a operação [StartActivityStream](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StartActivityStream.html).

Chame a ação com os parâmetros abaixo:
+ `Region`
+ `KmsKeyId`
+ `ResourceArn`
+ `Mode`
+ `EngineNativeAuditFieldsIncluded`

------

# Modificar um fluxo de atividades de banco de dados para o Amazon RDS
<a name="DBActivityStreams.Modifying"></a>

Talvez você queira personalizar sua política de auditoria do Amazon RDS quando seu fluxo de atividade for iniciado. Se não quiser perder tempo e dados interrompendo o fluxo de atividades, você pode alterar o *estado da política de auditoria* para uma das seguintes configurações:

**Bloqueada (padrão)**  
As políticas de auditoria em seu banco de dados são somente leitura.

**Unlocked** (Desbloqueada)  
As políticas de auditoria em seu banco de dados são de leitura/gravação.

As etapas básicas são:

1. Modifique o estado da política de auditoria para desbloqueada.

1. Personalize sua política de auditoria.

1. Modifique o estado da política de auditoria para bloqueada.

## Console
<a name="DBActivityStreams.Modifying-collapsible-section-E1"></a>

**Como modificar o estado da política de auditoria do fluxo de atividades**

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)**.

1. Em **Actions** (Ações), escolha **Modify database activity stream** (Modificar fluxo de atividades do banco de dados). 

   A janela **Modify database activity stream: *name*** (Iniciar fluxo de atividade do banco de dados: name) aparece, em que *name* é sua instância do RDS.

1. Escolha uma das seguintes opções:  
**Locked** (Bloqueada)  
Quando você bloqueia sua política de auditoria, ela se torna somente leitura. Você não pode editar sua política de auditoria, a menos que desbloqueie a política ou interrompa o fluxo de atividades.  
**Unlocked** (Desbloqueada)  
Quando você desbloqueia sua política de auditoria, ela se torna de leitura/gravação. Você pode editar sua política de auditoria enquanto o fluxo de atividades é iniciado.

1. Escolha **Modify DB activity stream** (Modificar fluxo de atividades de banco de dados).

   O status do banco de dados do Amazon RDS mostra **Configuração do fluxo de atividades**.

1. (Opcional) Escolha o link da instância de banco de dados. Em seguida, escolha a guia **Configuration (Configuração)**.

   O campo **Audit policy status** (Status da política de auditoria) mostra um dos seguintes valores:
   + **Locked** (Bloqueada)
   + **Unlocked** (Desbloqueada)
   + **Locking policy** (Política de bloqueio)
   + **Unlocking policy** (Política de desbloqueio)

## AWS CLI
<a name="DBActivityStreams.Modifying-collapsible-section-E2"></a>

Para modificar o estado do fluxo de atividade de uma instância de banco de dados, use o comando [modify-activity-stream](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-activity-stream.html) da AWS CLI.


****  

| Opção | Obrigatório? | Descrição | 
| --- | --- | --- | 
|  `--resource-arn my-instance-ARN`  |  Sim  |  O nome do recurso da Amazon (ARN) da instância de banco de dados do RDS.  | 
|  `--audit-policy-state`  |  Não  |  O novo estado da política de auditoria para o fluxo de atividades do banco de dados em sua instância: `locked` ou `unlocked`.  | 

O exemplo a seguir desbloqueia a política de auditoria para o fluxo de atividades iniciado em *my-instance-ARN*.

Para Linux, macOS ou Unix:

```
aws rds modify-activity-stream \
    --resource-arn my-instance-ARN \
    --audit-policy-state unlocked
```

Para Windows:

```
aws rds modify-activity-stream ^
    --resource-arn my-instance-ARN ^
    --audit-policy-state unlocked
```

O exemplo a seguir descreve a instância *my-instance*. A saída parcial da amostra mostra que a política de auditoria está desbloqueada.

```
aws rds describe-db-instances --db-instance-identifier my-instance

{
    "DBInstances": [
        {
            ...
            "Engine": "oracle-ee",
            ...
            "ActivityStreamStatus": "started",
            "ActivityStreamKmsKeyId": "ab12345e-1111-2bc3-12a3-ab1cd12345e",
            "ActivityStreamKinesisStreamName": "aws-rds-das-db-AB1CDEFG23GHIJK4LMNOPQRST",
            "ActivityStreamMode": "async",
            "ActivityStreamEngineNativeAuditFieldsIncluded": true, 
            "ActivityStreamPolicyStatus": "unlocked",
            ...
        }
    ]
}
```

## API do RDS
<a name="DBActivityStreams.Modifying-collapsible-section-E3"></a>

Para modificar o estado da política do seu fluxo de atividades de banco de dados, use a operação [ModifyActivityStream](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyActivityStream.html).

Chame a ação com os parâmetros abaixo:
+ `AuditPolicyState`
+ `ResourceArn`

# Obter o status de um fluxo de atividade de banco de dados
<a name="DBActivityStreams.Status"></a>

É possível obter o status de um fluxo de atividade para sua instância de banco de dados do Amazon RDS usando o console ou a AWS CLI.

## Console
<a name="DBActivityStreams.Status-collapsible-section-S1"></a>

**Para obter o status de um fluxo de atividade de banco de dados**

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 escolha o link da instância de banco de dados.

1. Escolha a guia **Configuração** e verifique o status do **Stream de atividades do banco de dados**.

## AWS CLI
<a name="DBActivityStreams.Status-collapsible-section-S2"></a>

É possível obter a configuração do fluxo de atividade para uma instância de banco de dados como a resposta a uma solicitação de CLI [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html).

O exemplo a seguir descreve *my-instance*.

```
aws rds --region my-region describe-db-instances --db-instance-identifier my-db
```

O exemplo a seguir mostra uma resposta JSON. Os campos a seguir são mostrados:
+ `ActivityStreamKinesisStreamName`
+ `ActivityStreamKmsKeyId`
+ `ActivityStreamStatus`
+ `ActivityStreamMode`
+ `ActivityStreamPolicyStatus`



```
{
    "DBInstances": [
        {
            ...
            "Engine": "oracle-ee",
            ...
            "ActivityStreamStatus": "starting",
            "ActivityStreamKmsKeyId": "ab12345e-1111-2bc3-12a3-ab1cd12345e",
            "ActivityStreamKinesisStreamName": "aws-rds-das-db-AB1CDEFG23GHIJK4LMNOPQRST",
            "ActivityStreamMode": "async",
            "ActivityStreamEngineNativeAuditFieldsIncluded": true, 
            "ActivityStreamPolicyStatus": locked",
            ...
        }
    ]
}
```

## API do RDS
<a name="DBActivityStreams.Status-collapsible-section-S3"></a>

É possível obter a configuração do fluxo de atividades para um banco de dados como a resposta a uma operação [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html).

# Interromper um fluxo de atividade de banco de dados
<a name="DBActivityStreams.Disabling"></a>

É possível interromper um fluxo de atividade usando o console ou a AWS CLI.

Se você excluir sua instância de banco de dados do Amazon RDS, o fluxo de atividade será interrompido e o fluxo subjacente do Amazon Kinesis será excluído automaticamente.

## Console
<a name="DBActivityStreams.Disabling-collapsible-section-D1"></a>

**Como desativar um fluxo de atividade**

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)**.

1. Escolha um banco de dados de onde deseja interromper o fluxo de atividade de banco de dados.

1. Em **Actions (Ações)**, escolha **Stop activity (Interromper atividade)**. A janela **Database Activity Stream (Fluxo de atividade de banco de dados)** é exibida.

   1. Escolha **Immediately** (Imediatamente).

      Quando você escolhe **Immediately** (Imediatamente), a instância do RDS reinicia imediatamente. Se você escolher **During the next maintenance window**, (Durante a próxima janela de manutenção), a instância do RDS não reinicia imediatamente. Nesse caso, o fluxo de atividade do banco de dados não será interrompido até a próxima janela de manutenção.

   1. Escolha **Continue**.

## AWS CLI
<a name="DBActivityStreams.Disabling-collapsible-section-D2"></a>

Para interromper fluxos de atividades de banco de dados para seu banco de dados, configure a instância de banco de dados usando o comando da AWS CLI [stop-activity-stream](https://docs.aws.amazon.com/cli/latest/reference/rds/stop-activity-stream.html). Identifique a região da AWS para a instância de banco de dados usando o parâmetro `--region`. O parâmetro `--apply-immediately` é opcional.

Para Linux, macOS ou Unix:

```
aws rds --region MY_REGION \
    stop-activity-stream \
    --resource-arn MY_DB_ARN \
    --apply-immediately
```

Para Windows:

```
aws rds --region MY_REGION ^
    stop-activity-stream ^
    --resource-arn MY_DB_ARN ^
    --apply-immediately
```

## API do RDS
<a name="DBActivityStreams.Disabling-collapsible-section-D3"></a>

Para interromper os fluxos de atividades de banco de dados para o banco de dados, configure a instância de banco de dados usando a operação [StopActivityStream](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopActivityStream.html). Identifique a região da AWS para a instância de banco de dados usando o parâmetro `Region`. O parâmetro `ApplyImmediately` é opcional.

# Monitorar fluxos de atividades de banco de dados
<a name="DBActivityStreams.Monitoring"></a>

Os fluxos de atividades de banco de dados monitoram e relatam atividades. O stream de atividade é coletado e transmitido para o Amazon Kinesis. No Kinesis, é possível monitorar o stream de atividades ou outros serviços e aplicações podem consumir o stream de atividades para análise posterior. É possível encontrar o nome do fluxo subjacente do Kinesis utilizando o comando `describe-db-instances` da AWS CLI ou a operação `DescribeDBInstances` da API do RDS.

O Amazon RDS gerencia o fluxo do Kinesis para você da seguinte forma:
+ O Amazon RDS cria o fluxo do Kinesis automaticamente com um período de retenção de 24 horas. 
+  O Amazon RDS escala o fluxo do Kinesis, se necessário. 
+  Se você interromper o fluxo de atividades do banco de dados ou excluir a instância de banco de dados, o Amazon RDS excluirá o fluxo do Kinesis. 

As categorias de atividade a seguir são monitoradas e colocadas no log de auditoria do fluxo de atividade:
+ **Comandos SQL**: todos os comandos SQL são auditados e também instruções preparadas, funções integradas e funções em PL/SQL. Chamadas para procedimentos armazenados são auditadas. Quaisquer instruções SQL emitidas dentro de procedimentos armazenados ou funções também são auditadas.
+ **Outras informações do banco de dados**: atividades monitoradas incluem a instrução SQL completa, a contagem de linhas afetadas dos comandos DML, os objetos acessados e o nome do banco de dados exclusivo. Os fluxos de atividades de banco de dados também monitoram as variáveis de ligação e os parâmetros de procedimento armazenados. 
**Importante**  
O texto SQL completo de cada instrução é visível no log de auditoria do stream de atividades, incluindo quaisquer dados confidenciais. No entanto, as senhas do usuário do banco de dados serão editadas se o Oracle puder determiná-las pelo contexto, como na instrução SQL a seguir.   

  ```
  ALTER ROLE role-name WITH password
  ```
+ **Informações de conexão**: a atividade monitorada inclui informações de rede e sessão, o ID do processo de servidor e códigos de saída.

Se um fluxo de atividade tiver uma falha ao monitorar uma instância de banco de dados, você será notificado por meio de eventos do RDS.

Nas seções a seguir, é possível acessar, auditar e processar fluxos de atividades do banco de dados.

**Topics**
+ [Acessar um fluxo de atividades no Amazon Kinesis](DBActivityStreams.KinesisAccess.md)
+ [Conteúdo do log de auditoria e exemplos de log de fluxos de atividade do banco de dados](DBActivityStreams.AuditLog.md)
+ [Matriz JSON databaseActivityEventList para fluxos de atividades de banco de dados](DBActivityStreams.AuditLog.databaseActivityEventList.md)
+ [Processar um fluxo de atividade usando o SDK da AWS](DBActivityStreams.CodeExample.md)

# Acessar um fluxo de atividades no Amazon Kinesis
<a name="DBActivityStreams.KinesisAccess"></a>

Ao habilitar um fluxo de atividade para um banco de dados, um fluxo do Kinesis será criado para você. No Kinesis, você pode monitorar a atividade de banco de dados em tempo real. Para analisar detalhadamente a atividade de banco de dados, é possível conectar o stream do Kinesis para aplicações consumidoras. Também é possível conectar o fluxo a aplicações de gerenciamento de compatibilidade como o IBM Security Guardium ou Imperva's SecureSphere Database Audit and Protection.

Você pode acessar seu fluxo do Kinesis a partir do console do RDS ou do console do Kinesis.

**Como acessar um fluxo de atividade pelo Kinesis usando o console do RDS**

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)**.

1. Escolha a instância de banco de dados do Amazon RDS em que iniciou um fluxo de atividade.

1. Escolher **configuração**.

1. Em **Database activity stream** (Fluxo de atividades do banco de dados), clique no link em **Kinesis stream** (Fluxo do Kinesis).

1. No console do Kinesis, selecione **Monitoring** (Monitoramento) para começar a observar a atividade de banco de dados.

**Como acessar um fluxo de atividade pelo Kinesis usando o console do Kinesis**

1. Abra o console do Kinesis em [https://console.aws.amazon.com/kinesis](https://console.aws.amazon.com/kinesis).

1. Escolha o fluxo de atividade na lista de fluxos do Kinesis.

   O nome de um fluxo de atividade contém o prefixo `aws-rds-das-db-` seguido pelo ID de recurso do banco de dados. Veja um exemplo a seguir. 

   ```
   aws-rds-das-db-NHVOV4PCLWHGF52NP
   ```

   Para utilizar o console do Amazon RDS para encontrar o ID do recurso do banco de dados, escolha a instância de banco de dados na lista de bancos de dados e escolha a guia **Configuration** (Configuração).

   Para utilizar a AWS CLI a fim de encontrar o nome completo do fluxo do Kinesis para um fluxo de atividades, use uma solicitação de CLI [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) e anote os valores de `ActivityStreamKinesisStreamName` na resposta.

1. Escolha **Monitoring (Monitoramento)** para começar a observar a atividade de banco de dados.

Para obter mais informações sobre como usar o Amazon Kinesis, consulte [O que é o Amazon Kinesis Data Streams?](https://docs.aws.amazon.com/streams/latest/dev/introduction.html).

# Conteúdo do log de auditoria e exemplos de log de fluxos de atividade do banco de dados
<a name="DBActivityStreams.AuditLog"></a>

Os eventos monitorados são representados no fluxo de atividade do banco de dados como strings JSON. A estrutura consiste em um objeto JSON que contém um `DatabaseActivityMonitoringRecord`, que, por sua vez, contém uma matriz `databaseActivityEventList` de eventos de atividade. 

**nota**  
Para fluxos de atividades do banco de dados, a matriz JSON `paramList` não inclui valores nulos de aplicações Hibernate.

**Topics**
+ [Exemplos de log de auditoria para fluxos de atividade](#DBActivityStreams.AuditLog.Examples)
+ [Objeto JSON DatabaseActivityMonitoringRecords](#DBActivityStreams.AuditLog.DatabaseActivityMonitoringRecords)
+ [Objeto JSON databaseActivityEvents](#DBActivityStreams.AuditLog.databaseActivityEvents)

## Exemplos de log de auditoria para fluxos de atividade
<a name="DBActivityStreams.AuditLog.Examples"></a>

Veja a seguir exemplos de log de auditoria JSON descriptografados de registros de evento de atividade.

**Example Registro de eventos de atividade de uma instrução SQL CONNECT**  
O registro de eventos de atividade a seguir mostra um login com o uso de uma instrução SQL `CONNECT` (`command`) por um cliente JDBC Thin (`clientApplication`) para seu banco de dados Oracle.  

```
{
    "class": "Standard",
    "clientApplication": "JDBC Thin Client",
    "command": "LOGON",
    "commandText": null,
    "dbid": "0123456789",
    "databaseName": "ORCL",
    "dbProtocol": "oracle",
    "dbUserName": "TEST",
    "endTime": null,
    "errorMessage": null,
    "exitCode": 0,
    "logTime": "2021-01-15 00:15:36.233787",
    "netProtocol": "tcp",
    "objectName": null,
    "objectType": null,
    "paramList": [],
    "pid": 17904,
    "remoteHost": "123.456.789.012",
    "remotePort": "25440",
    "rowCount": null,
    "serverHost": "987.654.321.098",
    "serverType": "oracle",
    "serverVersion": "19.0.0.0.ru-2020-01.rur-2020-01.r1.EE.3",
    "serviceName": "oracle-ee",
    "sessionId": 987654321,
    "startTime": null,
    "statementId": 1,
    "substatementId": null,
    "transactionId": "0000000000000000",
    "engineNativeAuditFields": {
        "UNIFIED_AUDIT_POLICIES": "TEST_POL_EVERYTHING",
        "FGA_POLICY_NAME": null,
        "DV_OBJECT_STATUS": null,
        "SYSTEM_PRIVILEGE_USED": "CREATE SESSION",
        "OLS_LABEL_COMPONENT_TYPE": null,
        "XS_SESSIONID": null,
        "ADDITIONAL_INFO": null,
        "INSTANCE_ID": 1,
        "DBID": 123456789
        "DV_COMMENT": null,
        "RMAN_SESSION_STAMP": null,
        "NEW_NAME": null,
        "DV_ACTION_NAME": null,
        "OLS_PROGRAM_UNIT_NAME": null,
        "OLS_STRING_LABEL": null,
        "RMAN_SESSION_RECID": null,
        "OBJECT_PRIVILEGES": null,
        "OLS_OLD_VALUE": null,
        "XS_TARGET_PRINCIPAL_NAME": null,
        "XS_NS_ATTRIBUTE": null,
        "XS_NS_NAME": null,
        "DBLINK_INFO": null,
        "AUTHENTICATION_TYPE": "(TYPE\u003d(DATABASE));(CLIENT ADDRESS\u003d((ADDRESS\u003d(PROTOCOL\u003dtcp)(HOST\u003d205.251.233.183)(PORT\u003d25440))));",
        "OBJECT_EDITION": null,
        "OLS_PRIVILEGES_GRANTED": null,
        "EXCLUDED_USER": null,
        "DV_ACTION_OBJECT_NAME": null,
        "OLS_LABEL_COMPONENT_NAME": null,
        "EXCLUDED_SCHEMA": null,
        "DP_TEXT_PARAMETERS1": null,
        "XS_USER_NAME": null,
        "XS_ENABLED_ROLE": null,
        "XS_NS_ATTRIBUTE_NEW_VAL": null,
        "DIRECT_PATH_NUM_COLUMNS_LOADED": null,
        "AUDIT_OPTION": null,
        "DV_EXTENDED_ACTION_CODE": null,
        "XS_PACKAGE_NAME": null,
        "OLS_NEW_VALUE": null,
        "DV_RETURN_CODE": null,
        "XS_CALLBACK_EVENT_TYPE": null,
        "USERHOST": "a1b2c3d4e5f6.amazon.com",
        "GLOBAL_USERID": null,
        "CLIENT_IDENTIFIER": null,
        "RMAN_OPERATION": null,
        "TERMINAL": "unknown",
        "OS_USERNAME": "sumepate",
        "OLS_MAX_READ_LABEL": null,
        "XS_PROXY_USER_NAME": null,
        "XS_DATASEC_POLICY_NAME": null,
        "DV_FACTOR_CONTEXT": null,
        "OLS_MAX_WRITE_LABEL": null,
        "OLS_PARENT_GROUP_NAME": null,
        "EXCLUDED_OBJECT": null,
        "DV_RULE_SET_NAME": null,
        "EXTERNAL_USERID": null,
        "EXECUTION_ID": null,
        "ROLE": null,
        "PROXY_SESSIONID": 0,
        "DP_BOOLEAN_PARAMETERS1": null,
        "OLS_POLICY_NAME": null,
        "OLS_GRANTEE": null,
        "OLS_MIN_WRITE_LABEL": null,
        "APPLICATION_CONTEXTS": null,
        "XS_SCHEMA_NAME": null,
        "DV_GRANTEE": null,
        "XS_COOKIE": null,
        "DBPROXY_USERNAME": null,
        "DV_ACTION_CODE": null,
        "OLS_PRIVILEGES_USED": null,
        "RMAN_DEVICE_TYPE": null,
        "XS_NS_ATTRIBUTE_OLD_VAL": null,
        "TARGET_USER": null,
        "XS_ENTITY_TYPE": null,
        "ENTRY_ID": 1,
        "XS_PROCEDURE_NAME": null,
        "XS_INACTIVITY_TIMEOUT": null,
        "RMAN_OBJECT_TYPE": null,
        "SYSTEM_PRIVILEGE": null,
        "NEW_SCHEMA": null,
        "SCN": 5124715
    }
}
```
O registro de eventos de atividade a seguir mostra uma falha de login no banco de dados do SQL Server.  

```
{
    "type": "DatabaseActivityMonitoringRecord",
    "clusterId": "",
    "instanceId": "db-4JCWQLUZVFYP7DIWP6JVQ77O3Q",
    "databaseActivityEventList": [
        {
            "class": "LOGIN",
            "clientApplication": "Microsoft SQL Server Management Studio",
            "command": "LOGIN FAILED",
            "commandText": "Login failed for user 'test'. Reason: Password did not match that for the login provided. [CLIENT: local-machine]",
            "databaseName": "",
            "dbProtocol": "SQLSERVER",
            "dbUserName": "test",
            "endTime": null,
            "errorMessage": null,
            "exitCode": 0,
            "logTime": "2022-10-06 21:34:42.7113072+00",
            "netProtocol": null,
            "objectName": "",
            "objectType": "LOGIN",
            "paramList": null,
            "pid": null,
            "remoteHost": "local machine",
            "remotePort": null,
            "rowCount": 0,
            "serverHost": "172.31.30.159",
            "serverType": "SQLSERVER",
            "serverVersion": "15.00.4073.23.v1.R1",
            "serviceName": "sqlserver-ee",
            "sessionId": 0,
            "startTime": null,
            "statementId": "0x1eb0d1808d34a94b9d3dcf5432750f02",
            "substatementId": 1,
            "transactionId": "0",
            "type": "record",
            "engineNativeAuditFields": {
                "target_database_principal_id": 0,
                "target_server_principal_id": 0,
                "target_database_principal_name": "",
                "server_principal_id": 0,
                "user_defined_information": "",
                "response_rows": 0,
                "database_principal_name": "",
                "target_server_principal_name": "",
                "schema_name": "",
                "is_column_permission": false,
                "object_id": 0,
                "server_instance_name": "EC2AMAZ-NFUJJNO",
                "target_server_principal_sid": null,
                "additional_information": "<action_info "xmlns=\"http://schemas.microsoft.com/sqlserver/2008/sqlaudit_data\"><pooled_connection>0</pooled_connection><error>0x00004818</error><state>8</state><address>local machine</address><PasswordFirstNibbleHash>B</PasswordFirstNibbleHash></action_info>"-->,
                "duration_milliseconds": 0,
                "permission_bitmask": "0x00000000000000000000000000000000",
                "data_sensitivity_information": "",
                "session_server_principal_name": "",
                "connection_id": "98B4F537-0F82-49E3-AB08-B9D33B5893EF",
                "audit_schema_version": 1,
                "database_principal_id": 0,
                "server_principal_sid": null,
                "user_defined_event_id": 0,
                "host_name": "EC2AMAZ-NFUJJNO"
            }
        }
    ]
}
```
Se um fluxo de atividade do banco de dados não estiver habilitado, o último campo no documento JSON será `"engineNativeAuditFields": { }`. 

**Example Registro de evento de atividades de uma instrução CREATE TABLE do**  
O exemplo a seguir mostra um evento `CREATE TABLE` para seu banco de dados Oracle.  

```
{
    "class": "Standard",
    "clientApplication": "sqlplus@ip-12-34-5-678 (TNS V1-V3)",
    "command": "CREATE TABLE",
    "commandText": "CREATE TABLE persons(\n    person_id NUMBER GENERATED BY DEFAULT AS IDENTITY,\n    first_name VARCHAR2(50) NOT NULL,\n    last_name VARCHAR2(50) NOT NULL,\n    PRIMARY KEY(person_id)\n)",
    "dbid": "0123456789",
    "databaseName": "ORCL",
    "dbProtocol": "oracle",
    "dbUserName": "TEST",
    "endTime": null,
    "errorMessage": null,
    "exitCode": 0,
    "logTime": "2021-01-15 00:22:49.535239",
    "netProtocol": "beq",
    "objectName": "PERSONS",
    "objectType": "TEST",
    "paramList": [],
    "pid": 17687,
    "remoteHost": "123.456.789.0",
    "remotePort": null,
    "rowCount": null,
    "serverHost": "987.654.321.01",
    "serverType": "oracle",
    "serverVersion": "19.0.0.0.ru-2020-01.rur-2020-01.r1.EE.3",
    "serviceName": "oracle-ee",
    "sessionId": 1234567890,
    "startTime": null,
    "statementId": 43,
    "substatementId": null,
    "transactionId": "090011007F0D0000",
    "engineNativeAuditFields": {
        "UNIFIED_AUDIT_POLICIES": "TEST_POL_EVERYTHING",
        "FGA_POLICY_NAME": null,
        "DV_OBJECT_STATUS": null,
        "SYSTEM_PRIVILEGE_USED": "CREATE SEQUENCE, CREATE TABLE",
        "OLS_LABEL_COMPONENT_TYPE": null,
        "XS_SESSIONID": null,
        "ADDITIONAL_INFO": null,
        "INSTANCE_ID": 1,
        "DV_COMMENT": null,
        "RMAN_SESSION_STAMP": null,
        "NEW_NAME": null,
        "DV_ACTION_NAME": null,
        "OLS_PROGRAM_UNIT_NAME": null,
        "OLS_STRING_LABEL": null,
        "RMAN_SESSION_RECID": null,
        "OBJECT_PRIVILEGES": null,
        "OLS_OLD_VALUE": null,
        "XS_TARGET_PRINCIPAL_NAME": null,
        "XS_NS_ATTRIBUTE": null,
        "XS_NS_NAME": null,
        "DBLINK_INFO": null,
        "AUTHENTICATION_TYPE": "(TYPE\u003d(DATABASE));(CLIENT ADDRESS\u003d((PROTOCOL\u003dbeq)(HOST\u003d123.456.789.0)));",
        "OBJECT_EDITION": null,
        "OLS_PRIVILEGES_GRANTED": null,
        "EXCLUDED_USER": null,
        "DV_ACTION_OBJECT_NAME": null,
        "OLS_LABEL_COMPONENT_NAME": null,
        "EXCLUDED_SCHEMA": null,
        "DP_TEXT_PARAMETERS1": null,
        "XS_USER_NAME": null,
        "XS_ENABLED_ROLE": null,
        "XS_NS_ATTRIBUTE_NEW_VAL": null,
        "DIRECT_PATH_NUM_COLUMNS_LOADED": null,
        "AUDIT_OPTION": null,
        "DV_EXTENDED_ACTION_CODE": null,
        "XS_PACKAGE_NAME": null,
        "OLS_NEW_VALUE": null,
        "DV_RETURN_CODE": null,
        "XS_CALLBACK_EVENT_TYPE": null,
        "USERHOST": "ip-10-13-0-122",
        "GLOBAL_USERID": null,
        "CLIENT_IDENTIFIER": null,
        "RMAN_OPERATION": null,
        "TERMINAL": "pts/1",
        "OS_USERNAME": "rdsdb",
        "OLS_MAX_READ_LABEL": null,
        "XS_PROXY_USER_NAME": null,
        "XS_DATASEC_POLICY_NAME": null,
        "DV_FACTOR_CONTEXT": null,
        "OLS_MAX_WRITE_LABEL": null,
        "OLS_PARENT_GROUP_NAME": null,
        "EXCLUDED_OBJECT": null,
        "DV_RULE_SET_NAME": null,
        "EXTERNAL_USERID": null,
        "EXECUTION_ID": null,
        "ROLE": null,
        "PROXY_SESSIONID": 0,
        "DP_BOOLEAN_PARAMETERS1": null,
        "OLS_POLICY_NAME": null,
        "OLS_GRANTEE": null,
        "OLS_MIN_WRITE_LABEL": null,
        "APPLICATION_CONTEXTS": null,
        "XS_SCHEMA_NAME": null,
        "DV_GRANTEE": null,
        "XS_COOKIE": null,
        "DBPROXY_USERNAME": null,
        "DV_ACTION_CODE": null,
        "OLS_PRIVILEGES_USED": null,
        "RMAN_DEVICE_TYPE": null,
        "XS_NS_ATTRIBUTE_OLD_VAL": null,
        "TARGET_USER": null,
        "XS_ENTITY_TYPE": null,
        "ENTRY_ID": 12,
        "XS_PROCEDURE_NAME": null,
        "XS_INACTIVITY_TIMEOUT": null,
        "RMAN_OBJECT_TYPE": null,
        "SYSTEM_PRIVILEGE": null,
        "NEW_SCHEMA": null,
        "SCN": 5133083
    }
}
```
O exemplo a seguir mostra um evento `CREATE TABLE` para o seu banco de dados do SQL Server.  

```
{
    "type": "DatabaseActivityMonitoringRecord",
    "clusterId": "",
    "instanceId": "db-4JCWQLUZVFYP7DIWP6JVQ77O3Q",
    "databaseActivityEventList": [
        {
            "class": "SCHEMA",
            "clientApplication": "Microsoft SQL Server Management Studio - Query",
            "command": "ALTER",
            "commandText": "Create table [testDB].[dbo].[TestTable2](\r\ntextA varchar(6000),\r\n    textB varchar(6000)\r\n)",
            "databaseName": "testDB",
            "dbProtocol": "SQLSERVER",
            "dbUserName": "test",
            "endTime": null,
            "errorMessage": null,
            "exitCode": 1,
            "logTime": "2022-10-06 21:44:38.4120677+00",
            "netProtocol": null,
            "objectName": "dbo",
            "objectType": "SCHEMA",
            "paramList": null,
            "pid": null,
            "remoteHost": "local machine",
            "remotePort": null,
            "rowCount": 0,
            "serverHost": "172.31.30.159",
            "serverType": "SQLSERVER",
            "serverVersion": "15.00.4073.23.v1.R1",
            "serviceName": "sqlserver-ee",
            "sessionId": 84,
            "startTime": null,
            "statementId": "0x5178d33d56e95e419558b9607158a5bd",
            "substatementId": 1,
            "transactionId": "4561864",
            "type": "record",
            "engineNativeAuditFields": {
                "target_database_principal_id": 0,
                "target_server_principal_id": 0,
                "target_database_principal_name": "",
                "server_principal_id": 2,
                "user_defined_information": "",
                "response_rows": 0,
                "database_principal_name": "dbo",
                "target_server_principal_name": "",
                "schema_name": "",
                "is_column_permission": false,
                "object_id": 1,
                "server_instance_name": "EC2AMAZ-NFUJJNO",
                "target_server_principal_sid": null,
                "additional_information": "",
                "duration_milliseconds": 0,
                "permission_bitmask": "0x00000000000000000000000000000000",
                "data_sensitivity_information": "",
                "session_server_principal_name": "test",
                "connection_id": "EE1FE3FD-EF2C-41FD-AF45-9051E0CD983A",
                "audit_schema_version": 1,
                "database_principal_id": 1,
                "server_principal_sid": "0x010500000000000515000000bdc2795e2d0717901ba6998cf4010000",
                "user_defined_event_id": 0,
                "host_name": "EC2AMAZ-NFUJJNO"
            }
        }
    ]
}
```

**Example Registro de evento de atividades de uma instrução SELECT do**  
O exemplo a seguir mostra um evento `SELECT` para seu banco de dados Oracle.  

```
{
    "class": "Standard",
    "clientApplication": "sqlplus@ip-12-34-5-678 (TNS V1-V3)",
    "command": "SELECT",
    "commandText": "select count(*) from persons",
    "databaseName": "1234567890",
    "dbProtocol": "oracle",
    "dbUserName": "TEST",
    "endTime": null,
    "errorMessage": null,
    "exitCode": 0,
    "logTime": "2021-01-15 00:25:18.850375",
    "netProtocol": "beq",
    "objectName": "PERSONS",
    "objectType": "TEST",
    "paramList": [],
    "pid": 17687,
    "remoteHost": "123.456.789.0",
    "remotePort": null,
    "rowCount": null,
    "serverHost": "987.654.321.09",
    "serverType": "oracle",
    "serverVersion": "19.0.0.0.ru-2020-01.rur-2020-01.r1.EE.3",
    "serviceName": "oracle-ee",
    "sessionId": 1080639707,
    "startTime": null,
    "statementId": 44,
    "substatementId": null,
    "transactionId": null,
    "engineNativeAuditFields": {
        "UNIFIED_AUDIT_POLICIES": "TEST_POL_EVERYTHING",
        "FGA_POLICY_NAME": null,
        "DV_OBJECT_STATUS": null,
        "SYSTEM_PRIVILEGE_USED": null,
        "OLS_LABEL_COMPONENT_TYPE": null,
        "XS_SESSIONID": null,
        "ADDITIONAL_INFO": null,
        "INSTANCE_ID": 1,
        "DV_COMMENT": null,
        "RMAN_SESSION_STAMP": null,
        "NEW_NAME": null,
        "DV_ACTION_NAME": null,
        "OLS_PROGRAM_UNIT_NAME": null,
        "OLS_STRING_LABEL": null,
        "RMAN_SESSION_RECID": null,
        "OBJECT_PRIVILEGES": null,
        "OLS_OLD_VALUE": null,
        "XS_TARGET_PRINCIPAL_NAME": null,
        "XS_NS_ATTRIBUTE": null,
        "XS_NS_NAME": null,
        "DBLINK_INFO": null,
        "AUTHENTICATION_TYPE": "(TYPE\u003d(DATABASE));(CLIENT ADDRESS\u003d((PROTOCOL\u003dbeq)(HOST\u003d123.456.789.0)));",
        "OBJECT_EDITION": null,
        "OLS_PRIVILEGES_GRANTED": null,
        "EXCLUDED_USER": null,
        "DV_ACTION_OBJECT_NAME": null,
        "OLS_LABEL_COMPONENT_NAME": null,
        "EXCLUDED_SCHEMA": null,
        "DP_TEXT_PARAMETERS1": null,
        "XS_USER_NAME": null,
        "XS_ENABLED_ROLE": null,
        "XS_NS_ATTRIBUTE_NEW_VAL": null,
        "DIRECT_PATH_NUM_COLUMNS_LOADED": null,
        "AUDIT_OPTION": null,
        "DV_EXTENDED_ACTION_CODE": null,
        "XS_PACKAGE_NAME": null,
        "OLS_NEW_VALUE": null,
        "DV_RETURN_CODE": null,
        "XS_CALLBACK_EVENT_TYPE": null,
        "USERHOST": "ip-12-34-5-678",
        "GLOBAL_USERID": null,
        "CLIENT_IDENTIFIER": null,
        "RMAN_OPERATION": null,
        "TERMINAL": "pts/1",
        "OS_USERNAME": "rdsdb",
        "OLS_MAX_READ_LABEL": null,
        "XS_PROXY_USER_NAME": null,
        "XS_DATASEC_POLICY_NAME": null,
        "DV_FACTOR_CONTEXT": null,
        "OLS_MAX_WRITE_LABEL": null,
        "OLS_PARENT_GROUP_NAME": null,
        "EXCLUDED_OBJECT": null,
        "DV_RULE_SET_NAME": null,
        "EXTERNAL_USERID": null,
        "EXECUTION_ID": null,
        "ROLE": null,
        "PROXY_SESSIONID": 0,
        "DP_BOOLEAN_PARAMETERS1": null,
        "OLS_POLICY_NAME": null,
        "OLS_GRANTEE": null,
        "OLS_MIN_WRITE_LABEL": null,
        "APPLICATION_CONTEXTS": null,
        "XS_SCHEMA_NAME": null,
        "DV_GRANTEE": null,
        "XS_COOKIE": null,
        "DBPROXY_USERNAME": null,
        "DV_ACTION_CODE": null,
        "OLS_PRIVILEGES_USED": null,
        "RMAN_DEVICE_TYPE": null,
        "XS_NS_ATTRIBUTE_OLD_VAL": null,
        "TARGET_USER": null,
        "XS_ENTITY_TYPE": null,
        "ENTRY_ID": 13,
        "XS_PROCEDURE_NAME": null,
        "XS_INACTIVITY_TIMEOUT": null,
        "RMAN_OBJECT_TYPE": null,
        "SYSTEM_PRIVILEGE": null,
        "NEW_SCHEMA": null,
        "SCN": 5136972
    }
}
```
O exemplo a seguir mostra um evento `SELECT` para o seu banco de dados do SQL Server.  

```
{
    "type": "DatabaseActivityMonitoringRecord",
    "clusterId": "",
    "instanceId": "db-4JCWQLUZVFYP7DIWP6JVQ77O3Q",
    "databaseActivityEventList": [
        {
            "class": "TABLE",
            "clientApplication": "Microsoft SQL Server Management Studio - Query",
            "command": "SELECT",
            "commandText": "select * from [testDB].[dbo].[TestTable]",
            "databaseName": "testDB",
            "dbProtocol": "SQLSERVER",
            "dbUserName": "test",
            "endTime": null,
            "errorMessage": null,
            "exitCode": 1,
            "logTime": "2022-10-06 21:24:59.9422268+00",
            "netProtocol": null,
            "objectName": "TestTable",
            "objectType": "TABLE",
            "paramList": null,
            "pid": null,
            "remoteHost": "local machine",
            "remotePort": null,
            "rowCount": 0,
            "serverHost": "172.31.30.159",
            "serverType": "SQLSERVER",
            "serverVersion": "15.00.4073.23.v1.R1",
            "serviceName": "sqlserver-ee",
            "sessionId": 62,
            "startTime": null,
            "statementId": "0x03baed90412f564fad640ebe51f89b99",
            "substatementId": 1,
            "transactionId": "4532935",
            "type": "record",
            "engineNativeAuditFields": {
                "target_database_principal_id": 0,
                "target_server_principal_id": 0,
                "target_database_principal_name": "",
                "server_principal_id": 2,
                "user_defined_information": "",
                "response_rows": 0,
                "database_principal_name": "dbo",
                "target_server_principal_name": "",
                "schema_name": "dbo",
                "is_column_permission": true,
                "object_id": 581577110,
                "server_instance_name": "EC2AMAZ-NFUJJNO",
                "target_server_principal_sid": null,
                "additional_information": "",
                "duration_milliseconds": 0,
                "permission_bitmask": "0x00000000000000000000000000000001",
                "data_sensitivity_information": "",
                "session_server_principal_name": "test",
                "connection_id": "AD3A5084-FB83-45C1-8334-E923459A8109",
                "audit_schema_version": 1,
                "database_principal_id": 1,
                "server_principal_sid": "0x010500000000000515000000bdc2795e2d0717901ba6998cf4010000",
                "user_defined_event_id": 0,
                "host_name": "EC2AMAZ-NFUJJNO"
            }
        }
    ]
}
```

## Objeto JSON DatabaseActivityMonitoringRecords
<a name="DBActivityStreams.AuditLog.DatabaseActivityMonitoringRecords"></a>

Os registros de eventos de atividade de banco de dados estão em um objeto JSON que contém as informações a seguir.


****  

| Campo JSON | Tipo de dados | Descrição | 
| --- | --- | --- | 
|  `type`  | string |  O tipo de registro JSON. O valor é `DatabaseActivityMonitoringRecords`.  | 
| version | string |  A versão dos registros de monitoramento de atividade de banco de dados. O banco de dados Oracle usa a versão 1.3 e o SQL Server usa a versão 1.4. Essas versões do mecanismo apresentam o objeto JSON engineNativeAuditFields.  | 
|  [databaseActivityEvents](#DBActivityStreams.AuditLog.databaseActivityEvents)  | string |  Um objeto JSON que contém os eventos de atividade.  | 
| key | string | Uma chave de criptografia que você usa para descriptografar o [Matriz JSON databaseActivityEventList](DBActivityStreams.AuditLog.databaseActivityEventList.md)  | 

## Objeto JSON databaseActivityEvents
<a name="DBActivityStreams.AuditLog.databaseActivityEvents"></a>

O objeto JSON `databaseActivityEvents` contém as informações a seguir.

### Campos de nível superior no registro JSON
<a name="DBActivityStreams.AuditLog.topLevel"></a>

 Cada evento no log de auditoria é incluído em um registro no formato JSON. Esse registro contém os campos a seguir. 

**type**  
 Esse campo sempre tem o valor `DatabaseActivityMonitoringRecords`. 

**versão**  
 Esse campo representa a versão do contrato ou do protocolo de dados de streaming da atividade do banco de dados. Define quais campos estão disponíveis.

**databaseActivityEvents**  
 Uma string criptografada que representa um ou mais eventos de atividade. Ela é representada como uma matriz de bytes base64. Quando você descriptografa a string, o resultado é um registro no formato JSON com campos, conforme mostrado nos exemplos nesta seção.

**chave**  
 A chave de dados criptografada usada para criptografar a string `databaseActivityEvents`. Esta é a mesma AWS KMS key que você forneceu ao iniciar o fluxo de atividade do banco de dados.

 O exemplo a seguir mostra o formato desse registro.

```
{
  "type":"DatabaseActivityMonitoringRecords",
  "version":"1.3",
  "databaseActivityEvents":"encrypted audit records",
  "key":"encrypted key"
}
```

```
           "type":"DatabaseActivityMonitoringRecords",
           "version":"1.4",
           "databaseActivityEvents":"encrypted audit records",
           "key":"encrypted key"
```

Siga as seguintes etapas para descriptografar o conteúdo do campo `databaseActivityEvents`:

1.  Descriptografe o valor no campo JSON da `key` usando a chave do KMS que forneceu ao iniciar o fluxo de atividade do banco de dados. Fazer isso retorna a chave de criptografia de dados em texto não criptografado. 

1.  Decodifique em base64 o valor no campo JSON `databaseActivityEvents` para obter o texto cifrado, em formato binário, da carga útil de auditoria. 

1.  Descriptografe o texto cifrado binário com a chave de criptografia de dados que você decodificou na primeira etapa. 

1.  Descompacte a carga útil descriptografada. 
   +  A carga criptografada está no campo `databaseActivityEvents`. 
   +  O campo `databaseActivityEventList` contém uma matriz de registros de auditoria. Os campos `type` na matriz podem ser `record` ou `heartbeat`. 

O registro do evento de atividade do log de auditoria é um objeto JSON que contém as informações a seguir.


****  

| Campo JSON | Tipo de dados | Descrição | 
| --- | --- | --- | 
|  `type`  | string |  O tipo de registro JSON. O valor é `DatabaseActivityMonitoringRecord`.  | 
| instanceId | string | O identificador de recurso da instância de banco de dados. Ele corresponde ao atributo de instância de banco de dados DbiResourceId. | 
|  [Matriz JSON databaseActivityEventList](DBActivityStreams.AuditLog.databaseActivityEventList.md)   | string |  Uma matriz de registros de auditoria de atividade ou mensagens de pulsação.  | 

# Matriz JSON databaseActivityEventList para fluxos de atividades de banco de dados
<a name="DBActivityStreams.AuditLog.databaseActivityEventList"></a>

A carga do log de auditoria é uma matriz JSON `databaseActivityEventList` criptografada. As tabelas a seguir listam em ordem alfabética os campos para cada evento de atividade na matriz `DatabaseActivityEventList` descriptografada de um log de auditoria. 

Quando a auditoria unificada é habilitada no Oracle Database, os registros de auditoria são preenchidos nessa nova trilha de auditoria. A visualização do `UNIFIED_AUDIT_TRAIL` exibe registros de auditoria em forma tabular, recuperando os registros de auditoria da trilha de auditoria. Quando você inicia um fluxo de atividade de banco de dados, uma coluna no `UNIFIED_AUDIT_TRAIL` mapeia para um campo na matriz `databaseActivityEventList`.

**Importante**  
A estrutura do evento está sujeita a alterações. O Amazon RDS pode adicionar novos campos a eventos de atividade no futuro. Em aplicações que analisam os dados JSON, confirme se o código pode ignorar ou executar ações apropriadas para nomes de campo desconhecidos. 

## Campos databaseActivityEventList para o Amazon RDS para Oracle
<a name="DBActivityStreams.AuditLog.databaseActivityEventList.ro"></a>

Veja a seguir campos `databaseActivityEventList` do Amazon RDS para Oracle.


| Campo | Tipo de dados | Origem | Descrição | 
| --- | --- | --- | --- | 
|  `class`  |  string  |  Coluna `AUDIT_TYPE` no `UNIFIED_AUDIT_TRAIL`  |  A classe do evento de atividade. Corresponde à coluna `AUDIT_TYPE` na visualização do `UNIFIED_AUDIT_TRAIL`. Os valores válidos para o Amazon RDS para Oracle são os seguintes: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/DBActivityStreams.AuditLog.databaseActivityEventList.html) Para obter mais informações, consulte [UNIFIED\$1AUDIT\$1TRAIL](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/UNIFIED_AUDIT_TRAIL.html#GUID-B7CE1C02-2FD4-47D6-80AA-CF74A60CDD1D) na documentação do Oracle.  | 
|  `clientApplication`  |  string  |  `CLIENT_PROGRAM_NAME` em `UNIFIED_AUDIT_TRAIL`  |  A aplicação que o cliente usou para se conectar conforme relatado pelo cliente. O cliente não precisa fornecer essas informações, então o valor pode ser nulo. Um valor de amostra é `JDBC Thin Client`.  | 
|  `command`  |  string  |  Coluna `ACTION_NAME` no `UNIFIED_AUDIT_TRAIL`  |  Nome da ação executada pelo usuário. Para entender a ação completa, leia o nome do comando e o valor `AUDIT_TYPE`. Um valor de amostra é `ALTER DATABASE`.  | 
|  `commandText`  |  string  |  Coluna `SQL_TEXT` no `UNIFIED_AUDIT_TRAIL`  |  A instrução SQL associada ao evento. Um valor de amostra é `ALTER DATABASE BEGIN BACKUP`.  | 
|  `databaseName`  |  string  |  Coluna `NAME` no `V$DATABASE`  |  O nome do banco de dados.  | 
|  `dbid`  |  number  |  Coluna `DBID` no `UNIFIED_AUDIT_TRAIL`  |  Identificador numérico do banco de dados. Um valor de amostra é `1559204751`.  | 
|  `dbProtocol`  |  string  |  N/D  |  o protocolo do banco de dados. Neste beta, o valor é `oracle`.  | 
|  `dbUserName`  |  string  |  Coluna `DBUSERNAME` no `UNIFIED_AUDIT_TRAIL`  |  Nome do usuário do banco de dados cujas ações foram auditadas. Um valor de amostra é `RDSADMIN`.  | 
|  `endTime`  |  string  |  N/D  |  Este campo não é usado para o RDS for Oracle e é sempre nulo.  | 
|  `engineNativeAuditFields`  |  objeto  |  `UNIFIED_AUDIT_TRAIL`  |  Por padrão, este objeto permanece em branco. Quando você inicia o fluxo de atividade com a opção `--engine-native-audit-fields-included`, esse objeto inclui as seguintes colunas e seus valores: <pre>ADDITIONAL_INFO<br />APPLICATION_CONTEXTS<br />AUDIT_OPTION<br />AUTHENTICATION_TYPE<br />CLIENT_IDENTIFIER<br />CURRENT_USER<br />DBLINK_INFO<br />DBPROXY_USERNAME<br />DIRECT_PATH_NUM_COLUMNS_LOADED<br />DP_BOOLEAN_PARAMETERS1<br />DP_TEXT_PARAMETERS1<br />DV_ACTION_CODE<br />DV_ACTION_NAME<br />DV_ACTION_OBJECT_NAME<br />DV_COMMENT<br />DV_EXTENDED_ACTION_CODE<br />DV_FACTOR_CONTEXT<br />DV_GRANTEE<br />DV_OBJECT_STATUS<br />DV_RETURN_CODE<br />DV_RULE_SET_NAME<br />ENTRY_ID<br />EXCLUDED_OBJECT<br />EXCLUDED_SCHEMA<br />EXCLUDED_USER<br />EXECUTION_ID<br />EXTERNAL_USERID<br />FGA_POLICY_NAME<br />GLOBAL_USERID<br />INSTANCE_ID<br />KSACL_SERVICE_NAME<br />KSACL_SOURCE_LOCATION<br />KSACL_USER_NAME<br />NEW_NAME<br />NEW_SCHEMA<br />OBJECT_EDITION<br />OBJECT_PRIVILEGES<br />OLS_GRANTEE<br />OLS_LABEL_COMPONENT_NAME<br />OLS_LABEL_COMPONENT_TYPE<br />OLS_MAX_READ_LABEL<br />OLS_MAX_WRITE_LABEL<br />OLS_MIN_WRITE_LABEL<br />OLS_NEW_VALUE<br />OLS_OLD_VALUE<br />OLS_PARENT_GROUP_NAME<br />OLS_POLICY_NAME<br />OLS_PRIVILEGES_GRANTED<br />OLS_PRIVILEGES_USED<br />OLS_PROGRAM_UNIT_NAME<br />OLS_STRING_LABEL<br />OS_USERNAME<br />PROTOCOL_ACTION_NAME<br />PROTOCOL_MESSAGE<br />PROTOCOL_RETURN_CODE<br />PROTOCOL_SESSION_ID<br />PROTOCOL_USERHOST<br />PROXY_SESSIONID<br />RLS_INFO<br />RMAN_DEVICE_TYPE<br />RMAN_OBJECT_TYPE<br />RMAN_OPERATION<br />RMAN_SESSION_RECID<br />RMAN_SESSION_STAMP<br />ROLE<br />SCN<br />SYSTEM_PRIVILEGE<br />SYSTEM_PRIVILEGE_USED<br />TARGET_USER<br />TERMINAL<br />UNIFIED_AUDIT_POLICIES<br />USERHOST<br />XS_CALLBACK_EVENT_TYPE<br />XS_COOKIE<br />XS_DATASEC_POLICY_NAME<br />XS_ENABLED_ROLE<br />XS_ENTITY_TYPE<br />XS_INACTIVITY_TIMEOUT<br />XS_NS_ATTRIBUTE<br />XS_NS_ATTRIBUTE_NEW_VAL<br />XS_NS_ATTRIBUTE_OLD_VAL<br />XS_NS_NAME<br />XS_PACKAGE_NAME<br />XS_PROCEDURE_NAME<br />XS_PROXY_USER_NAME<br />XS_SCHEMA_NAME<br />XS_SESSIONID<br />XS_TARGET_PRINCIPAL_NAME<br />XS_USER_NAME</pre> Para obter mais informações, consulte [UNIFIED\$1AUDIT\$1TRAIL](https://docs.oracle.com/database/121/REFRN/GUID-B7CE1C02-2FD4-47D6-80AA-CF74A60CDD1D.htm#REFRN29162) na documentação do Oracle Database.  | 
|  `errorMessage`  |  string  |  N/D  |  Este campo não é usado para o RDS for Oracle e é sempre nulo.  | 
|  `exitCode`  |  number  |  Coluna `RETURN_CODE` no `UNIFIED_AUDIT_TRAIL`  |  Código de erro do Oracle Database gerado pela ação. Se a ação for realizada, o valor será `0`.  | 
|  `logTime`  |  string  |  Coluna `EVENT_TIMESTAMP_UTC` no `UNIFIED_AUDIT_TRAIL`  |  Carimbo de data/hora da criação da entrada da trilha de auditoria. Um valor de amostra é `2020-11-27 06:56:14.981404`.  | 
|  `netProtocol`  |  string  |  Coluna `AUTHENTICATION_TYPE` no `UNIFIED_AUDIT_TRAIL`  |  O protocolo de comunicação da rede Um valor de amostra é `TCP`.  | 
|  `objectName`  |  string  |  Coluna `OBJECT_NAME` no `UNIFIED_AUDIT_TRAIL`  |  O nome do objeto afetado pela ação. Um valor de amostra é `employees`.  | 
|  `objectType`  |  string  |  Coluna `OBJECT_SCHEMA` no `UNIFIED_AUDIT_TRAIL`  |  O nome do esquema do objeto afetado pela ação. Um valor de amostra é `hr`.  | 
|  `paramList`  |  lista  |  Coluna `SQL_BINDS` no `UNIFIED_AUDIT_TRAIL`  |  A lista de variáveis de ligação, se houver, associadas a `SQL_TEXT`. Um valor de amostra é `parameter_1,parameter_2`.  | 
|  `pid`  |  number  |  Coluna `OS_PROCESS` no `UNIFIED_AUDIT_TRAIL`  |  Identificador do processo do sistema operacional do processo do banco de dados Oracle. Um valor de amostra é `22396`.  | 
|  `remoteHost`  |  string  |  Coluna `AUTHENTICATION_TYPE` no `UNIFIED_AUDIT_TRAIL`  |  O nome de cliente ou endereço IP do host do qual a sessão foi gerada. Um valor de amostra é `123.456.789.123`.  | 
|  `remotePort`  |  string  |  Coluna `AUTHENTICATION_TYPE` no `UNIFIED_AUDIT_TRAIL`  |  O número da porta do cliente. Um valor típico nos ambientes do Oracle Database é `1521`.  | 
|  `rowCount`  |  number  |  N/D  |  Este campo não é usado para o RDS for Oracle e é sempre nulo.  | 
|  `serverHost`  |  string  |  Host do banco de dados  |  O endereço IP do host do servidor de banco de dados. Um valor de amostra é `123.456.789.123`.  | 
|  `serverType`  |  string  |  N/D  |  O tipo de servidor do banco de dados. O valor é sempre `ORACLE`.  | 
|  `serverVersion`  |  string  |  Host do banco de dados  |  A versão do Amazon RDS para Oracle, a atualização de release (RU) e a revisão de atualização de release (RUR). Um valor de amostra é `19.0.0.0.ru-2020-01.rur-2020-01.r1.EE.3`.  | 
|  `serviceName`  |  string  |  Host do banco de dados  |  O nome do serviço da Um valor de amostra é `oracle-ee`.   | 
|  `sessionId`  |  number  |  Coluna `SESSIONID` no `UNIFIED_AUDIT_TRAIL`  |  O identificador da sessão da auditoria. Um exemplo é `1894327130`.  | 
|  `startTime`  |  string  |  N/D  |  Este campo não é usado para o RDS for Oracle e é sempre nulo.  | 
|  `statementId`  |  number  |  Coluna `STATEMENT_ID` no `UNIFIED_AUDIT_TRAIL`  |  O ID numérico para cada execução de instrução. Uma instrução pode causar muitas ações. Um valor de amostra é `142197`.  | 
|  `substatementId`  |  N/D  |  N/D  |  Este campo não é usado para o RDS for Oracle e é sempre nulo.  | 
|  `transactionId`  |  string  |  Coluna `TRANSACTION_ID` no `UNIFIED_AUDIT_TRAIL`  |  O identificador da transação na qual o objeto é modificado. Um valor de amostra é `02000800D5030000`.  | 

## Campos databaseActivityEventList para o Amazon RDS para SQL Server
<a name="DBActivityStreams.AuditLog.databaseActivityEventList.rss"></a>

Veja a seguir campos `databaseActivityEventList` do Amazon RDS para SQL Server.


| Campo | Tipo de dados | Origem | Descrição | 
| --- | --- | --- | --- | 
|  `class`  |  string  |  ` sys.fn_get_audit_file.class_type` mapeado para `sys.dm_audit_class_type_map.class_type_desc`  |  A classe do evento de atividade. Para obter mais informações, consulte [Auditoria do SQL Server (mecanismo de banco de dados)](https://learn.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-database-engine?view=sql-server-ver16) na documentação da Microsoft.  | 
|  `clientApplication`  |  string  |  `sys.fn_get_audit_file.application_name`  |  A aplicação à qual o cliente se conecta, conforme relatado pelo cliente (SQL Server versão 14 e posteriores). Esse campo fica nulo no SQL Server versão 13.  | 
|  `command`  |  string  |  `sys.fn_get_audit_file.action_id` mapeado para `sys.dm_audit_actions.name`  |  A categoria geral da instrução SQL. O valor deste campo depende do valor da classe.  | 
|  `commandText`  |  string  |  `sys.fn_get_audit_file.statement`  |  Este campo indica a instrução SQL.  | 
|  `databaseName`  |  string  |  `sys.fn_get_audit_file.database_name`  |  O nome do banco de dados.  | 
|  `dbProtocol`  |  string  |  N/D  |  o protocolo do banco de dados. Este valor é `SQLSERVER`.  | 
|  `dbUserName`  |  string  |  `sys.fn_get_audit_file.server_principal_name`  |  O usuário do banco de dados para autenticação do cliente.  | 
|  `endTime`  |  string  |  N/D  |  Este campo não é usado pelo Amazon RDS para SQL Server e o valor é nulo.  | 
|  `engineNativeAuditFields`  |  objeto  |  Cada campo em `sys.fn_get_audit_file` que não está listado nessa coluna.  |  Por padrão, este objeto permanece em branco. Quando você inicia o fluxo de atividade com a opção `--engine-native-audit-fields-included`, esse objeto inclui outros campos nativos de auditoria nativos do mecanismo, que não são retornados por esse mapa JSON.  | 
|  `errorMessage`  |  string  |  N/D  |  Este campo não é usado pelo Amazon RDS para SQL Server e o valor é nulo.  | 
|  `exitCode`  |  integer  |  `sys.fn_get_audit_file.succeeded`  |  Indica se a ação que iniciou o evento foi bem-sucedida. Este campo não pode ficar nulo. Para todos os eventos, exceto eventos de login, esse campo informa se a verificação de permissão foi bem-sucedida ou falhou, mas não se a operação foi bem-sucedida ou falhou. Os valores incluem: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/DBActivityStreams.AuditLog.databaseActivityEventList.html)  | 
|  `logTime`  |  string  |  `sys.fn_get_audit_file.event_time`  |  O carimbo de data/hora do evento que é registrado pelo SQL Server.  | 
|  `netProtocol`  |  string  |  N/D  |  Este campo não é usado pelo Amazon RDS para SQL Server e o valor é nulo.  | 
|  `objectName`  |  string  |  `sys.fn_get_audit_file.object_name`  |  O nome do objeto do banco de dados se a instrução SQL estiver operando em um objeto.  | 
|  `objectType`  |  string  |  `sys.fn_get_audit_file.class_type` mapeado para `sys.dm_audit_class_type_map.class_type_desc`  |  O tipo do objeto do banco de dados se a instrução SQL estiver operando em um tipo de objeto.  | 
|  `paramList`  |  string  |  N/D  |  Este campo não é usado pelo Amazon RDS para SQL Server e o valor é nulo.  | 
|  `pid`  |  integer  |  N/D  |  Este campo não é usado pelo Amazon RDS para SQL Server e o valor é nulo.  | 
|  `remoteHost`  |  string  |  `sys.fn_get_audit_file.client_ip`  |  O endereço IP ou o nome de host do cliente que emitiu a instrução SQL (SQL Server versão 14 e posteriores). Esse campo fica nulo no SQL Server versão 13.  | 
|  `remotePort`  |  integer  |  N/D  |  Este campo não é usado pelo Amazon RDS para SQL Server e o valor é nulo.  | 
|  `rowCount`  |  integer  |  `sys.fn_get_audit_file.affected_rows`  |  O número de linhas de tabela afetadas pela instrução SQL (SQL Server versão 14 e posteriores). Esse campo existe no SQL Server versão 13.  | 
|  `serverHost`  |  string  |  Host do banco de dados  |  O endereço IP do servidor de banco de dados host.  | 
|  `serverType`  |  string  |  N/D  |  O tipo de servidor do banco de dados. O valor é `SQLSERVER`.  | 
|  `serverVersion`  |  string  |  Host do banco de dados  |  A versão do servidor do banco de dados; por exemplo, 15.00.4073.23.v1.R1 para SQL Server 2017.  | 
|  `serviceName`  |  string  |  Host do banco de dados  |  O nome do serviço da Um exemplo de valor é `sqlserver-ee`.  | 
|  `sessionId`  |  integer  |  `sys.fn_get_audit_file.session_id`  |  Um identificador exclusivo da sessão.  | 
|  `startTime`  |  string  |  N/D  |  Este campo não é usado pelo Amazon RDS para SQL Server e o valor é nulo.  | 
|  `statementId`  |  string  |  `sys.fn_get_audit_file.sequence_group_id`  |  Um identificador exclusivo para a instrução SQL do cliente. O identificador é diferente para cada evento gerado. Um valor de amostra é `0x38eaf4156267184094bb82071aaab644`.  | 
|  `substatementId`  |  integer  |  `sys.fn_get_audit_file.sequence_number`  |  Um identificador para determinar o número de uma instrução na sequência. Esse identificador ajuda quando registros grandes são divididos em vários registros.  | 
|  `transactionId`  |  integer  |  `sys.fn_get_audit_file.transaction_id`  |  Um identificador de uma transação. Se não houver nenhuma transação ativa, o valor será zero.  | 
|  `type`  |  string  |  Fluxo de atividade de banco de dados gerado  |  O tipo de evento. Os valores são `record` ou `heartbeat`.  | 

# Processar um fluxo de atividade usando o SDK da AWS
<a name="DBActivityStreams.CodeExample"></a>

É possível processar de maneira programática um fluxo de atividade usando o SDK da AWS. Veja a seguir exemplos de Java e Python em total funcionamento de como usar registros de fluxo de atividades de banco de dados do. Veja a seguir exemplos de Java e Python em total funcionamento de como você pode habilitar com base em exemplos de.

------
#### [ Java ]

```
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.Security;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.zip.GZIPInputStream;

import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;

import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.encryptionsdk.AwsCrypto;
import com.amazonaws.encryptionsdk.CryptoInputStream;
import com.amazonaws.encryptionsdk.jce.JceMasterKey;
import com.amazonaws.services.kinesis.clientlibrary.exceptions.InvalidStateException;
import com.amazonaws.services.kinesis.clientlibrary.exceptions.ShutdownException;
import com.amazonaws.services.kinesis.clientlibrary.exceptions.ThrottlingException;
import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessor;
import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessorCheckpointer;
import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessorFactory;
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream;
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.ShutdownReason;
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker;
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.Builder;
import com.amazonaws.services.kinesis.model.Record;
import com.amazonaws.services.kms.AWSKMS;
import com.amazonaws.services.kms.AWSKMSClientBuilder;
import com.amazonaws.services.kms.model.DecryptRequest;
import com.amazonaws.services.kms.model.DecryptResult;
import com.amazonaws.util.Base64;
import com.amazonaws.util.IOUtils;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.SerializedName;
import org.bouncycastle.jce.provider.BouncyCastleProvider;

public class DemoConsumer {

    private static final String STREAM_NAME = "aws-rds-das-[instance-external-resource-id]"; // aws-rds-das-db-ABCD123456
    private static final String APPLICATION_NAME = "AnyApplication"; //unique application name for dynamo table generation that holds kinesis shard tracking
    private static final String AWS_ACCESS_KEY = "[AWS_ACCESS_KEY_TO_ACCESS_KINESIS]";
    private static final String AWS_SECRET_KEY = "[AWS_SECRET_KEY_TO_ACCESS_KINESIS]";
    private static final String RESOURCE_ID = "[external-resource-id]"; // db-ABCD123456
    private static final String REGION_NAME = "[region-name]"; //us-east-1, us-east-2...
    private static final BasicAWSCredentials CREDENTIALS = new BasicAWSCredentials(AWS_ACCESS_KEY, AWS_SECRET_KEY);
    private static final AWSStaticCredentialsProvider CREDENTIALS_PROVIDER = new AWSStaticCredentialsProvider(CREDENTIALS);

    private static final AwsCrypto CRYPTO = new AwsCrypto();
    private static final AWSKMS KMS = AWSKMSClientBuilder.standard()
            .withRegion(REGION_NAME)
            .withCredentials(CREDENTIALS_PROVIDER).build();

    class Activity {
        String type;
        String version;
        String databaseActivityEvents;
        String key;
    }

    class ActivityEvent {
        @SerializedName("class") String _class;
        String clientApplication;
        String command;
        String commandText;
        String databaseName;
        String dbProtocol;
        String dbUserName;
        String endTime;
        String errorMessage;
        String exitCode;
        String logTime;
        String netProtocol;
        String objectName;
        String objectType;
        List<String> paramList;
        String pid;
        String remoteHost;
        String remotePort;
        String rowCount;
        String serverHost;
        String serverType;
        String serverVersion;
        String serviceName;
        String sessionId;
        String startTime;
        String statementId;
        String substatementId;
        String transactionId;
        String type;
    }

    class ActivityRecords {
        String type;
        String clusterId; // note that clusterId will contain an empty string on RDS Oracle and RDS SQL Server
        String instanceId;
        List<ActivityEvent> databaseActivityEventList;
    }

    static class RecordProcessorFactory implements IRecordProcessorFactory {
        @Override
        public IRecordProcessor createProcessor() {
            return new RecordProcessor();
        }
    }

    static class RecordProcessor implements IRecordProcessor {

        private static final long BACKOFF_TIME_IN_MILLIS = 3000L;
        private static final int PROCESSING_RETRIES_MAX = 10;
        private static final long CHECKPOINT_INTERVAL_MILLIS = 60000L;
        private static final Gson GSON = new GsonBuilder().serializeNulls().create();

        private static final Cipher CIPHER;
        static {
            Security.insertProviderAt(new BouncyCastleProvider(), 1);
            try {
                CIPHER = Cipher.getInstance("AES/GCM/NoPadding", "BC");
            } catch (NoSuchAlgorithmException | NoSuchPaddingException | NoSuchProviderException e) {
                throw new ExceptionInInitializerError(e);
            }
        }

        private long nextCheckpointTimeInMillis;

        @Override
        public void initialize(String shardId) {
        }

        @Override
        public void processRecords(final List<Record> records, final IRecordProcessorCheckpointer checkpointer) {
            for (final Record record : records) {
                processSingleBlob(record.getData());
            }

            if (System.currentTimeMillis() > nextCheckpointTimeInMillis) {
                checkpoint(checkpointer);
                nextCheckpointTimeInMillis = System.currentTimeMillis() + CHECKPOINT_INTERVAL_MILLIS;
            }
        }

        @Override
        public void shutdown(IRecordProcessorCheckpointer checkpointer, ShutdownReason reason) {
            if (reason == ShutdownReason.TERMINATE) {
                checkpoint(checkpointer);
            }
        }

        private void processSingleBlob(final ByteBuffer bytes) {
            try {
                // JSON $Activity
                final Activity activity = GSON.fromJson(new String(bytes.array(), StandardCharsets.UTF_8), Activity.class);

                // Base64.Decode
                final byte[] decoded = Base64.decode(activity.databaseActivityEvents);
                final byte[] decodedDataKey = Base64.decode(activity.key);

                Map<String, String> context = new HashMap<>();
                context.put("aws:rds:db-id", RESOURCE_ID);

                // Decrypt
                final DecryptRequest decryptRequest = new DecryptRequest()
                        .withCiphertextBlob(ByteBuffer.wrap(decodedDataKey)).withEncryptionContext(context);
                final DecryptResult decryptResult = KMS.decrypt(decryptRequest);
                final byte[] decrypted = decrypt(decoded, getByteArray(decryptResult.getPlaintext()));

                // GZip Decompress
                final byte[] decompressed = decompress(decrypted);
                // JSON $ActivityRecords
                final ActivityRecords activityRecords = GSON.fromJson(new String(decompressed, StandardCharsets.UTF_8), ActivityRecords.class);

                // Iterate throught $ActivityEvents
                for (final ActivityEvent event : activityRecords.databaseActivityEventList) {
                    System.out.println(GSON.toJson(event));
                }
            } catch (Exception e) {
                // Handle error.
                e.printStackTrace();
            }
        }

        private static byte[] decompress(final byte[] src) throws IOException {
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(src);
            GZIPInputStream gzipInputStream = new GZIPInputStream(byteArrayInputStream);
            return IOUtils.toByteArray(gzipInputStream);
        }

        private void checkpoint(IRecordProcessorCheckpointer checkpointer) {
            for (int i = 0; i < PROCESSING_RETRIES_MAX; i++) {
                try {
                    checkpointer.checkpoint();
                    break;
                } catch (ShutdownException se) {
                    // Ignore checkpoint if the processor instance has been shutdown (fail over).
                    System.out.println("Caught shutdown exception, skipping checkpoint." + se);
                    break;
                } catch (ThrottlingException e) {
                    // Backoff and re-attempt checkpoint upon transient failures
                    if (i >= (PROCESSING_RETRIES_MAX - 1)) {
                        System.out.println("Checkpoint failed after " + (i + 1) + "attempts." + e);
                        break;
                    } else {
                        System.out.println("Transient issue when checkpointing - attempt " + (i + 1) + " of " + PROCESSING_RETRIES_MAX + e);
                    }
                } catch (InvalidStateException e) {
                    // This indicates an issue with the DynamoDB table (check for table, provisioned IOPS).
                    System.out.println("Cannot save checkpoint to the DynamoDB table used by the Amazon Kinesis Client Library." + e);
                    break;
                }
                try {
                    Thread.sleep(BACKOFF_TIME_IN_MILLIS);
                } catch (InterruptedException e) {
                    System.out.println("Interrupted sleep" + e);
                }
            }
        }
    }

    private static byte[] decrypt(final byte[] decoded, final byte[] decodedDataKey) throws IOException {
        // Create a JCE master key provider using the random key and an AES-GCM encryption algorithm
        final JceMasterKey masterKey = JceMasterKey.getInstance(new SecretKeySpec(decodedDataKey, "AES"),
                "BC", "DataKey", "AES/GCM/NoPadding");
        try (final CryptoInputStream<JceMasterKey> decryptingStream = CRYPTO.createDecryptingStream(masterKey, new ByteArrayInputStream(decoded));
             final ByteArrayOutputStream out = new ByteArrayOutputStream()) {
            IOUtils.copy(decryptingStream, out);
            return out.toByteArray();
        }
    }

    public static void main(String[] args) throws Exception {
        final String workerId = InetAddress.getLocalHost().getCanonicalHostName() + ":" + UUID.randomUUID();
        final KinesisClientLibConfiguration kinesisClientLibConfiguration =
                new KinesisClientLibConfiguration(APPLICATION_NAME, STREAM_NAME, CREDENTIALS_PROVIDER, workerId);
        kinesisClientLibConfiguration.withInitialPositionInStream(InitialPositionInStream.LATEST);
        kinesisClientLibConfiguration.withRegionName(REGION_NAME);
        final Worker worker = new Builder()
                .recordProcessorFactory(new RecordProcessorFactory())
                .config(kinesisClientLibConfiguration)
                .build();

        System.out.printf("Running %s to process stream %s as worker %s...\n", APPLICATION_NAME, STREAM_NAME, workerId);

        try {
            worker.run();
        } catch (Throwable t) {
            System.err.println("Caught throwable while processing data.");
            t.printStackTrace();
            System.exit(1);
        }
        System.exit(0);
    }

    private static byte[] getByteArray(final ByteBuffer b) {
        byte[] byteArray = new byte[b.remaining()];
        b.get(byteArray);
        return byteArray;
    }
}
```

------
#### [ Python ]

```
import base64
import json
import zlib
import aws_encryption_sdk
from aws_encryption_sdk import CommitmentPolicy
from aws_encryption_sdk.internal.crypto import WrappingKey
from aws_encryption_sdk.key_providers.raw import RawMasterKeyProvider
from aws_encryption_sdk.identifiers import WrappingAlgorithm, EncryptionKeyType
import boto3

REGION_NAME = '<region>'                    # us-east-1
RESOURCE_ID = '<external-resource-id>'      # db-ABCD123456
STREAM_NAME = 'aws-rds-das-' + RESOURCE_ID  # aws-rds-das-db-ABCD123456

enc_client = aws_encryption_sdk.EncryptionSDKClient(commitment_policy=CommitmentPolicy.FORBID_ENCRYPT_ALLOW_DECRYPT)

class MyRawMasterKeyProvider(RawMasterKeyProvider):
    provider_id = "BC"

    def __new__(cls, *args, **kwargs):
        obj = super(RawMasterKeyProvider, cls).__new__(cls)
        return obj

    def __init__(self, plain_key):
        RawMasterKeyProvider.__init__(self)
        self.wrapping_key = WrappingKey(wrapping_algorithm=WrappingAlgorithm.AES_256_GCM_IV12_TAG16_NO_PADDING,
                                        wrapping_key=plain_key, wrapping_key_type=EncryptionKeyType.SYMMETRIC)

    def _get_raw_key(self, key_id):
        return self.wrapping_key


def decrypt_payload(payload, data_key):
    my_key_provider = MyRawMasterKeyProvider(data_key)
    my_key_provider.add_master_key("DataKey")
    decrypted_plaintext, header = enc_client.decrypt(
        source=payload,
        materials_manager=aws_encryption_sdk.materials_managers.default.DefaultCryptoMaterialsManager(master_key_provider=my_key_provider))
    return decrypted_plaintext


def decrypt_decompress(payload, key):
    decrypted = decrypt_payload(payload, key)
    return zlib.decompress(decrypted, zlib.MAX_WBITS + 16)


def main():
    session = boto3.session.Session()
    kms = session.client('kms', region_name=REGION_NAME)
    kinesis = session.client('kinesis', region_name=REGION_NAME)

    response = kinesis.describe_stream(StreamName=STREAM_NAME)
    shard_iters = []
    for shard in response['StreamDescription']['Shards']:
        shard_iter_response = kinesis.get_shard_iterator(StreamName=STREAM_NAME, ShardId=shard['ShardId'],
                                                         ShardIteratorType='LATEST')
        shard_iters.append(shard_iter_response['ShardIterator'])

    while len(shard_iters) > 0:
        next_shard_iters = []
        for shard_iter in shard_iters:
            response = kinesis.get_records(ShardIterator=shard_iter, Limit=10000)
            for record in response['Records']:
                record_data = record['Data']
                record_data = json.loads(record_data)
                payload_decoded = base64.b64decode(record_data['databaseActivityEvents'])
                data_key_decoded = base64.b64decode(record_data['key'])
                data_key_decrypt_result = kms.decrypt(CiphertextBlob=data_key_decoded,
                                                      EncryptionContext={'aws:rds:db-id': RESOURCE_ID})
                print (decrypt_decompress(payload_decoded, data_key_decrypt_result['Plaintext']))
            if 'NextShardIterator' in response:
                next_shard_iters.append(response['NextShardIterator'])
        shard_iters = next_shard_iters


if __name__ == '__main__':
    main()
```

------

# Exemplos de políticas do IAM para fluxos de atividades de banco de dados
<a name="DBActivityStreams.ManagingAccess"></a>

Qualquer usuário com privilégios de função do AWS Identity and Access Management (IAM) para os fluxos de atividades de banco de dados pode criar, iniciar, interromper e modificar as configurações do fluxo de atividade para uma instância de banco de dados. Essas ações estão incluídas no log de auditoria do fluxo. Para realizar as práticas recomendadas de conformidade, recomendamos não fornecer esses privilégios a DBAs.

Você define o acesso aos fluxos de atividades de banco de dados usando políticas do IAM. Para obter mais informações sobre autenticação do Amazon RDS, consulte [Gerenciamento de identidade e acesso no Amazon RDS](UsingWithRDS.IAM.md). Para obter mais informações sobre como criar políticas do IAM, consulte [Criar e usar uma política do IAM para acesso do banco de dados do IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md). 

**Example Política para permitir a configuração de fluxos de atividades de banco de dados**  
Para conceder aos usuários acesso refinado para modificar fluxos de atividade, use as chaves de contexto de operação específicas de serviço `rds:StartActivityStream` e `rds:StopActivityStream` em uma política do IAM. O exemplo de política do IAM a seguir permite que um usuário ou uma função configure fluxos de atividade.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfigureActivityStreams",
            "Effect": "Allow",
            "Action": [
                "rds:StartActivityStream",
                "rds:StopActivityStream"
            ],
            "Resource": "*"
        }
    ]
}
```

**Example Política para permitir o início de fluxos de atividades de banco de dados**  
O exemplo de política do IAM a seguir permite que um usuário ou uma função inicie fluxos de atividade.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Sid":"AllowStartActivityStreams",
            "Effect":"Allow",
            "Action":"rds:StartActivityStream",
            "Resource":"*"
        }
    ]
}
```

**Example Política para permitir a interrupção de fluxos de atividades de banco de dados**  
O exemplo de política do IAM a seguir permite que um usuário ou uma função interrompa fluxos de atividade.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Sid":"AllowStopActivityStreams",
            "Effect":"Allow",
            "Action":"rds:StopActivityStream",
            "Resource":"*"
        }
     ]
}
```

**Example Política para negar o início de fluxos de atividades de banco de dados**  
O exemplo de política do IAM a seguir impede que um usuário ou uma função inicie fluxos de atividades.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Sid":"DenyStartActivityStreams",
            "Effect":"Deny",
            "Action":"rds:StartActivityStream",
            "Resource":"*"
        }
     ]
}
```

**Example Política para interromper o início de fluxos de atividades de banco de dados**  
O exemplo de política do IAM a seguir impede que um usuário ou uma função interrompa fluxos de atividades.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Sid":"DenyStopActivityStreams",
            "Effect":"Deny",
            "Action":"rds:StopActivityStream",
            "Resource":"*"
        }
    ]
}
```

# Monitorar ameaças com o Amazon GuardDuty RDS Protection
<a name="guard-duty-rds-protection"></a>

O Amazon GuardDuty é um serviço de detecção de ameaças que ajuda a proteger contas, contêineres, workloads e dados no ambiente da AWS. Usando modelos de machine learning (ML) e recursos de detecção de anomalias e ameaças, o GuardDuty monitora continuamente diferentes fontes de log e atividades de runtime para identificar e priorizar possíveis riscos de segurança e atividades maliciosas no seu ambiente.

O GuardDuty RDS Protection analisa e traça o perfil de eventos de login em busca de possíveis ameaças de acesso aos seus bancos de dados do Amazon RDS. Quando você ativa o RDS Protection, o GuardDuty consome eventos de login do RDS de seus bancos de dados do RDS. O RDS Protection monitora esses eventos e traça o perfil de possíveis ameaças internas ou agentes externos.

Para ter mais informações sobre como habilitar a Proteção do GuardDuty RDS, consulte [Proteção do GuardDuty RDS](https://docs.aws.amazon.com/guardduty/latest/ug/rds-protection.html) no *Guia do usuário do Amazon GuardDuty*.

Quando o RDS Protection detecta uma ameaça em potencial, como um padrão incomum em tentativas de login bem-sucedidas ou malsucedidas, o GuardDuty gera uma nova descoberta com detalhes sobre o banco de dados possivelmente comprometido. Você pode visualizar os detalhes da descoberta na seção de resumo da descoberta no console do Amazon GuardDuty. Os detalhes da descoberta variam de acordo com o tipo de descoberta. Os detalhes principais, o tipo de recurso e o perfil do recurso determinam o tipo de informação disponível para qualquer descoberta. Para ter mais informações sobre os detalhes comumente disponíveis para descobertas e os tipos de descoberta, consulte [Encontrar detalhes](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings-summary.html) e [Tipos de descoberta da Proteção do GuardDuty RDS](https://docs.aws.amazon.com/guardduty/latest/ug/findings-rds-protection.html), respectivamente, no *Guia do usuário do Amazon GuardDuty*. 

Você pode ativar ou desativar o recurso RDS Protection para qualquer Conta da AWS em qualquer Região da AWS onde esse recurso esteja disponível. Quando o RDS Protection não está ativado, o GuardDuty não detecta bancos de dados do RDS possivelmente comprometidos nem fornece detalhes sobre o comprometimento.

Uma conta do GuardDuty existente pode habilitar a Proteção do RDS com um período de teste de 30 dias. Para uma nova conta do GuardDuty, a Proteção do RDS já está habilitada e incluída no período de teste gratuito de 30 dias. Para ter mais informações, consulte [Custo da Proteção do GuardDuty RDS](https://docs.aws.amazon.com/guardduty/latest/ug/monitoring_costs.html) no *Guia do usuário do Amazon GuardDuty*.

Para saber em quais Regiões da AWS não é possível usar o GuardDuty com a Proteção do RDS, consulte [Region-specific feature availability](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_regions.html#gd-regional-feature-availability) no *Guia do usuário do Amazon GuardDuty*.

Para ter informações sobre as versões do banco de dados do RDS que o GuardDuty RDS Protection aceita, consulte [Supported Amazon Aurora, Amazon RDS, and Aurora Limitless databases](https://docs.aws.amazon.com/guardduty/latest/ug/rds-protection.html#rds-pro-supported-db) no *Guia do usuário do Amazon GuardDuty*.