Pergunta

O nosso teste DB é subitamente faltando linhas. Queremos que eles de volta.

Existe uma maneira para peneirar tudo o que aconteceu com o banco de dados hoje? Cada instrução SQL? Eu presumo que esse tipo de coisa é no log de transações, mas não sei como para visualizá-lo.

Existe uma maneira de operações Desfazer exclusão?

BTW: Sim, nós temos um backup, mas prefere descobrir a causa da exclusão, bem ...

Foi útil?

Solução

Você pode fazer isso com algumas das ferramentas Red Gate 's, mas custa. Dê uma olhada na Resgate Log SQL .

Caso contrário, eu estaria tentado a fazer uma restauração.

Outras dicas

[resposta final, mas espero que útil]

Há uma maneira de recuperar linhas excluídas usando log transação, mas somente se você usar ferramentas de 3 e só de seu banco de dados está em modo de recuperação total.

Dell (anteriormente procura) tem Toad for SQL Server e ApexSQL tem ApexSQL Log e ApexSQL Recover que também pode ler t-log e recuperação de dados. Infelizmente Resgate Log de Red Gate só pode ler registros em SQL Server 2000.

Há também uma maneira de ler t-log usando o comando log dbcc em situação irregular. Veja mais detalhes aqui .

Considerando que você já tem backups de banco de dados que você pode restaurar esses no banco de dados separado e, em seguida, usar uma das muitas ferramentas de comparação de dados que existem no mercado para inserir dados em falta na base de dados de produção. Claro que isso só pode recuperar dados de exclusão antes de criar uma cópia de segurança.

Você precisa de uma ferramenta de terceiros para fazer isso. A ferramenta tem de ser capaz de ir para os logs de transação e visualizar as entradas de registro para que você possa ver o que aconteceu. Eu não usei qualquer uma dessas ferramentas, mas eu tentaria Resgate Log SQL da Red Gate para começar. Experimentá-lo:

http://www.red-gate.com/products/SQL_Log_Rescue /index.htm

Eu daria ChronicDB uma tentativa que tem uma versão gratuita, em vez de pagar por Red Gate

http://chronicdb.com/blogs/undelete_from_whoops

Você pode desfazer uma transação usando o comando Rollback no SQL Server. Mas, você precisa saber a transação pode ser rolledback se a transação foi realizada dentro da transação Begin.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top