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.
Aplica-se a:SQL Server
Este tópico é relevante apenas para os bancos de dados que contêm transações marcadas e que usam modelos de recuperação bulk-logged ou completos.
Para obter informações sobre os requisitos de restauração para um ponto de recuperação específico, veja Restaurar um banco de dados SQL Server em um ponto específico (Modelo de recuperação completa).
O SQL Server oferece suporte para inserir marcas nomeadas no log de transações, permitindo a recuperação até essa marca específica. As marcas de log são transações específicas e são inseridas apenas se as suas transações associadas forem confirmadas. Desse modo, as marcas podem ser ligadas ao trabalho específico e você pode recuperá-las em um ponto que inclua ou exclua esse trabalho.
Antes de você inserir marcas nomeadas no log de transações, considere o seguinte:
Como as marcas de transação consomem espaço de log, só as use para transações que têm um papel significativo na estratégia de recuperação de banco de dados.
Depois que a transação marcada é confirmada, uma linha é inserida na tabela logmarkhistory no msdb.
Se uma transação marcada abrange vários bancos de dados no mesmo servidor de banco de dados ou em servidores diferentes, as marcas devem ser registradas nos logs de todos os bancos de dados afetados. Para obter mais informações, veja Usar transações marcadas para recuperar bancos de dados relacionados de forma consistente (Modelo de recuperação completa).
Observação
Para obter informações sobre como marcar transações, veja Usar transações marcadas para recuperar bancos de dados relacionados de forma consistente (Modelo de recuperação completa).
Sintaxe Transact-SQL para inserir marcas nomeadas em um log de transações
Para inserir marcas nos logs de transações, use a instrução BEGIN TRANSACTION e a cláusula WITH MARK [descrição]. A marca é nomeada igual à 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 criado na seguinte instrução BEGIN TRANSACTION é Tx1:
BEGIN TRANSACTION Tx1 WITH MARK 'not the mark name, just a description'
O log de transações registra o nome da marca (nome da transação), descrição, banco de dados, usuário, informações de datetime e o LSN (número de sequência de log). As informações de datetime são usadas junto com o nome da marca para identificar a marca com exclusividade.
Para obter informações sobre como inserir uma marca em uma transação que abrange vários bancos de dados, veja Usar transações marcadas para recuperar bancos de dados relacionados de forma consistente (Modelo de recuperação completa).
Sintaxe Transact-SQL para recuperar a uma marca
Quando você visa uma transação marcada usando uma instrução RESTORE LOG, é possível usar uma das seguintes cláusulas para parar na marca ou imediatamente antes dela:
Use a cláusula WITH STOPATMARK = '<nome_marca>' para especificar que a transação marcada é o ponto de recuperação.
O STOPATMARK efetua roll-forward até a marca e inclui a transação marcada no roll-forward.
Use a cláusula WITH STOPBEFOREMARK = '<mark_name>' para especificar que o registro de log que está imediatamente antes da marca é o ponto de recuperação.
O STOPBEFOREMARK efetua roll-forward até a marca e exclui a transação marcada do roll-forward.
Ambas as opções STOPATMARK e STOPBEFOREMARK dão suporte a uma cláusula opcional AFTER datetime . Quando datetime é usado, nomes de marca não precisam ser únicos.
Se AFTER datetime for omitido, o roll forward será interrompido na primeira marca que tem o nome especificado. Se AFTER datetime for especificado, o roll forward será interrompido na primeira marca que tem o nome especificado, exatamente em datetimeou após ele.
Observação
Como em todas as operações de restauração point-in-time, não é permitido recuperar a uma marca quando o banco de dados estiver passando por operações com log de operações em massa.
Para restaurar a uma transação marcada
Restaurar um banco de dados para uma transação marcada (SQL Server Management Studio)
Preparando os backups de log
Para este exemplo, uma estratégia de backup apropriada para estes 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.
Os backups dos bancos de dados podem ser feitos consecutivamente ou simultaneamente.
Antes de fazer o backup do log de transações, marque uma transação que execute em todos os bancos de dados. Para obter informações sobre como criar as transações marcadas, veja Usar transações marcadas para recuperar bancos de dados relacionados de forma consistente (Modelo de recuperação completa).
Faça o backup do log de transações em cada banco de dados.
Recuperando um banco de dados a uma transação marcada
Para restaurar o backup
Crie backups da parte final do log dos bancos de dados não danificados, se possível.
Restaure o backup completo mais recente de cada banco de dados.
Identifique a transação marcada mais recente disponível em todos os backups de log de transações. Essa informação é armazenada na tabela logmarkhistory no banco 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.
Conteúdo relacionado
- INICIAR TRANSAÇÃO (Transact-SQL)
- RESTORE Instruções (Transact-SQL)
- Aplicar backups do log de transações (SQL Server)
- Usar transações marcadas para recuperar bancos de dados relacionados de forma consistente
- Visão geral de restauração e recuperação (SQL Server)
- Restaurar um banco de dados do SQL Server até um ponto determinado (modelo de recuperação completa)
- Planejar e realizar sequências de restauração (modelo de recuperação completa)