Suporte ao armazenamento de instâncias para o banco de dados tempdb no Amazon RDS for SQL Server - Amazon Relational Database Service

Suporte ao armazenamento de instâncias para o banco de dados tempdb no Amazon RDS for SQL Server

Um armazenamento de instâncias fornece armazenamento temporário em nível de bloco para a instância de banco de dados. Esse armazenamento está localizado em discos que estão anexados fisicamente ao computador host. Esses discos têm armazenamento de instância de memória expressa não volátil (NVMe) baseado em unidades de estado sólido (SSDs). Esse armazenamento é otimizado para baixa latência, performance de E/S aleatória muito alto e alta taxa de transferência de leitura sequencial.

Ao colocar arquivos de dados tempdb e arquivos de log tempdb no armazenamento de instâncias, você pode obter latências de leitura e gravação mais baixas em comparação com o armazenamento padrão com base no Amazon EBS.

nota

Os arquivos de banco de dados do SQL Server e de log do banco de dados não são colocados no armazenamento de instâncias.

Habilitar o armazenamento de instâncias

Quando o RDS provisiona instâncias de banco de dados com um dos seguintes tipos de instância, o banco de dados tempdb é automaticamente colocado no armazenamento de instâncias:

  • db.m5d

  • db.r5d

  • db.x2iedn

Para habilitar o armazenamento de instâncias, siga um destes procedimentos:

O armazenamento de instâncias está disponível em todas as regiões da AWS onde um ou mais desses tipos de instância são compatíveis. Para obter mais informações sobre as classes de instância db.m5d e db.r5d, consulte Classes de instância de banco de dados . Para obter mais informações sobre as classes de instância compatíveis pelo Amazon RDS for SQL Server, consulte Suporte a classes de instâncias de banco de dados para o Microsoft SQL Server.

Considerações de localização e tamanho do arquivo

Em instâncias sem armazenamento de instâncias, o RDS armazena os arquivos de dados e de logs tempdb no diretório D:\rdsdbdata\DATA. Ambos os arquivos começam em 8 MB por padrão.

Em instâncias com um armazenamento de instâncias, o RDS armazena os arquivos de dados e de logs tempdb no diretório T:\rdsdbdata\DATA.

Quando tempdb tem apenas um arquivo de dados (tempdb.mdf) e um arquivo de log (templog.ldf), templog.ldf inicia em 8 MB por padrão e tempdb.mdf inicia em 80% ou mais da capacidade de armazenamento da instância. Vinte por cento da capacidade de armazenamento ou 200 GB, o que for menor, é mantido livre para começar. Múltiplos arquivos de dados tempdb dividem os 80% do espaço em disco uniformemente, enquanto os arquivos de log sempre têm um tamanho inicial de 8 MB.

Por exemplo, se você modificar sua classe de instância de banco de dados de db.m5.2xlarge para db.m5d.2xlarge, o tamanho dos arquivos de dados tempdb aumenta de 8 MB cada para 234 GB no total.

nota

Além dos arquivos de dados e de log tempdb no armazenamento de instâncias (T:\rdsdbdata\DATA), você ainda pode criar arquivos de dados e de log tempdb extras no volume de dados (D:\rdsdbdata\DATA). Esses arquivos sempre têm um tamanho inicial de 8 MB.

Considerações sobre backup

Talvez seja necessário reter backups por longos períodos, incorrendo em custos ao longo do tempo. Os blocos de tempdb dados e log podem mudar muitas vezes dependendo da carga de trabalho. Isso pode aumentar consideravelmente o tamanho do snapshot de banco de dados.

Quando tempdb está no armazenamento de instâncias, os snapshots não incluem arquivos temporários. Isso significa que os tamanhos de snapshots são menores e consomem menos a alocação de backup gratuita em comparação com o armazenamento de somente EBS.

Erros completos de disco

Se você usar todo o espaço disponível no armazenamento de instâncias, poderá receber erros como os seguintes:

  • O log de transações do banco de dados 'tempdb' está cheio devido a 'ACTIVE_TRANSACTION'.

  • Não foi possível alocar espaço para o objeto dbo.SORT temporary run storage: 140738941419520' no banco de dados 'tempdb' porque o grupo de arquivos 'PRIMÁRIO' está cheio. Crie espaço em disco excluindo arquivos desnecessários, soltando objetos no grupo de arquivos, adicionando arquivos adicionais ao grupo de arquivos ou definindo o crescimento automático para arquivos existentes no grupo de arquivos.

Você pode executar um ou mais dos procedimentos a seguir quando o armazenamento de instâncias estiver cheio:

  • Ajuste sua carga de trabalho ou a maneira como você usa tempdb.

  • Aumente a escala para usar uma classe de instância de banco de dados com mais armazenamento NVMe.

  • Pare de usar o armazenamento de instâncias e use uma classe de instância com apenas armazenamento do EBS.

  • Use um modo misto adicionando dados secundários ou arquivos de log para tempdb no volume do EBS.

Remover o armazenamento de instâncias

Para remover o armazenamento de instâncias, modifique a instância de banco de dados do SQL Server para usar um tipo de instância que não comporte o armazenamento de instâncias como db.m5, db.r5 ou db.x1e.

nota

Quando você remove o armazenamento de instâncias, os arquivos temporários são movidos para o diretório D:\rdsdbdata\DATA e reduzidos em tamanho para 8 MB.