Por que eu devo ler este artigo:Database snapshot define um banco de dados contendo uma visão estática e somente leitura de um outro banco em um determinado momento do tempo. Este artigo descreve o conceito de database snapshot, ou foto (cópia) da base de dados.

Para isso, serão abordadas as diversas utilidades desta funcionalidade, além de demonstrar exemplos práticos de sua utilização. A criação de database snapshot é útil quando existe a necessidade de “congelar” um momento de uma base de dados. Esta foto da base de dados poderá ser acessada somente para leitura dos dados, o que significa que é possível comparar os dados antigos com os dados do momento atual ou mesmo com outro momento qualquer em que se tenha gerado outra database snapshot.

Além disso, uma database snapshot pode ser usada para reverter uma alteração em uma base de dados. Esta reversão pode ser feita tanto através de consultas na database snapshot que recuperem os dados necessários para corrigir a base de dados afetada, como também através do restore de toda a base de dados.

No dia a dia de grandes corporações, ou até mesmo de empresas de pequeno e médio porte, é comum a necessidade de elaborarmos relatórios baseados nos dados gerados pelos sistemas transacionais da empresa, como um sistema de faturamento, um sistema de vendas ou um CRM.

Normalmente, cada um desses sistemas transacionais possui um servidor de banco de dados próprio para os dados utilizados pelas aplicações e estes dados são copiados para um ambiente único e apartado na empresa, chamado de “Data Warehouse” (armazém de dados).

Neste outro ambiente, os dados sofrem algumas transformações para que possam ser usados em relatórios e são armazenados em uma base de dados que é acessada por esses relatórios.

Tais relatórios, principalmente para os grandes cargos da empresa (gerência, diretoria, vice-presidência, presidência), podem ter necessidades e intenções diversas, inclusive a de comparar o último trimestre fiscal da empresa com o atual.

Através dos relatórios, a empresa pode, por exemplo, estabelecer uma meta de crescimento de vendas 10% acima do que vendeu no trimestre anterior. Na Figura 1 temos um exemplo simples de relatório que compara o faturamento do trimestre passado com o atual, além de representar a meta que deve ser alcançada no trimestre atual.

Figura 1. Exemplo de gráfico de relatório comparando dois momentos.

Outro uso comum da database snapshot é quando precisamos nos preparar para o rollback de uma implantação complexa na base de dados. Nestes casos, você pode “congelar” uma cópia da base de dados e realizar a implantação sem se preocupar com um plano de rollback muito complexo. Com a possibilidade de restaurar uma database snapshot sobre a base de dados que lhe deu origem, isso fica muito mais simples.

Para demonstrar este recurso na prática, abordaremos dois casos de uso de database snapshot neste artigo. Um para comparação de dados e outro para recuperação de objetos da base de dados de origem. Antes disso, no entanto, veremos como funciona este interessante recurso que já existe desde o SQL Server 2005 Enterprise e ajuda muito no dia a dia do DBA.

Como funciona a Database Snapshot

Ao criarmos uma database snapshot, uma cópia da base de dados (sem os dados) é criada. A partir deste momento, quando uma página de dados da base de dados de origem é alterada pela primeira vez, a página de dados original (sem a alteração) é armazenada na base de dados da snapshot, em arquivos chamados de “Sparse Files”, ...

Quer ler esse conteúdo completo? Tenha acesso completo