Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Maneiras de recuperar dados do arquivo de log de transações do SQL Server


Resumo: Muitas vezes o administrador de banco de dados SQL procura maneiras de recuperar dados de logs de transações do SQL Server, o usuário pode ler este artigo para realizar essa tarefa. Demos a melhor maneira possível e também a maneira mais fácil de restaurar dados do arquivo (.ldf). Caso você esteja enfrentando problemas de corrupção de banco de dados e queira recuperar objetos de banco de dados, tente isto Recuperar banco de dados SQL Programas. Para mais informações, o usuário pode ler este artigo.

Há momentos em que os clientes enfrentam circunstâncias de banco de dados lamentáveis ​​em seus bancos de dados SQL Server. As situações podem ocorrer durante a administração e suporte de seus arquivos de banco de dados. Às vezes, os objetos do banco de dados são excluídos involuntariamente, por isso os administradores do banco de dados enfrentam vários problemas. Posteriormente, para retornar ao processo de trabalho normal, os arquivos devem ser recuperados de volta ao banco de dados SQL Server.

O log de transações do SQL Server desempenha um trabalho significativo na recuperação de dados excluídos no caso de você executar erroneamente a operação DELETE ou UPDATE com uma condição inadequada ou sem condição de filtragem. Isso pode ser feito ouvindo os registros armazenados nessa caixa preta conhecida como arquivo de log de transações do SQL Server.

Como recuperar dados do arquivo de log de transações do SQL Server


Para analisar as várias técnicas que podemos usar para recuperar dados do arquivo SQL Server Transaction Log, criaremos outro banco de dados com uma única tabela, utilizando o script abaixo:



Após criar o banco de dados e a tabela, preencheremos essa tabela com 30 registros, utilizando a instrução INSERT INTO T-SQL abaixo:



Não tendo nenhum backup obtido do banco de dados ainda, como podemos recuperar os dados da tabela se o comando UPDATE abaixo for executado sobre essa tabela sem a instrução none usada para filtrar os dados a serem alterados?



Utilizando métodos integrados



1.) fn_dblog: O conteúdo do log de transações do SQL Server pode ser lido online utilizando várias funções implícitas. A primeira função que tentaremos usar para recuperar os dados perdidos é o fn_dblog . É uma função de valor de tabela de estrutura não documentada, usada para fazer um mergulho no log de transações do SQL Server e visualizar o conteúdo do segmento dinâmico desse arquivo.

Para utilizar o fn_dblog() função, você deve fornecer dois parâmetros, o LSN inicial e o LSN final do log. Para visualizar todos os logs acessíveis no segmento dinâmico do arquivo SQL Transaction Log, você pode passar o valor NULL para esses dois parâmetros. Como o resultado do trabalho fn_dblog() contém 129 colunas, é melhor escolher apenas os segmentos que contêm os dados que você deseja e filtrar o resultado para mostrar apenas a operação que você pretende recuperar. Por exemplo, a operação LOP_INSERT_ROWS é registrada quando outro registro é incorporado, a operação LOP_DELETE_ROWS é registrada quando um novo registro é excluído e a operação LOP_MODIFY_ROW é registrada quando um registro atual é atualizado. O script abaixo pode ser utilizado para verificar as instruções de atualização que são executadas nesse banco de dados:



2.) fn_dump_dblog(): A estrutura subsequente funcionou na função, fn_dump_dblog(), tem uma vantagem sobre o trabalho fn_dblog() é que ele pode muito bem ser utilizado para ler o backup do log de transações do SQL Server, apesar da capacidade de ler o arquivo de log de transações online. Então, novamente, para utilizar a função fn_dump_dblog(), você deve fornecer 68 parâmetros obrigatórios, conforme mostrado no script abaixo:



3.) Comando da página DBCC: O SQL Server nos fornece inúmeros comandos DBCC que podem ser utilizados para executar os vários tipos de tarefas administrativas do SQL Server. Um desses comandos não documentados é o comando DBCC Page, que pode ser usado para ler o conteúdo dos dados do banco de dados e registrar arquivos online. Para ver o conteúdo do arquivo de log do banco de dados, você deve fornecer o nome do banco de dados e o ID do arquivo de log de transações. O ID do arquivo de log de transações pode ser recuperado da consulta abaixo.






Limitações dos métodos manuais para recuperar dados do log de transações do SQL Server

  1. Difícil de executar.
  2. Requer forte conhecimento técnico.
  3. Alto risco de perda de dados.

Solução especializada para Recuperar dados do arquivo de log de transações do SQL Server


No momento em que um banco de dados é corrompido ou os dados da tabela são perdidos ou alterados erroneamente, o longo tempo necessário para recriar e analisar os dados utilizando as estratégias implícitas pode não ser adequado. Nessa linha, precisamos buscar no mercado de administração do SQL Server uma ferramenta que possa ser utilizada de forma efetiva e imediata para ler o conteúdo do arquivo de log de transações e mostrar esse conteúdo em um formato fácil de usar.

Leitor de arquivo de log SQL do SysTools ferramenta, que pode ser facilmente usada para ler o conteúdo do arquivo de log de transações SQL online. Ao usar este software, o usuário pode facilmente ler e analisar os arquivos de log transacional do SQL Server INSERT / UPDATE / DELETE operações. Este aplicativo profissional de nível empresarial pode funcionar em ambientes de banco de dados offline e online. Além disso, este aplicativo oferece a opção de filtros dinâmicos para exportar um arquivo de log transacional seletivo. Este software suporta a versão SQL Server 2019.



Etapas para recuperar dados do log de transações do SQL Server
  1. Faça o download e instale o SQL Log Analyzer.



2. Agora selecione a opção de banco de dados



3. Visualize os dados do arquivo de log transacional do SQL Server.



4. Clique no botão Exportar para exportar os dados do arquivo de log.


Conclusão


Apesar do fato de que a técnica manual pode recuperar itens excluídos de tabelas SQL, não é uma opção prescrita para clientes devido à sua complexidade e tédio. Em vez disso, é recomendável usar uma solução ideal para recuperar dados do arquivo de log de transações do SQL Server.