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:
-
Crie uma instância de banco de dados do SQL Server usando um desses tipos de instância. Para obter mais informações, consulte Criar uma instância de banco de dados do Amazon RDS.
-
Modifique uma instância de banco de dados SQL Server existente para usar uma delas. Para obter mais informações, consulte Modificar uma instância de banco de dados do Amazon RDS.
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 do . 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.