Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Este tópico é relevante apenas para bases de dados que contêm transações marcadas e que usam os modelos de recuperação total ou registo em massa.
Para obter informações sobre os requisitos de restauração para um ponto de recuperação específico, consulte a restauração de um banco de dados do SQL Server para um ponto específico no tempo (Modelo de Recuperação Completa).
O SQL Server dá suporte à inserção de marcas nomeadas no log de transações para permitir a recuperação dessa marca específica. As marcas de log são específicas da transação e são inseridas somente se a transação associada for confirmada. Como resultado, as marcações podem ser vinculadas a um trabalho específico e pode-se recuperar até um ponto que inclua ou exclua esse trabalho.
Antes de inserir marcas nomeadas no log de transações, considere o seguinte:
Como as marcas de transação consomem espaço de log, use-as apenas para transações que desempenham um papel significativo na estratégia de recuperação do banco de dados.
Depois de uma transação marcada ser confirmada, uma linha é inserida na tabela logmarkhistory em msdb.
Se uma transação marcada abranger vários bancos de dados no mesmo servidor de banco de dados ou em servidores diferentes, as marcas deverão ser registradas nos logs de todos os bancos de dados afetados. Para obter mais informações, consulte Usar transações marcadas para recuperar bancos de dados relacionados consistentemente (modelo de recuperação completa).
Observação
Para obter informações sobre como marcar transações, consulte Usar transações marcadas para recuperar bancos de dados relacionados consistentemente (Modelo de recuperação completa).
Transact-SQL Sintaxe para inserir marcas nomeadas num registo de transações
Para inserir marcas nos logs de transações, use a instrução BEGIN TRANSACTION e a cláusula WITH MARK [description]. A marca tem o mesmo nome da transação. A descrição opcional é uma descrição textual da marca, não o nome da marca. Por exemplo, o nome da transação e da marca criada na instrução BEGIN TRANSACTION a seguir é Tx1:
BEGIN TRANSACTION Tx1 WITH MARK 'not the mark name, just a description'
O log de transações regista o nome da marca (nome da transação), descrição, banco de dados, informações de data/hora do usuário e o número de sequência do log (LSN). As informações datetime são usadas com o nome da marca para identificar exclusivamente a marca.
Para obter informações sobre como inserir uma marca em uma transação que abrange vários bancos de dados, consulte Usar transações marcadas para recuperar bancos de dados relacionados consistentemente (Modelo de recuperação completa).
Transact-SQL sintaxe para recuperar para uma marca
Ao direcionar uma transação marcada usando uma instruçãoRESTORE LOG, você pode usar uma das seguintes cláusulas para parar em ou imediatamente antes da marca:
Use WITH STOPATMARK = '<mark_name>' na cláusula para especificar que a transação marcada é o ponto de recuperação.
STOPATMARK avança para a marca e inclui a transação marcada no roll forward.
Use a cláusula WITH STOPBEFOREMARK = '<mark_name>' para especificar que o registo de log imediatamente antes da marca é o ponto de recuperação.
STOPBEFOREMARK avança até à marca e exclui a transação marcada do roll forward.
As opções STOPATMARK e STOPBEFOREMARK suportam uma cláusula opcional AFTER datetime. Quando é usado datetime, os nomes de marcas não têm de ser exclusivos.
Se a opção "após data/hora" for omitida, o avanço para na primeira marca que tem o nome especificado. Se DEPOIS de datetime for especificado, o avanço para na primeira marcação com o nome especificado, exatamente às ou após datetime.
Observação
Como em todas as operações de restauração num ponto específico no tempo, a recuperação para um ponto específico não é permitida quando o banco de dados está passando por operações com registro em massa.
Para restaurar uma transação marcada
restaurar um banco de dados para uma transação marcada (SQL Server Management Studio)
Preparando os backups de log
Neste exemplo, uma estratégia de backup apropriada para esses bancos de dados relacionados seria a seguinte:
Use o modelo de recuperação completa para ambos os bancos de dados.
Crie um backup completo de cada banco de dados.
É possível fazer backup dos bancos de dados sequencial ou simultaneamente.
Antes de fazer backup do log de transações, marque uma transação que seja executada em todos os bancos de dados. Para obter informações sobre como criar as transações marcadas, consulte Usar transações marcadas para recuperar bancos de dados relacionados consistentemente (Modelo de recuperação completa).
Faça backup do log de transações em cada banco de dados.
Recuperando o banco de dados para uma transação marcada
Para restaurar a cópia de segurança
Crie backups de tail-log dos bancos de dados não danificados, se possível.
Restaure o backup completo de banco de dados mais recente de cada banco de dados.
Identifique a transação marcada mais recente que está disponível em todos os backups de log de transações. Essas informações são armazenadas na tabela logmarkhistory na base de dados msdb em cada servidor.
Identifique os backups de log para todos os bancos de dados relacionados que contêm essa marca.
Restaure cada backup de log, parando na transação marcada.
Recupere cada banco de dados.
Ver também
INICIAR TRANSAÇÃO (Transact-SQL)
RESTORE (Transact-SQL)
Aplicar backups do log de transações (SQL Server)
usar transações marcadas para recuperar bancos de dados relacionados de forma consistente (modelo de recuperação completa)
Visão geral da restauração e recuperação (SQL Server)
restaurar um banco de dados do SQL Server para um point-in-time (modelo de recuperação completa)
planejar e executar sequências de restauração (modelo de recuperação completa)