Um dos novos recursos do Microsoft SQL Server 2008 é a compactação de backup, que entre outros benefícios, reduz consideravelmente o tamanho dos arquivos de backup. O uso desse recurso possui algumas limitações. Não é possível manter em um mesmo arquivo, backups compactados e não compactados. Versões anteriores ao Microsoft SQL Server 2008 não conseguem ler arquivos de backup compactados, portanto, não é possível restaurá-los. E por fim, não é possível compartilhar uma fita (NTBackups) com backups compactados do SQL Server.

Os backups compactados exigem menos consumo de disco (IO) por ser menor que os não compactados, e consequentemente deminui o tempo de execução das tarefas de backup. Por outro lado, aumenta o consumo e concorrência de CPU devido ao processamento necessário para compactar os arquivos. Em determinados cenários, isso pode degradar a performance do servidor. Utilizando o Resource Governor é possível determinar um limite de uso de CPU para esta tarefa, evitando que entre em concorrência com outras atividades, através de uma sessão de baixa prioridade. Mas, isto é tema para um outro artigo, por enquanto vamos focar no backup.

É possível determinar em nível de servidor se por padrão todos os backups serão compactados ou não. Esta configuração pode ser realizada através de Transact SQL ou via SSMS (SQL Server Management Studio).  Através de Transact SQL utiliza-se a procedure sp_configure:

USE master
GO
EXEC sp_configure 'backup compression default', '1'
RECONFIGURE WITH OVERRIDE

O valor “1” ativa a compactação. Para desativar a compactação basta modificar o valor para “0”.

Através do SSMS é possível alterar esta configuração a partir da janela Server Properties. Para isso, siga os seguintes passos:

·         Abra o SSMS.

·         Conecte no servidor / instância desejada.

·         Na janela Object Browser, clique com o botão direito no servidor / instância SQL.

·         Clique em Properties.

·         Na janela Server Properties, em Select a page, clique em Database Settings.

·         Marque a opção Compress Backup.

·         Clique no botão OK para confirmar.

Não será necessário reiniciar o serviço do SQL Server para aplicar esta alteração.

 

Criando um Backup Compactado

Realizar um backup no Microsoft SQL Server 2008 não muda muito em relação as versões anteriores. Para criar um backup compactado deve-se apenas complementar com os parâmetros necessários. Através de Transact SQL utiliza-se as opções abaixo utilizando o WITH Options:

·         COMPRESSION: define que o backup deve ser compactado.

·         NO_COMPRESSION: define que o backup não deve ser compactado.

Se esta opção não estiver explicita na instrução TSQL, o SQL Server utilizará o padrão definido em nível de servidor, citado anteriormente. Portanto, se não há certeza da configuração padrão do servidor, indica-se definir explicitamente a opção desejada.

Exemplos:

-- Exemplo 1
BACKUP DATABASE AdventureWorks To Disk = 'E:\Compartilhada\AWorks_Compress.bak' WITH COMPRESSION
GO

-- Exemplo 2
BACKUP DATABASE AdventureWorks To Disk = 'E:\Compartilhada\AWorks_Normal.bak' WITH NO_COMPRESSION
GO

Também é muito simples realizar esta operação através do SSMS. Para isso, siga os passos a seguir:

·         Na janela Object Explorer, clique com o botão direito sobre o banco de dados desejado.

·         Clique na opção Tasks – Back Up...

·         Após realizar as configurações padrões do backup, em Select a page clique em Options.

·         Na parte inferior da janela , na sessão Compression – Set backup compression selecione a opção Compress backup.

·         Clique em OK para iniciar o backup.

 
Agora realize alguns testes em seu ambiente e faça alguns comparativos com backups compactados e não compactados.  A taxa de compactação poderá variar de acordo com diversos fatores em seu banco de dados, como por exemplo os tipos de dados, se existem dados encriptados, a consistência dos dados, entre outros.

 

Até a próxima!

Ivan Candido