Excluir acidentalmente uma tabela no SQL Server pode ser um pesadelo, especialmente quando não há espaço suficiente para fazer uma restauração paralela e mover o objeto/dados ausentes de volta para o banco de dados original. Neste post do blog, discutiremos os passos para recuperar-se de uma situação como essa.
Passo 1: Capturar as Transações
O primeiro passo é executar um backup de log final, também conhecido como backup de log de cauda, para capturar todas as transações até o momento do incidente. Isso garante que nenhum dado seja perdido durante o processo de recuperação.
Passo 2: Restaurar para um Ponto Anterior
Usando o SQL Server Management Studio (SSMS), restaure o banco de dados para um ponto logo antes da exclusão acidental da tabela. O SSMS fornece uma interface fácil de usar para essa tarefa.
Passo 3: Copiar e Gerar o Script dos Dados
Copie os dados para outro banco de dados ou exporte-os para um arquivo CSV. Se você precisar da estrutura da tabela também, gere o script, certificando-se de incluir gatilhos, índices e outros componentes necessários.
Passo 4: Restaurar para o Ponto Mais Recente
Restaure o banco de dados novamente, desta vez para o ponto mais recente possível – o backup de log final feito no Passo 1. Isso garante que você tenha os dados mais recentes disponíveis.
Passo 5: Mover os Dados de Volta
Se necessário, execute o script do objeto para recriar quaisquer objetos adicionais, como gatilhos ou índices. Em seguida, mova os dados copiados de volta para o banco de dados.
A recuperação de tabelas excluídas acidentalmente pode ser mais complicada se vários objetos forem afetados, especialmente em casos em que chaves estrangeiras com exclusões em cascata estão habilitadas. No entanto, o processo geral permanece o mesmo.
É importante observar que o tempo necessário para a recuperação é tipicamente o dobro do tempo se houvesse espaço disponível no servidor ou em outro servidor. Portanto, é aconselhável considerar esse cenário e incorporá-lo à próxima sessão de prática de recuperação de desastres.
Ao seguir esses passos, você pode recuperar efetivamente tabelas excluídas acidentalmente no SQL Server e minimizar o impacto em seus dados e operações.