Compactação de backup (SQL Server)

Aplica-se a: SQL Server

Este artigo descreve a compactação de backups do SQL Server, incluindo restrições, compensação de desempenho da compactação de backups, a configuração da compactação de backup e a taxa de compactação. A compactação de backup tem suporte nas edições do SQL Server: Enterprise, Standard e Developer. Todas as edições do SQL Server 2008 (10.0.x) e posterior podem restaurar um backup compactado.

Benefícios

  • Como um backup compactado é menor do que um backup não compactado dos mesmos dados, a compactação de um backup normalmente requer menos operações de E/S do dispositivo e, portanto, normalmente aumenta significativamente a velocidade do backup.

    Para obter mais informações, consulte Impacto de desempenho dos backups compactados, posteriormente neste artigo.

Restrições

As restrições a seguir aplicam-se aos backups compactados:

  • Backups compactados e não compactados não podem coexistir em um conjunto de mídias.

  • Versões anteriores do SQL Server não podem ler backups compactados.

  • NTbackups não podem compartilhar uma fita com backups compactados do SQL Server.

Impacto no desempenho da compactação de backups

Por padrão, a compactação aumenta consideravelmente o uso da CPU, e o consumo adicional da CPU por parte do processo de compactação pode afetar negativamente as operações simultâneas. Portanto, é recomendável criar backups compactados de baixa prioridade em uma sessão cujo uso da CPU é limitado pelo Administrador de Recursos. Para obter mais informações, confira Usar o Resource Governor para limitar o uso de CPU por meio de compactação de backup (Transact-SQL).

A partir do SQL Server 2022 (16.x), você pode usar a Aceleração e descarregamento integrado para compactar backups e descarregar os recursos da CPU para o backup.

Para obter uma boa visão do desempenho de E/S do seu backup, é possível isolar o E/S do backup para ou dos dispositivos avaliando as seguintes classificações dos contadores de desempenho:

  • Contadores de desempenho de E/S do Windows, como os contadores de disco físico

  • O contador de Taxa de Transferência do Dispositivo em Bytes/s do objeto SQLServer:Backup Device

  • O contador Taxa de Transferência de Backup/Restauração/s do objeto SQLServer:Databases

Para obter informações sobre contadores do Windows, consulte a ajuda do Windows. Para obter informações sobre como trabalhar com contadores SQL Server, consulte Usar objetos do SQL Server.

Calcule a taxa de compactação de um backup compactado

Para calcular a taxa de compactação de um backup, use os valores para o backup nas colunas backup_size e compressed_backup_size da tabela de histórico backupset da seguinte maneira:

backup_size:compressed_backup_size

Por exemplo, uma taxa de compactação de 3:1 indica que você está economizando aproximadamente 66% de espaço em disco. Para consultar essas colunas, você pode usar a seguinte instrução Transact-SQL:

SELECT backup_size/compressed_backup_size FROM msdb..backupset;  

A taxa de compactação de um backup compactado depende dos dados que foram compactados. Uma variedade de fatores pode impactar na taxa de compactação obtida. Os principais fatores incluem:

  • O tipo de dados.

    Os dados de caractere compactam mais do que outros tipos de dados.

  • A consistência dos dados entre as linhas em uma página.

    Normalmente, se uma página contém várias linhas com um campo contendo o mesmo valor, poderá ocorrer uma compactação significativa para esse valor. Por outro lado, para um banco de dados que contém dados aleatórios ou contém somente uma grande linha por página, um backup compactado pode ser tão grande quanto um backup não compactado.

  • Se os dados são criptografados

    A compactação de dados criptografados é significativamente menor do que a compactação de dados equivalentes não criptografados. Por exemplo, se os dados forem criptografados no nível da coluna com Always Encrypted ou com outra criptografia no nível do aplicativo, a compactação dos backups poderá não reduzir significativamente o tamanho.

    Para obter mais informações relacionadas à compactação de bancos de dados criptografados com a tecnologia TDE (Transparent Data Encryption), confira a Compactação de backup com TDE.

  • Se o banco de dados é compactado.

    Se o banco de dados for compactado, a compactação de backups poderá não reduzir muito o seu tamanho.

Compactação de backup com TDE

Começando com o SQL Server 2016 (13.x), definir MAXTRANSFERSIZE maior que 65.536 (64 KB) habilita um algoritmo de compactação otimizada para bancos de dados criptografados com Transparent Data Encryption (TDE) que primeiro descriptografa uma página, compacta-a e, depois, criptografa-a novamente. Se MAXTRANSFERSIZE não for especificado ou se MAXTRANSFERSIZE = 65536 (64 KB) for usado, a compactação de backup com bancos de dados criptografados com TDE compactará diretamente as páginas criptografadas e poderá não resultar em taxas de compactação satisfatórias. Para obter mais informações, consulte Compactação de backup para bancos de dados habilitados para TDE.

Do SQL Server 2019 (15.x) CU5 em diante, a configuração de MAXTRANSFERSIZE não é mais necessária para habilitar esse algoritmo de compactação otimizado com TDE. Se o comando backup for especificado WITH COMPRESSION ou a configuração de servidor padrão de compactação de backup for definido como 1, MAXTRANSFERSIZE será automaticamente aumentado para 128 K para habilitar o algoritmo otimizado. Se MAXTRANSFERSIZE for especificado no comando de backup com um valor > 64 K, o valor fornecido será respeitado. Em outras palavras, o SQL Server nunca diminuirá o valor automaticamente, ele somente o aumentará. Se você precisar fazer backup de um banco de dados criptografado com TDE com MAXTRANSFERSIZE = 65536, será preciso especificar WITH NO_COMPRESSION ou garantir que a configuração de servidor padrão de compactação de backup seja definida como 0.

Para obter mais informações, confira BACKUP (Transact-SQL).

Alocação de espaço para o arquivo de backup

Para backups compactados, o tamanho do arquivo de backup final depende de como os dados são compactáveis e isto é desconhecido antes da conclusão da operação de backup. Portanto, por padrão, ao fazer backup de um banco de dados usando compactação, o Mecanismo de Banco de Dados usa um algoritmo de pré-alocação para o arquivo de backup. Este algoritmo pré-aloca um percentual predefinido do tamanho do banco de dados para o arquivo de backup. Se for necessário mais espaço durante a operação de backup, o Mecanismo de Banco de Dados crescerá o arquivo. Se o tamanho final for menor que o espaço alocado, no final da operação de backup, o Mecanismo de Banco de Dados reduzirá o arquivo para o tamanho final real do backup.

Para permitir que o arquivo de backup somente cresça conforme o necessário para alcançar seu tamanho final, use o sinalizador de rastreamento 3042. O sinalizador de rastreamento 3042 faz a operação de backup ignorar o algoritmo padrão de pré-alocação da compactação de backup. Este sinalizador de rastreamento será útil se você precisar salvar em espaço alocando somente o tamanho real necessário para o backup compactado. Porém, usar este sinalizador de rastreamento pode causar uma pequena penalidade de desempenho (um possível aumento na duração da operação de backup).

Tarefas relacionadas

Próximas etapas

Backup Overview (SQL Server)
Sinalizadores de rastreamento (Transact-SQL)