por Roberto Cavalcanti

Existem situações em casos de suporte ao SQL Server em que nós precisamos capturar clones de bases de dados para tentarmos reproduzir determinados problemas in-house, sem afetar ambientes de produção e tendo a liberdade de testar os mais diversos cenários. Quando o servidor é o SQL Server 2000 nós costumamos usar a ferramenta “CloneDB” que permite que copiemos a estrutura da base de dados apenas, possibilitando assim a conformidade com as diversas políticas de privacidade que presentes no mundo corporativo.

Esses clones nos são úteis para inúmeros tipos de testes, mas são de extrema valia para a reprodução do comportamento do Query Optimizer do SQL Server durante a criação de um Plano de Execução (query plan).

Para tal, necessitamos capturar as seguintes informações sobre o SQL Server:

  • Metadata da base de dados a ser clonada
  • O ambiente de hardware
  • O session state da base de dados

A ferramenta CloneDB não é compatível com a versões 2005 e 2008 do SQL Server. Para conseguir o clone de uma base de dados no SQL Server 2005* ou SQL Server 2008, faça o seguinte:

  • Abra o SQL Server Management Studio.
  • No Object Explorer, expanda Databases e localize o banco de dados para o qual será gerado o clone.
  • Clique com o botão direito sobre o banco de dados, selecione Tasks e Generate Scripts. Clique em Next:

image

  • No Script Wizard, certifique-se de que o banco de dados correto está selecionado, marque a opção “Script all objects in the selected database” e clique em Next:

image

  • Em Choose Script Options, certifique-se de que as opções estão ajustadas como a seguir. Note que um aviso será exibido quando a opção Script statistics and histograms for selecionada, basta clicar em Ok. Clique em Next:

image

image

  • Selecione Script to file, escolha uma pasta e um nome apropriados e clique em Next:

image

  • Verifique se todas as opções estão corretas e clique em Finish. Aguarde o término da geração do clone e clique em Close:

image

Este roteiro está baseado nas instruções disponíveis no artigo:

How to generate a script of the necessary database metadata to create a statistics-only database in SQL Server 2005 and in SQL Server 2008

É importante notar que a geração do clone pode consumir bastante CPU, e por esse motivo recomendamos executar esse procedimento em um horário de baixa utilização da instância do SQL Server.

* O SQL Server 2005 tem que estar atualizado com pelo menos o Service Pack 2 para que esse procedimento funcione corretamente.