

# Usando um volume de registro dedicado (DLV)
<a name="USER_PIOPS.dlv"></a>

Use um volume dedicado de log (DLV) para uma instância de banco de dados que usa o armazenamento de IOPS provisionadas (PIOPS). Um DLV move os logs de transações do banco de dados do PostgreSQL e logs binários e redo logs do MySQL/MariaDB para um volume de armazenamento separado do volume que contém as tabelas do banco de dados. Um DLV torna o registro de gravação de transações mais eficiente e consistente. Os DLVs são ideais para bancos de dados com grande armazenamento alocado, altos requisitos de I/O por segundo (IOPS) ou cargas de trabalho sensíveis à latência.

Os DLVs são compatíveis com armazenamento PIOPS (io1 e io2 Block Express) e são criados com um tamanho fixo de 1.024 GiB e 3.000 IOPS provisionadas.

O Amazon RDS é compatível com DLVs em todas as Regiões da AWS para as seguintes versões:
+ 10.6.7 e versões 10.6 posteriores
+ MySQL 8.0.28 e versões posteriores a 8.0, MySQL 8.4.3 e versões posteriores a 8.4
+ Todas as versões 11, 12 e 13, versões 10.4 e superior e versões 9.6.9 e superior do PostgreSQL

O Amazon RDS on é compatível com implantações multi-AZ. Quando você modifica ou cria uma instância multi-AZ, um DLV é criado tanto para a primária quanto para a secundária.

O RDS oferece suporte a DLVs com réplicas de leitura. Se a instância de banco de dados primária tiver um DLV ativado, todas as réplicas de leitura criadas após a ativação do DLV também terão um DLV. Qualquer réplica de leitura criada antes da mudança para o DLV não a terá habilitada, a menos que seja explicitamente modificada para isso. Recomendamos que todas as réplicas de leitura anexadas a uma instância primária antes da ativação do DLV também sejam modificadas manualmente para terem um DLV.

**nota**  
Recomendamos DLVs para configurações de banco de dados de 5 TiB ou mais.

Para obter mais informações sobre os benefícios de DLVs, consulte as seguintes postagens no blog:
+ [Melhore o desempenho do banco de dados com volumes de log dedicados do Amazon RDS](https://aws.amazon.com/blogs/database/enhance-database-performance-with-amazon-rds-dedicated-log-volumes/)
+ [Benchmark do Amazon RDS para PostgreSQL com volumes de log dedicados](https://aws.amazon.com/blogs/database/benchmark-amazon-rds-for-postgresql-with-dedicated-log-volumes/)
+ [Maximização do desempenho do AWS RDS para MySQL com volumes de log dedicados](https://www.percona.com/blog/maximizing-performance-of-aws-rds-for-mysql-with-dedicated-log-volumes/) na documentação do Percona

Para obter informações sobre os intervalos de armazenamento alocado, IOPS provisionadas e throughput disponíveis para cada mecanismo de banco de dados, consulte [Armazenamento SSD de IOPS provisionadas](CHAP_Storage.md#USER_PIOPS).

**Topics**
+ [Considerações ao habilitar e desabilitar o DLV](#USER_PIOPS.dlv.considerations)
+ [Habilitar o DLV ao criar uma instância de banco de dados](#USER_PIOPS.create-dlv)
+ [Habilitar o DLV em uma instância de banco de dados existente](#USER_PIOPS.modify-dlv)
+ [Monitorar o armazenamento DLV](#USER_PIOPS.dlv.monitoring)

## Considerações ao habilitar e desabilitar o DLV
<a name="USER_PIOPS.dlv.considerations"></a>

Habilitar e desabilitar o DLV pode ser demorado e causar tempo de inatividade. O processo envolve copiar todos os logs de transações ou redo logs e logs binários (dependendo do mecanismo de banco de dados) no novo volume ao habilitar ou de volta no armazenamento original ao desabilitar. A duração dessa operação é influenciada por vários fatores:
+ Número de logs de transações:
  + Bancos de dados maiores com mais transações geram mais logs, aumentando o tempo necessário para cópia.
  + Os logs de transações poderão se acumular na instância do banco de dados primário se os slots de replicação estiverem inativos ou se a replicação estiver atrasada, aumentando o tempo necessário para a cópia. Verifique se a replicação está atualizada e remova todos os slots desnecessários.
+ Configuração do armazenamento:
  + Largura de banda do EBS da instância de banco de dados: maior largura de banda permite uma transferência de dados mais rápida.
  + Número de IOPS provisionadas: mais operações de entrada e saída por segundo (IOPS) podem acelerar o processo de cópia.
+ Atividade do banco de dados: altos níveis de atividade do banco de dados durante a configuração podem retardar o processo.

Para minimizar o tempo de inatividade, recomendamos o planejamento e o agendamento durante períodos de baixa atividade ou janelas de manutenção.

## Habilitar o DLV ao criar uma instância de banco de dados
<a name="USER_PIOPS.create-dlv"></a>

É possível usar o Console de gerenciamento da AWS, a AWS CLI ou a API do RDS para criar uma instância de banco de dados com o DLV habilitado.

### Console
<a name="USER_PIOPS.create-dlv.CON"></a>

**Como habilitar o DLV em uma nova instância de banco de dados**

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. Escolha **Create database (Criar banco de dados)**.

1. Na página **Criar instância de banco de dados**, escolha um mecanismo de banco de dados compatível com DLV.

1. Em **Armazenamento**:

   1. Escolha **SSD de IOPS provisionadas (io1)** ou **SSD de IOPS provisionadas (io2)**.

   1. Insira o **Armazenamento alocado** e as **IOPS provisionadas** que você deseja.

   1. Expanda **Volume dedicado de logs** e selecione **Ativar o volume dedicado de logs**.  
![\[Habilite o DLV em uma nova instância de banco de dados.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/enable-dlv.png)

1. Selecione outras configurações, conforme necessário.

1. Selecione **Criar banco de dados**.

Depois que o banco de dados é criado, o valor do volume dedicado de logs aparece na guia **Configuração** da página de detalhes do banco de dados.

### CLI
<a name="USER_PIOPS.create-dlv.CLI"></a>

Para habilitar o DLV ao criar uma instância de banco de dados usando o armazenamento de IOPS provisionadas, use o comando [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) da AWS CLI. Defina os seguintes parâmetros:
+ `--dedicated-log-volume`: ativa um volume de logs dedicado.
+ `--storage-type`: defina como `io2` ou `io1` para IOPS provisionadas.
+ `--allocated-storage`: quantidade de armazenamento a ser alocada para a instância de banco de dados, em gibibytes.
+ `--iops`: a quantidade de IOPS provisionadas para a instância de banco de dados, expressa em operações de E/S por segundo.

### API do RDS
<a name="USER_PIOPS.create-dlv.API"></a>

Para habilitar o DLV ao criar uma instância de banco de dados usando o armazenamento de IOPS provisionadas, use a operação de API [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CretaeDBInstance.html) do Amazon RDS. Defina os seguintes parâmetros:
+ `DedicatedLogVolume`: defina como `true` para usar um volume de logs dedicado.
+ `StorageType`: defina como `io2` ou `io1` para IOPS provisionadas.
+ `AllocatedStorage`: quantidade de armazenamento a ser alocada para a instância de banco de dados, em gibibytes.
+ `Iops`: a taxa de IOPS para a instância de banco de dados, expressa em operações de E/S por segundo.

## Habilitar o DLV em uma instância de banco de dados existente
<a name="USER_PIOPS.modify-dlv"></a>

É possível usar o Console de gerenciamento da AWS, a AWS CLI ou a API do RDS para modificar uma instância de banco de dados para habilitar o DLV.

Depois de modificar a configuração de DLV para uma instância de banco de dados, é necessário reinicializar a instância de banco de dados.

### Console
<a name="USER_PIOPS.modify-dlv.CON"></a>

**Como habilitar o DLV em uma instância de banco de dados existente**

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 **Databases (Bancos de dados)**.

   Para filtrar a lista de instâncias de banco de dados, em **Filter databases (Filtrar bancos de dados)**, digite uma string de texto para que o Amazon RDS use nos filtros dos resultados. Serão exibidas apenas as instâncias de banco de dados cujos nomes contiverem a string.

1. Escolha a instância de banco de dados com o armazenamento de IOPS provisionadas que você deseja modificar.

1. Escolha **Modificar**.

1. Na página **Modificar instância de banco de dados**:

   1. Em **Armazenamento**, expanda **Volume dedicado de logs** e selecione **Ativar o volume dedicado de logs**.

1. Escolha **Continuar**.

1. Escolha **Aplicar imediatamente** para aplicar as alterações à instância de banco de dados imediatamente. Ou escolha **Apply during the next scheduled maintenance window (Aplicar durante a próxima janela de manutenção programada)** para aplicar as alterações na próxima janela de manutenção.

1. Revise os parâmetros a serem alterados e escolha **Modify DB instance (Modificar instância de banco de dados)** para concluir a modificação.

O novo valor do volume dedicado de logs aparece na guia **Configuração** da página de detalhes do banco de dados.

### CLI
<a name="USER_PIOPS.modify-dlv.CLI"></a>

Para habilitar ou desabilitar o DLV em uma instância de banco de dados existente usando o armazenamento de IOPS provisionadas, use o comando. AWS CLI [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) Defina os seguintes parâmetros:
+ `--dedicated-log-volume`: ativa um volume de logs dedicado.

  Use `--no-dedicated-log-volume` (o padrão) para desabilitar um volume de logs dedicado.
+ `--apply-immediately`: use `--apply-immediately` para aplicar as alterações imediatamente.

  Use `--no-apply-immediately` (o padrão) para aplicar as alterações durante a próxima janela de manutenção.

### API do RDS
<a name="USER_PIOPS.modify-dlv.API"></a>

Para habilitar ou desabilitar o DLV em uma instância de banco de dados existente usando o armazenamento de IOPS provisionadas, use a operação de API do Amazon RDS [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html). Defina os seguintes parâmetros:
+ `DedicatedLogVolume`: defina essa opção como `true` para habilitar um volume de logs dedicado.

  Defina essa opção como `false` para desabilitar um volume de logs dedicado. Este é o valor padrão.
+ `ApplyImmediately`: defina essa opção como `True` para aplicar as alterações imediatamente.

  Defina essa opção como `False` (o padrão) para aplicar as alterações durante a próxima janela de manutenção.

## Monitorar o armazenamento DLV
<a name="USER_PIOPS.dlv.monitoring"></a>

É possível monitorar o uso do armazenamento DLV usando a métrica `FreeStorageSpaceLogVolume` no CloudWatch.

É possível usar a seguinte consulta para RDS para PostgreSQL para encontrar o tamanho ocupado pelos logs de transações:

```
SELECT pg_size_pretty(COALESCE(sum(size), 0)) AS total_wal_generated_size
FROM pg_catalog.pg_ls_waldir();
```

Se o DLV ficar sem armazenamento, a instância de banco de dados entrará no estado `storage-full`, causando tempo de inatividade.