Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um instantâneo de banco de dados é uma visão estática e somente leitura de um banco de dados do SQL Server (o banco de dados de origem). O instantâneo do banco de dados é transacionalmente consistente com o banco de dados de origem a partir do momento da criação do instantâneo. Um instantâneo de banco de dados sempre reside na mesma instância do servidor que o banco de dados de origem. À medida que o banco de dados de origem é atualizado, o instantâneo do banco de dados é atualizado. Portanto, quanto mais tempo um instantâneo de banco de dados existir, maior é a probabilidade de ele utilizar todo o seu espaço em disco disponível.
Várias capturas instantâneas podem existir em um determinado banco de dados de origem. Cada instantâneo de banco de dados persiste até que seja explicitamente descartado pelo proprietário do banco de dados.
Observação
Instantâneos de banco de dados não têm relação com backups de instantâneos, isolamento de instantâneos de transações ou replicação de instantâneos.
Neste tópico:
Visão geral do recurso
Os instantâneos de banco de dados operam no nível da página de dados. Antes que uma página do banco de dados de origem seja alterada pela primeira vez, a página original é copiada do banco de dados de origem para o banco de dados instantâneo. O instantâneo armazena a página original, preservando os registros de dados como eles existiam quando o instantâneo foi criado. O mesmo processo é repetido para cada página que está sendo modificada pela primeira vez. Para o usuário, um instantâneo de banco de dados parece nunca ser alterado, pois as operações de leitura em um instantâneo de banco de dados sempre acessam as páginas de dados originais, independentemente de onde residem.
Para armazenar as páginas originais copiadas, o instantâneo usa um ou mais arquivos esparsos. Inicialmente, um arquivo esparso é um arquivo essencialmente vazio que não contém dados do usuário e ainda não foi alocado espaço em disco para dados do usuário. À medida que mais e mais páginas são atualizadas no banco de dados de origem, o tamanho do arquivo aumenta. A figura a seguir ilustra os efeitos de dois padrões de atualização contrastantes no tamanho de um instantâneo. O padrão de atualização A reflete um ambiente no qual apenas 30% das páginas originais são atualizadas durante a vida útil do instantâneo. O padrão de atualização B reflete um ambiente no qual 80% das páginas originais são atualizadas durante a vida útil do instantâneo.
Benefícios dos instantâneos de banco de dados
Instantâneos podem ser usados para fins de relatório.
Os clientes podem consultar um instantâneo de banco de dados, o que o torna útil para gravar relatórios com base nos dados no momento da criação do instantâneo.
Manutenção de dados históricos para geração de relatórios.
Um instantâneo pode estender o acesso do usuário aos dados de um determinado ponto no tempo. Por exemplo, você pode criar um instantâneo de banco de dados no final de um determinado período de tempo (como um trimestre financeiro) para relatórios posteriores. Em seguida, você pode executar relatórios de fim de período no instantâneo. Se o espaço em disco permitir, você também poderá manter instantâneos de fim de período indefinidamente, permitindo consultas em relação aos resultados desses períodos; por exemplo, para investigar o desempenho organizacional.
Usando um banco de dados espelho que você está mantendo para fins de disponibilidade para descarregar relatórios.
O uso de instantâneos de banco de dados com espelhamento de banco de dados permite tornar os dados no servidor espelho acessíveis para relatórios. Além disso, a execução de consultas no banco de dados espelho pode liberar recursos no principal. Para obter mais informações, consulte Espelhamento de Banco de Dados e Instantâneos de Banco de Dados (SQL Server).
Proteger dados contra erros administrativos.
No caso de um erro do usuário em um banco de dados de origem, você pode reverter o banco de dados de origem para o estado em que ele estava quando um determinado instantâneo de banco de dados foi criado. A perda de dados é limitada a atualizações no banco de dados desde a criação do instantâneo.
Por exemplo, antes de fazer atualizações importantes, como uma atualização em massa ou uma alteração de esquema, crie um instantâneo do banco de dados para proteger os dados. Se você cometer um erro, poderá usar o instantâneo para recuperar, restaurando o banco de dados a partir do instantâneo. A reversão é potencialmente muito mais rápida para essa finalidade do que restaurar de um backup; no entanto, você não pode prosseguir depois.
Importante
A reversão não funciona em um banco de dados offline ou corrompido. Portanto, fazer backups regulares e testar seu plano de restauração é necessário para proteger um banco de dados.
Observação
Os instantâneos de banco de dados dependem do banco de dados de origem. Portanto, o uso de instantâneos de banco de dados para reverter um banco de dados não substitui sua estratégia de backup e restauração. É essencial executar todos os backups agendados. Se você precisar restaurar o banco de dados de origem para o ponto no tempo em que criou um instantâneo de banco de dados, implemente uma política de backup que o permita.
Proteção de dados contra erros do usuário.
Ao criar instantâneos de banco de dados regularmente, você pode atenuar o impacto de um erro de usuário principal, como uma tabela descartada. Para um alto nível de proteção, você pode criar uma série de instantâneos de banco de dados que abrangem tempo suficiente para reconhecer e responder à maioria dos erros do usuário. Por exemplo, você pode manter de 6 a 12 instantâneos sem interrupção que abrangem um intervalo de 24 horas, dependendo dos recursos de disco. Em seguida, cada vez que um novo instantâneo é criado, o instantâneo mais antigo pode ser excluído.
Para se recuperar de um erro de usuário, você pode reverter o banco de dados para o instantâneo imediatamente antes do erro. A reversão é potencialmente muito mais rápida para essa finalidade do que restaurar de um backup; no entanto, você não pode avançar posteriormente.
Como alternativa, você pode reconstruir manualmente uma tabela descartada ou outros dados perdidos das informações em um instantâneo. Por exemplo, você pode copiar em lote os dados do instantâneo para o banco de dados e mesclar manualmente os dados novamente.
Observação
Seus motivos para usar instantâneos de banco de dados determinam quantos instantâneos simultâneos você precisa em um banco de dados, com que frequência criar um novo instantâneo e por quanto tempo mantê-lo.
Gerenciando um banco de dados de teste
Em um ambiente de teste, pode ser útil ao executar repetidamente um protocolo de teste para que o banco de dados contenha dados idênticos no início de cada rodada de teste. Antes de executar a primeira rodada, um desenvolvedor ou testador de aplicativos pode criar um instantâneo de banco de dados no banco de dados de teste. Após cada execução de teste, o banco de dados pode ser rapidamente retornado ao seu estado anterior revertendo o instantâneo do banco de dados.
Termos e definições
instantâneo do banco de dados
Uma visão estática, consistente em termos transacionais e somente leitura de um banco de dados (o banco de dados de origem).
banco de dados de origem
Para um instantâneo de banco de dados, o banco de dados no qual o instantâneo foi criado. Os instantâneos de banco de dados dependem do banco de dados de origem. Os instantâneos de um banco de dados devem estar na mesma instância de servidor que o banco de dados. Além disso, se esse banco de dados ficar indisponível por qualquer motivo, todos os seus instantâneos de banco de dados também ficarão indisponíveis.
arquivo esparso
Um arquivo fornecido pelo sistema de arquivos NTFS que requer muito menos espaço em disco do que seria necessário de outra forma. Um arquivo esparso é usado para armazenar páginas copiadas para um instantâneo de banco de dados. Quando criado pela primeira vez, um arquivo esparso ocupa pouco espaço em disco. À medida que os dados são gravados em um instantâneo de banco de dados, o NTFS aloca espaço em disco gradualmente para o arquivo esparso correspondente.
Pré-requisitos e limitações para instantâneos de banco de dados
Nesta seção:
Pré-requisitos
O banco de dados de origem, que pode usar qualquer modelo de recuperação, deve atender aos seguintes pré-requisitos:
A instância do servidor deve estar em execução em uma edição do SQL Server que dê suporte a instantâneos de banco de dados. Para obter mais informações, consulte Features Supported by the Editions of SQL Server 2014.
O banco de dados de origem precisa estar online, a menos que se trate de um banco de dados espelho dentro de uma sessão de espelhamento de banco de dados.
Você pode criar um instantâneo de banco de dados em qualquer banco de dados primário ou secundário em um grupo de disponibilidade. A função de réplica deve ser PRIMARY ou SECONDARY, em vez de estar no estado RESOLVING.
É recomendável que o estado de sincronização de banco de dados seja SYNCHRONIZING ou SYNCHRONIZED quando você criar um instantâneo de banco de dados. No entanto, os instantâneos de banco de dados poderão ser criados quando o estado de sincronização de banco de dados for NOT SYNCHRONIZING.
Para obter mais informações, consulte Capturas instantâneas de banco de dados com Grupos de Disponibilidade AlwaysOn (SQL Server).
Para criar um instantâneo de banco de dados em um banco de dados espelho, o banco de dados deve estar no estado de espelhamento SYNCHRONIZED.
O banco de dados de origem não pode ser configurado como banco de dados compartilhado escalonável.
Observação
Todos os modelos de recuperação dão suporte a instantâneos de banco de dados.
Limitações no banco de dados de origem
Desde que exista um instantâneo de banco de dados, as seguintes limitações existem no banco de dados de origem do instantâneo:
O banco de dados não pode ser removido, desanexado ou restaurado.
Observação
O backup do banco de dados de origem funciona normalmente; não é afetado por instantâneos de banco de dados.
O desempenho é reduzido devido ao aumento de operações de entrada/saída no banco de dados de origem, resultado de uma operação de copy-on-write para o snapshot, sempre que uma página é atualizada.
Os arquivos não podem ser excluídos do banco de dados de origem ou de instantâneos.
Limitações de instantâneos de banco de dados
As seguintes limitações se aplicam a instantâneos de banco de dados:
Um instantâneo do banco de dados deve ser criado e permanecer na mesma instância de servidor que o banco de dados de origem.
Instantâneos de banco de dados sempre funcionam em um banco de dados inteiro.
Os instantâneos de banco de dados dependem do banco de dados de origem e não são de armazenamento redundante. Eles não protegem contra erros de disco ou outros tipos de corrupção. Portanto, o uso de instantâneos de banco de dados para reverter um banco de dados não substitui sua estratégia de backup e restauração. Executar todos os backups agendados permanece essencial. Se você precisar restaurar o banco de dados de origem para o ponto no tempo em que criou um instantâneo de banco de dados, implemente uma política de backup que permita que você faça isso.
Quando uma página sendo atualizada no banco de dados de origem é enviada por push para um instantâneo, se o instantâneo ficar sem espaço em disco ou encontrar algum outro erro, o instantâneo se tornará suspeito e deverá ser excluído.
Instantâneos são somente leitura. Como eles são somente leitura, eles não podem ser atualizados. Portanto, os instantâneos de banco de dados não devem ser utilizáveis após uma atualização.
Instantâneos dos bancos de dados modelo, mestre e tempdb são proibidos.
Você não pode alterar nenhuma das especificações dos arquivos de instantâneo do banco de dados.
Você não pode remover arquivos de um instantâneo de banco de dados.
Você não pode fazer backup ou restaurar instantâneos de banco de dados.
Você não pode anexar ou desanexar instantâneos de banco de dados.
Você não pode criar instantâneos de banco de dados no sistema de arquivos FAT32 ou em partições RAW. Os arquivos esparsos usados pelos instantâneos de banco de dados são fornecidos pelo sistema de arquivos NTFS.
Não há suporte para indexação de texto completo em instantâneos de banco de dados. Catálogos de texto completo não são propagados do banco de dados de origem.
Um instantâneo de banco de dados herda as restrições de segurança de seu banco de dados de origem no momento da criação do instantâneo. Como os instantâneos são somente leitura, as permissões herdadas não podem ser alteradas e as modificações nas permissões feitas na origem não serão refletidas em instantâneos existentes.
Um instantâneo sempre reflete o estado dos grupos de arquivos no momento da criação do instantâneo: os grupos de arquivos online permanecem online e os grupos de arquivos offline permanecem offline. Para obter mais informações, consulte "Instantâneos de banco de dados com grupos de arquivos offline" mais à frente neste tópico.
Se um banco de dados de origem se tornar RECOVERY_PENDING, seus instantâneos de banco de dados poderão ficar inacessíveis. No entanto, depois que o problema no banco de dados de origem for resolvido, seus instantâneos deverão ficar disponíveis novamente.
A reversão não tem suporte para grupos de arquivos somente leitura e para grupos de arquivos compactados. As tentativas de reverter um banco de dados que contém qualquer um desses tipos de grupos de arquivos falham.
Em uma configuração de envio de logs, os instantâneos de banco de dados só podem ser criados no banco de dados primário, não em um banco de dados secundário. Se você alternar funções entre a instância do servidor primário e uma instância de servidor secundário, deverá remover todos os instantâneos do banco de dados antes de configurar o banco de dados primário como secundário.
Um instantâneo de banco de dados não pode ser configurado como um banco de dados compartilhado escalonável.
Os grupos de arquivos FILESTREAM não são suportados pelos instantâneos do banco de dados. Se os grupos de arquivos FILESTREAM existirem em um banco de dados de origem, eles serão marcados como offline em seus instantâneos de banco de dados e os instantâneos de banco de dados não poderão ser usados para reverter o banco de dados.
Observação
Uma instrução SELECT executada em um instantâneo de banco de dados não deve especificar uma coluna FILESTREAM; caso contrário, a seguinte mensagem de erro será retornada:
Could not continue scan with NOLOCK due to data movement.Quando as estatísticas em um instantâneo somente leitura estão ausentes ou obsoletas, o Mecanismo de Banco de Dados cria e mantém estatísticas temporárias no tempdb. Para obter mais informações, consulte Estatísticas.
Requisitos de espaço em disco
Instantâneos de banco de dados consomem espaço em disco. Se um instantâneo de banco de dados ficar sem espaço em disco, ele será marcado como suspeito e deverá ser descartado. (O banco de dados de origem, no entanto, não é afetado; as ações nele continuam normalmente.) No entanto, em comparação com uma cópia completa de um banco de dados, os instantâneos são altamente eficientes em termos de espaço. Um instantâneo requer apenas espaço de armazenamento suficiente para as páginas que mudam durante seu tempo de vida. Em geral, os instantâneos são mantidos por um tempo limitado, portanto, seu tamanho não é uma grande preocupação.
Quanto mais tempo você mantiver um instantâneo, no entanto, maior a probabilidade de usar o espaço disponível. O tamanho máximo para o qual um arquivo esparso pode crescer é o tamanho do arquivo de banco de dados de origem correspondente no momento da criação do instantâneo.
Se um instantâneo de banco de dados ficar sem espaço em disco, ele deverá ser excluído (descartado).
Observação
Com exceção do espaço de arquivo, um instantâneo de banco de dados consome aproximadamente tantos recursos quanto um banco de dados.
Instantâneos de banco de dados com grupos de arquivos offline
Os grupos de arquivos offline no banco de dados de origem afetam os instantâneos de banco de dados quando você tenta fazer qualquer um dos seguintes procedimentos:
Criar um instantâneo
Quando um banco de dados de origem tem um ou mais grupos de arquivos offline, a criação de instantâneos é bem-sucedida com os grupos de arquivos offline. Os arquivos esparsos não são criados para os grupos de arquivos offline.
Ficar offline de um grupo de arquivos
Você pode tirar um arquivo offline no banco de dados de origem. No entanto, o grupo de arquivos permanecerá online em instantâneos de banco de dados se ele estiver online quando o instantâneo foi criado. Se os dados consultados forem alterados desde a criação do instantâneo, a página de dados original estará acessível no instantâneo. No entanto, as consultas que usam o instantâneo para acessar dados não modificados no grupo de arquivos provavelmente falharão com erros de E/S (entrada/saída).
Colocar um grupo de arquivos online
Você não pode colocar um grupo de arquivos online em um banco de dados que tenha instantâneos de banco de dados. Se um grupo de arquivos estiver offline no momento da criação do instantâneo ou for colocado offline enquanto um instantâneo de banco de dados existir, o grupo de arquivos permanecerá offline. Isso ocorre porque colocar um arquivo online novamente envolve restaurá-lo, o que não é possível se um instantâneo de banco de dados existir no banco de dados.
Reverter o banco de dados de origem para o instantâneo
Reverter um banco de dados de origem para um instantâneo de banco de dados requer que todos os grupos de arquivos estejam online, exceto para grupos de arquivos que estavam offline quando o instantâneo foi criado.
Tarefas Relacionadas
Exibir o tamanho do arquivo esparso de um instantâneo de banco de dados (Transact-SQL)
Reverter um banco de dados para um instantâneo do banco de dados
Consulte Também
Espelhamento de Banco de Dados e Instantâneos de Banco de Dados (SQL Server)