Como restaurar arquivos de banco de dados do Microsoft SQL Server 2022 (MDF, LDF e BAK)

Neste artigo, examinaremos como recuperar arquivos de banco de dados do Microsoft SQL Server 2022. Mostraremos o que fazer se um banco de dados ou seus arquivos forem excluídos acidentalmente, bem como como usar um backup disponível para restaurar o banco de dados a um estado funcional.

Como restaurar arquivos de banco de dados do Microsoft SQL Server 2022 (MDF, LDF e BAK)

Para recuperar os arquivos, usaremos o Hetman RAID Recovery. O programa pode localizar arquivos MDF, LDF e BAK em unidades físicas, matrizes RAID e discos dinâmicos, além de trabalhar com imagens de disco setor por setor. Os arquivos recuperados podem posteriormente ser usados para Restore ou Attach por meio do Microsoft SQL Server.

O Hetman RAID Recovery é compatível com Windows, Linux e macOS.

Para recuperar dados de matrizes RAID com falha, dispositivos NAS e outros sistemas de armazenamento com vários discos.
Vá para ver
How to Recover a Deleted SQL Server 2022 Database | MDF, LDF & BAK

How to Recover a Deleted SQL Server 2022 Database | MDF, LDF & BAK

Recursos do SQL Server

Quais arquivos o Microsoft SQL Server usa e por que eles são importantes durante a recuperação:

  • MDF – o arquivo principal do banco de dados. Ele contém a estrutura do banco de dados, tabelas, registros, índices e outros objetos. Este arquivo é a principal fonte de dados quando é necessário restaurar um banco de dados excluído no SQL Server.
  • LDF – o arquivo de log de transações. O SQL Server registra nele as alterações do banco de dados. O log é usado para manter a consistência dos dados e é um componente importante ao anexar um banco de dados a partir de seus arquivos físicos.
  • BAK – o arquivo de backup. Em nosso teste, este é um backup completo do banco de dados criado pelo SQL Server. Se esse arquivo estiver disponível e não estiver danificado, ele poderá ser usado para Restore sem a necessidade de anexar os arquivos MDF e LDF originais.

Portanto, o cenário de recuperação depende de quais arquivos foram preservados ou localizados:

  • Se um arquivo BAK estiver disponível, o banco de dados será restaurado a partir do backup.
  • Se não houver backup, mas os arquivos MDF e LDF tiverem sido recuperados, eles poderão ser usados para Attach, desde que os arquivos permaneçam legíveis e consistentes.
Funcionalidade Descrição
Modelo relacional de dados O SQL Server armazena informações em tabelas relacionadas entre si por meio de chaves e restrições.
Linguagem de consulta T-SQL Uma extensão do SQL usada para criar consultas, gerenciar dados, escrever procedimentos e executar operações administrativas.
Arquivos de banco de dados MDF e NDF MDF é o arquivo principal de dados do banco de dados, e NDF é um arquivo adicional de dados. Eles contêm tabelas, índices e outros objetos do banco de dados.
Arquivo de log de transações LDF Armazena registros de transações e alterações no banco de dados. O log é usado para recuperação de falhas e consistência dos dados.
Backup e restauração O SQL Server oferece suporte a backups completos, diferenciais e de log de transações, o que possibilita restaurar um banco de dados a um ponto específico no tempo com a configuração adequada.
Transações e ACID Garantem atomicidade, consistência, isolamento e durabilidade das operações de dados.
Índices Aceleram as pesquisas e a execução de consultas, mas podem ser corrompidos ou exigir reconstrução após determinadas falhas.
Mecanismos de controle de integridade Chaves primárias e estrangeiras, restrições e verificações ajudam a manter a correção dos dados.
Modelos de recuperação Os modelos de recuperação Simples, Completo e Bulk-logged determinam os recursos de backup do log de transações e as opções de recuperação do banco de dados.
Ferramentas de diagnóstico O comando DBCC CHECKDB verifica a integridade lógica e física de um banco de dados e ajuda a identificar corrupção.

Para os testes, preparamos o Windows Server 2022 com o Microsoft SQL Server 2022. O banco de dados TestDB está localizado em um Dynamic Spanned Volume com o sistema de arquivos NTFS. Ele contém tabelas, registros de clientes de teste e arquivos armazenados no campo VARBINARY(MAX). O arquivo MDF está armazenado no diretório SQLData, o arquivo de log LDF está em SQLLogs, e o backup completo TestDB_Full.bak está no diretório SQLBackup.

Como acessar os discos do servidor

MÉTODO 1. Conectar as unidades a uma estação de trabalho

Se os arquivos do SQL Server estiverem armazenados em um disco físico separado, ele poderá ser conectado a uma estação de trabalho por meio de um adaptador SATA, adaptador USB ou de uma estação dock.

Se o banco de dados estiver armazenado em um Dynamic Spanned Volume ou em outra configuração com vários discos, é preferível ter acesso a todas as unidades que faziam parte dele.

Se não for possível conectar todos os discos ao mesmo tempo, você pode criar imagens setor por setor deles. Para isso, no Hetman RAID Recovery, selecione a unidade física, inicie Salvar disco, especifique o local de salvamento e aguarde a conclusão do processo de cópia.

Hetman RAID Recovery: criando uma imagem de uma unidade física

Depois disso, o disco pode ser desconectado e uma imagem da próxima unidade pode ser criada da mesma forma. Monte as imagens prontas por meio de Montar disco e use-as para análise juntamente com os discos físicos.

Hetman RAID Recovery: montando uma imagem de uma unidade física

Essa abordagem também permite continuar trabalhando com cópias sem impor carga adicional às unidades de origem.

Hetman RAID Recovery: imagem de unidade física montada

MÉTODO 2. Configurar o acesso SSH

Há outra maneira de acessar as unidades sem removê-las fisicamente. Se o Windows Server 2022 ainda estiver em execução e acessível pela rede, as unidades poderão ser conectadas ao Hetman RAID Recovery remotamente via SSH.

Para isso, configure antecipadamente o OpenSSH Server no Windows Server.

Windows Server 2022: instalando o OpenSSH Server

Inicie o serviço OpenSSH SSH Server – sshd – e, se necessário, configure-o para iniciar automaticamente.

Windows Server 2022: iniciando o serviço OpenSSH SSH Server
Windows Server 2022: habilitando a inicialização automática do OpenSSH SSH Server

Verifique também o acesso pela porta TCP 22 e certifique-se de que a conta usada para a conexão tenha as permissões necessárias para acessar as unidades do servidor.

Após configurar o servidor, abra o Hetman RAID Recovery. No menu superior, vá para Ferramentas e selecione Conectar via SSH.

Hetman RAID Recovery: Ferramentas - Conectar via SSH

No campo Servidor remoto, informe o endereço IP do Windows Server e, no campo Porta, informe 22. Abaixo, na seção Credenciais, selecione o método de autenticação necessário e informe o nome de usuário e a senha da conta. Se necessário, você pode ativar Salvar detalhes do servidor e Salvar dados de autenticação para não precisar inserir esses parâmetros novamente. Em seguida, clique em Avançar.

Hetman RAID Recovery: conectando-se ao servidor remoto

Após uma conexão bem-sucedida com o servidor, a próxima janela exibirá os discos físicos e matrizes lógicas disponíveis. Selecione as unidades que pertencem ao JBOD necessário e continue.

Hetman RAID Recovery: conectando-se ao servidor remoto

Após a confirmação, elas aparecerão na janela principal do Hetman RAID Recovery, onde poderão ser utilizadas da mesma forma que unidades conectadas localmente.

Preste atenção ao equipamento de rede. Como as operações com as unidades são realizadas pela rede, para uma conexão estável e confortável é preferível que a estação de trabalho, o Windows Server e a rede local suportem velocidades de transferência de dados de 1 Gbps ou superiores. Isso ajudará a acelerar a análise da unidade e a transferência dos arquivos recuperados.

Este método é especialmente conveniente se o servidor ainda estiver em execução e a remoção física e a conexão de um grande número de unidades a outro computador forem indesejáveis ou difíceis.

Como recuperar um banco de dados excluído do SQL Server 2022

MÉTODO 1. Restaurando um banco de dados a partir de um arquivo BAK

Vamos passar para o primeiro cenário. Nesse caso, o arquivo de backup completo TestDB_Full.bak está disponível após a recuperação e pode ser usado para restaurar o banco de dados.

Abra o Microsoft SQL Server Management Studio e conecte-se à instância necessária do SQL Server.

Windows Server 2022: conectando-se à instância necessária do SQL Server

Na árvore do Object Explorer, abra o menu de contexto de Databases e selecione Restore Database.

Windows Server 2022: Databases - Restore Database

Como origem, selecione Device, especifique o arquivo TestDB_Full.bak e verifique se o SQL Server identificou corretamente o backup.

Windows Server 2022: Device - TestDB_Full.bak

Para evitar alterar o banco de dados original TestDB, restaure-o com um nome separado, TestDB_Restored.

Windows Server 2022: renomeando o banco de dados para TestDB_Restored

Nas configurações de restauração, especifique nomes e caminhos separados para os arquivos físicos do banco de dados, para que não entrem em conflito com os arquivos do TestDB original. Para a nova instância, use TestDB_Restored.mdf e TestDB_Restored_log.ldf.

Windows Server 2022: TestDB_Restored.mdf e TestDB_Restored_log.ldf

Inicie o Restore e aguarde a conclusão da operação. Após uma restauração bem-sucedida, o banco de dados TestDB_Restored aparece no Object Explorer.

Windows Server 2022: Object Explorer - TestDB_Restored

Abra-o e verifique as tabelas e os registros. Certifique-se também de que os dados armazenados no campo VARBINARY(MAX) estejam disponíveis. Dessa forma, verificamos não apenas a criação do banco de dados, mas também a disponibilidade do seu conteúdo após a restauração a partir do arquivo BAK.

Windows Server 2022: verificando tabelas e registros em TestDB_Restored

MÉTODO 2. Restaurando um banco de dados excluído

No caso seguinte, o banco de dados TestDB_Restored foi excluído acidentalmente e não é mais exibido no Microsoft SQL Server Management Studio. Seus arquivos físicos TestDB_Restored.mdf e TestDB_Restored_log.ldf também ficaram indisponíveis.

O próprio Dynamic Spanned Volume permanece acessível, portanto não é necessário reconstruir o JBOD novamente.

Windows Server 2022: TestDB_Restored não é exibido no Microsoft SQL Server

Abra o Hetman RAID Recovery, selecione o volume lógico NTFS onde os arquivos do SQL Server estavam localizados e inicie uma Varredura rápida.

Hetman RAID Recovery: varredura rápida

Após a conclusão da análise, vá até os diretórios onde os arquivos MDF e LDF estavam armazenados e verifique os resultados. Localize os arquivos excluídos TestDB_Restored.mdf e TestDB_Restored_log.ldf, e observe seus nomes, tamanho e localização.

Hetman RAID Recovery: TestDB_Restored.mdf
Hetman RAID Recovery: TestDB_Restored_log.ldf

Se a Varredura rápida não encontrar os arquivos necessários ou se o resultado estiver incompleto, volte à seleção do modo de análise e inicie a Varredura completa. Ela realiza uma análise mais profunda do NTFS e pode encontrar mais dados excluídos.

Depois que os arquivos MDF e LDF necessários forem encontrados, adicione-os à lista de recuperação e salve-os em outro disco físico.

Hetman RAID Recovery: salvando o TestDB_Restored_log.ldf recuperado

Não é recomendável recuperar os arquivos de volta para o Dynamic Spanned Volume original, pois novas gravações podem sobrescrever outros dados que ainda poderiam ser recuperados.

Após recuperar os arquivos físicos, volte ao Microsoft SQL Server Management Studio. No menu de contexto de Databases, selecione Attach.

Windows Server 2022: Databases - Attach

Adicione o TestDB_Restored.mdf recuperado e verifique se o SQL Server reconhece o arquivo de log associado TestDB_Restored_log.ldf.

Windows Server 2022: adicionando o TestDB_Restored.mdf recuperado

Se ambos os arquivos permanecerem legíveis e consistentes, execute o Attach. Após o anexo, o banco de dados aparece novamente na lista do SQL Server.

Windows Server 2022: o SQL Server reconhece o arquivo de log associado TestDB_Restored_log.ldf

Abra as tabelas e verifique os registros. Além disso, verifique a disponibilidade dos dados VARBINARY(MAX) usados no banco de dados de teste. Se a estrutura, os registros e os arquivos armazenados estiverem disponíveis, a recuperação pode ser considerada bem-sucedida.

Windows Server 2022: abrindo tabelas e verificando registros

Conclusão

Analisamos dois cenários principais para trabalhar com arquivos de banco de dados do Microsoft SQL Server 2022:

  • No primeiro caso, o arquivo de backup BAK disponível foi usado para restaurar o banco de dados com Restore.
  • No segundo caso, após a exclusão do banco de dados, seus arquivos físicos MDF e LDF foram encontrados e recuperados usando o Hetman RAID Recovery, após o que foram anexados novamente ao SQL Server via Attach.

Hetman RAID Recovery permite trabalhar com unidades físicas, imagens setor por setor e discos remotos via SSH, além de oferecer suporte ao Windows, Linux e macOS. Isso possibilita organizar a recuperação mesmo quando os arquivos do SQL Server estão armazenados em configurações com vários discos ou quando é inconveniente remover as unidades do servidor e conectá-las a outro computador.

Raidel Becerra

Autor: , Escritor técnico

Raidel Arbelay Becerra é um escritor técnico para a Hetman Software e a voz e rosto do Hetman Software: Canal YouTube de recuperação de dados. Escreve artigos aprofundados, tutoriais e resenhas sobre como funciona o software da empresa com todos os tipos de dispositivos de armazenamento.

Mykhailo Miroshnichenko

Editor: , Escritor técnico

Mykhailo Miroshnychenko é um dos principais programadores da Hetman Software. Com base em quinze anos de experiência em desenvolvimento de software, partilha os seus conhecimentos com os leitores do nosso blogue. Para além da programação, Mikhail é um especialista em recuperação de dados, sistemas de ficheiros, dispositivos de armazenamento e matrizes RAID.

Recomendado para você