Excluí por engano cerca de 2.000.000 registros de uma tabela remota do SQL Server 2008. O servidor não está me concedendo acesso aos arquivos de backup no lado do servidor.
Existe alguma maneira de recuperar esses registros?
Excluí por engano cerca de 2.000.000 registros de uma tabela remota do SQL Server 2008. O servidor não está me concedendo acesso aos arquivos de backup no lado do servidor.
Existe alguma maneira de recuperar esses registros?
Respostas:
Seu banco de dados está no modo de recuperação completa?
Se sim, você está fazendo backups de log de transações?
Se não (não no modo de recuperação completa), restaure o último backup completo como um banco de dados com um nome diferente. (Não substitua o banco de dados que você já possui.) A partir daí, você poderá restaurar quaisquer registros online no momento do backup, mas perderá todas as alterações desde então.
O SQL Server mantém logs para cada registro excluído. Você pode consultar esses logs através da fn_dblog
função SQL Server.
SELECT [RowLog Contents 0]
FROM sys.fn_dblog(NULL, NULL)
WHERE
AllocUnitName = 'dbo.TableName'
AND Context IN ( 'LCX_MARK_AS_GHOST', 'LCX_HEAP' )
AND Operation in ( 'LOP_DELETE_ROWS' )
;
Mas esse log está no formato hexadecimal e você precisa converter esse formato hexadecimal em seus dados reais.
O artigo abaixo o ajudará a recuperar os registros excluídos da maneira definida acima:
http://raresql.com/2011/10/22/how-to-recover-deleted-data-from-sql-sever/
@user1059637
- Qual sua atitude em relação às pessoas que adicionam funcionalidade ao seu código?
Infelizmente, não poderemos ajudá-lo sem muito mais informações. Mas, com a sua pergunta, vejo que você excluiu o que parece ser 2 milhões de registros do seu banco de dados. Provavelmente você não pode recuperar essas informações, a menos que tenha log completo no banco de dados e adquira algumas ferramentas muito específicas.
Se você pode descrever com mais detalhes exatamente o que acha que fez e por que sente que não pode recuperar os registros e pode descrever a organização do seu banco de dados, podemos ajudá-lo um pouco mais.
Alguns conselhos gerais: se você acha que excluiu 2 milhões de registros, provavelmente está um pouco assustado agora. Portanto, você deve fazer uma pausa de cinco minutos, se acalmar e revisitar o problema. Além disso, você deve informar o seu chefe imediatamente se for razoável (não acorde alguém às duas da manhã para dizer a ele) e que você está trabalhando em uma solução. Melhor admitir o que aconteceu do que tentar freneticamente recuperar-se e potencialmente piorar as coisas e ocultar os detalhes. Saber que seu chefe pode ajudar de alguma forma ajuda a resolver o problema. Como eu disse, apenas alguns conselhos gerais.