

# 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/*!*/;
```