Partilhar via


Espelhamento de Bases de Dados e Instantâneos de Bases de Dados (SQL Server)

Aplica-se a:SQL Server

Pode aproveitar uma base de dados espelhada que mantém para fins de disponibilidade para descarregar relatórios. Para usar uma base de dados espelhada para relatórios, pode criar um snapshot da base de dados espelhada e direcionar os pedidos de ligação do cliente para o snapshot mais recente. Um instantâneo de base de dados é um instantâneo estático, apenas de leitura e consistente em termos de transações da sua base de dados de origem tal como existia no momento da criação do instantâneo. Para criar um snapshot da base de dados numa base de dados espelhada, a base de dados deve estar no estado de espelhamento sincronizado.

Ao contrário da própria base de dados espelhada, um snapshot da base de dados é acessível aos clientes. Desde que o servidor espelho esteja a comunicar com o servidor principal, pode direcionar os clientes de relatório para se ligarem a um snapshot. Note que, como um snapshot da base de dados é estático, novos dados não estão disponíveis. Para disponibilizar dados relativamente recentes aos seus utilizadores, deve criar periodicamente um novo snapshot da base de dados e fazer com que as aplicações encaminhem as ligações dos clientes recebidos para o snapshot mais recente.

Um novo instantâneo de base de dados está quase vazio, mas cresce com o tempo à medida que um número crescente de páginas é atualizado pela primeira vez. Como cada snapshot numa base de dados cresce incrementalmente desta forma, cada snapshot consome tantos recursos como uma base de dados normal. Dependendo das configurações do servidor espelho e do servidor principal, ter um número excessivo de instantâneos de base de dados numa base de dados espelhada pode diminuir o desempenho na base de dados principal. Por isso, recomendamos que mantenha apenas alguns snapshots que são relativamente recentes nas suas bases de dados de espelho. Normalmente, depois de criar um snapshot de substituição, deve redirecionar as consultas recebidas para o novo snapshot e eliminar o snapshot anterior após a conclusão de quaisquer consultas atuais.

Observação

Para mais informações sobre cópias instantâneas de bases de dados, consulte Cópias Instantâneas de Base de Dados (SQL Server).

Se ocorrer troca de papéis, a base de dados e os seus instantâneos são reiniciados, desconectando temporariamente os utilizadores. Depois, os instantâneos da base de dados permanecem na instância do servidor onde foram criados, que se tornou a nova base de dados principal. Os utilizadores podem continuar a usar os snapshots após o failover. No entanto, isto coloca uma carga adicional no novo servidor principal. Se o desempenho for uma preocupação no seu ambiente, recomendamos que crie um snapshot na nova base de dados espelhada assim que esta estiver disponível, redirecione os clientes para o novo snapshot e elimine todos os snapshots da antiga base de dados espelhada.

Observação

Para uma solução de relatórios dedicada que escale bem, considere a replicação. Para obter mais informações, consulte Replicação do SQL Server.

Example

Este exemplo cria instantâneos numa base de dados espelhada.

Assuma que a base de dados de uma sessão de espelhamento de base de dados é AdventureWorks2025. Este exemplo cria três instantâneos da base de dados na cópia espelhada da AdventureWorks base de dados, que reside no F disco. Os instantâneos são nomeados AdventureWorks_0600, AdventureWorks_1200, e AdventureWorks_1800 para identificar os seus tempos aproximados de criação.

  1. Crie o primeiro snapshot da base de dados no espelho de AdventureWorks2025.

    CREATE DATABASE AdventureWorks_0600  
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_0600.SNP')  
       AS SNAPSHOT OF AdventureWorks2022  
    
  2. Crie o segundo snapshot da base de dados no espelho de AdventureWorks2025. Os utilizadores que ainda estão a usar AdventureWorks_0600 podem continuar a usá-lo.

    CREATE DATABASE AdventureWorks_1200  
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1200.SNP')  
       AS SNAPSHOT OF AdventureWorks2022  
    

    Neste ponto, as novas ligações ao cliente podem ser direcionadas programaticamente para o snapshot mais recente.

  3. Crie o terceiro snapshot no espelho AdventureWorks2025. Utilizadores que ainda os utilizam AdventureWorks_0600 ou AdventureWorks_1200 podem continuar a usá-los.

    CREATE DATABASE AdventureWorks_1800  
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1800.SNP')  
        AS SNAPSHOT OF AdventureWorks2022  
    

    Neste ponto, as novas ligações ao cliente podem ser direcionadas programaticamente para o snapshot mais recente.

Tarefas relacionadas

Ver também

Instantâneos de Banco de Dados (SQL Server)
Conectar clientes a uma sessão de espelhamento de banco de dados (SQL Server)