Come ripristinare i file di database di Microsoft SQL Server 2022 (MDF, LDF e BAK)

In questo articolo esamineremo come ripristinare i file di database di Microsoft SQL Server 2022. Mostreremo cosa fare se un database o i relativi file vengono eliminati accidentalmente, nonché come utilizzare un backup disponibile per riportare il database a uno stato operativo.

Come ripristinare i file di database di Microsoft SQL Server 2022 (MDF, LDF e BAK)

Per recuperare i file, utilizzeremo Hetman RAID Recovery. Il programma può individuare i file MDF, LDF e BAK su unità fisiche, array RAID e dischi dinamici, nonché lavorare con immagini disco create settore per settore. I file recuperati possono essere successivamente utilizzati per Restore o Attach tramite Microsoft SQL Server.

Hetman RAID Recovery supporta Windows, Linux e macOS.

Per recuperare dati da array RAID guasti, dispositivi NAS e altri sistemi di archiviazione multidisco.
Vai a vedere
Come recuperare un database SQL Server 2022 eliminato? File MDF, LDF e BAK

Come recuperare un database SQL Server 2022 eliminato? File MDF, LDF e BAK

Funzionalità di SQL Server

Quali file utilizza Microsoft SQL Server e perché sono importanti durante il ripristino:

  • MDF – il file dati principale del database. Contiene la struttura del database, le tabelle, i record, gli indici e altri oggetti. Questo file è la principale origine dei dati quando è necessario ripristinare in SQL Server un database eliminato.
  • LDF – il file di log delle transazioni. SQL Server vi registra le modifiche al database. Il log viene utilizzato per mantenere la coerenza dei dati ed è un componente importante quando si esegue l’attach di un database dai relativi file fisici.
  • BAK – il file di backup. Nel nostro test si tratta di un backup completo del database creato da SQL Server. Se un file di questo tipo è disponibile e non è danneggiato, può essere utilizzato per Restore senza dover eseguire l’attach dei file MDF e LDF originali.

Pertanto, lo сценарio di ripristino dipende da quali file sono stati conservati o trovati:

  • Se è disponibile un file BAK, il database viene ripristinato dal backup.
  • Se non è disponibile alcun backup, ma i file MDF e LDF sono stati recuperati, possono essere utilizzati per Attach, a condizione che i file rimangano leggibili e coerenti.
Funzionalità Descrizione
Modello di dati relazionale SQL Server archivia le informazioni in tabelle correlate tra loro tramite chiavi e vincoli.
Linguaggio di query T-SQL Estensione di SQL utilizzata per creare query, gestire i dati, scrivere procedure ed eseguire operazioni amministrative.
File di database MDF e NDF MDF è il file dati principale del database, mentre NDF è un file dati aggiuntivo. Contengono tabelle, indici e altri oggetti del database.
File di log delle transazioni LDF Archivia i record delle transazioni e delle modifiche nel database. Il log viene utilizzato per il ripristino dopo un arresto anomalo e per la coerenza dei dati.
Backup e ripristino SQL Server supporta backup completi, differenziali e del log delle transazioni, consentendo di ripristinare un database a un punto temporale richiesto con la configurazione appropriata.
Transazioni e ACID Garantiscono atomicità, coerenza, isolamento e durabilità delle operazioni sui dati.
Indici Accelerano le ricerche e l’esecuzione delle query, ma possono danneggiarsi o richiedere la ricostruzione dopo determinati guasti.
Meccanismi di controllo dell’integrità Chiavi primarie e esterne, vincoli e controlli aiutano a mantenere la correttezza dei dati.
Modelli di ripristino I modelli di ripristino Simple, Full e Bulk-logged determinano le funzionalità di backup del log delle transazioni e le opzioni di ripristino del database.
Strumenti diagnostici Il comando DBCC CHECKDB verifica l’integrità logica e fisica di un database e aiuta a individuare i danneggiamenti.

Per i test, abbiamo preparato Windows Server 2022 con Microsoft SQL Server 2022. Il database TestDB si trova su un Dynamic Spanned Volume con file system NTFS. Contiene tabelle, record di test dei clienti e file archiviati nel campo VARBINARY(MAX). Il file MDF è archiviato nella directory SQLData, il file di log LDF si trova in SQLLogs, e il backup completo TestDB_Full.bak si trova nella directory SQLBackup.

Come accedere ai dischi del server

METODO 1. Collegamento delle unità a una workstation

Se i file di SQL Server sono archiviati su un disco fisico separato, questo può essere collegato a una workstation tramite un adattatore SATA, un adattatore USB o una docking station.

Se il database era archiviato su un Dynamic Spanned Volume o su un’altra configurazione multիդisco, è preferibile avere accesso a tutte le unità che ne facevano parte.

Se non è possibile collegare tutti i dischi contemporaneamente, è possibile crearne immagini settore per settore. Per farlo in Hetman RAID Recovery, selezionare l’unità fisica, avviare Save disk, specificare la posizione di salvataggio e attendere il completamento del processo di copia.

Hetman RAID Recovery: creazione di un'immagine di un'unità fisica

Dopodiché, il disco può essere scollegato e si può creare nello stesso modo un’immagine dell’unità successiva. Montare le immagini pronte tramite Mount disk e utilizzarle per l’analisi insieme ai dischi fisici.

Hetman RAID Recovery: montaggio di un'immagine di unità fisica

Questo approccio consente inoltre di continuare a lavorare con le copie senza sottoporre i dischi sorgente a carichi aggiuntivi.

Hetman RAID Recovery: immagine di unità fisica montata

METODO 2. Configurazione dell’accesso SSH

Esiste un altro modo per accedere ai dischi senza rimuoverli fisicamente. Se Windows Server 2022 è ancora in esecuzione e accessibile tramite rete, le unità possono essere collegate a Hetman RAID Recovery da remoto tramite SSH.

Per farlo, configurare in anticipo OpenSSH Server su Windows Server.

Windows Server 2022: installazione di OpenSSH Server

Avviare il servizio OpenSSH SSH Server – sshd – e, se necessario, impostarlo per l’avvio automatico.

Windows Server 2022: avvio del servizio OpenSSH SSH Server
Windows Server 2022: attivazione dell'avvio automatico di OpenSSH SSH Server

Verificare inoltre l’accesso tramite porta TCP 22 e assicurarsi che l’account utilizzato per la connessione disponga delle autorizzazioni necessarie per accedere alle unità del server.

Dopo aver configurato il server, aprire Hetman RAID Recovery. Nel menu superiore, andare su Tools e selezionare Connect via SSH.

Hetman RAID Recovery: Tools - Connect via SSH

Nel campo Remote server, inserire l’indirizzo IP del Windows Server e nel campo Port inserire 22. Sotto, nella sezione Credentials, selezionare il richiesto Authentication method e inserire nome utente e password dell’account. Se necessario, è possibile attivare Save server details e Save authentication data in modo da non dover reinserire questi parametri. Quindi fare clic su Next.

Hetman RAID Recovery: connessione al server remoto

Dopo una connessione riuscita al server, nella finestra successiva verranno visualizzati i dischi fisici e gli array logici disponibili. Selezionare le unità appartenenti al JBOD richiesto e continuare.

Hetman RAID Recovery: connessione al server remoto

Dopo la conferma, verranno visualizzati nella finestra principale di Hetman RAID Recovery, dove sarà possibile lavorarci allo stesso modo delle unità collegate localmente.

Prestare attenzione all’infrastruttura di rete. Poiché le operazioni con le unità vengono eseguite tramite rete, per una connessione stabile e confortevole è preferibile che la workstation, Windows Server e la rete locale supportino velocità di trasferimento dati pari a 1 Gbps e superiori. Ciò contribuirà ad accelerare l’analisi delle unità e il trasferimento dei file recuperati.

Questo metodo è particolarmente comodo se il server è ancora in esecuzione e la rimozione fisica e il collegamento di un gran numero di unità a un altro computer sono indesiderati o difficili.

Come recuperare un database Microsoft SQL Server 2022 eliminato

METODO 1. Ripristino di un database da un file BAK

Passiamo al primo scenario. In questo caso, il file di backup completo TestDB_Full.bak è disponibile dopo il recupero e può essere utilizzato per ripristinare il database.

Aprire Microsoft SQL Server Management Studio e connettersi all’istanza di SQL Server richiesta.

Windows Server 2022: connessione all'istanza di SQL Server richiesta

Nell’albero di Object Explorer, aprire il menu contestuale di Databases e selezionare Restore Database.

Windows Server 2022: Databases - Restore Database

Come origine, selezionare Device, specificare il file TestDB_Full.bak e verificare che SQL Server abbia identificato correttamente il backup.

Windows Server 2022: Device - TestDB_Full.bak

Per evitare di modificare il database originale TestDB, ripristinarlo con un nome separato, TestDB_Restored.

Windows Server 2022: rinomina del database in TestDB_Restored

Nelle impostazioni di ripristino, specificare nomi e percorsi separati per i file fisici del database in modo che non confliggano con i file del database originale TestDB. Per la nuova istanza, utilizzare TestDB_Restored.mdf e TestDB_Restored_log.ldf.

Windows Server 2022: TestDB_Restored.mdf e TestDB_Restored_log.ldf

Avviare Restore e attendere il completamento dell’operazione. Dopo un ripristino riuscito, il database TestDB_Restored appare in Object Explorer.

Windows Server 2022: Object Explorer - TestDB_Restored

Aprirlo e verificare le tabelle e i record. Assicurarsi inoltre che i dati archiviati nel campo VARBINARY(MAX) siano disponibili. In questo modo verifichiamo non solo la creazione del database, ma anche la disponibilità dei suoi contenuti dopo il ripristino dal file BAK.

Windows Server 2022: verifica delle tabelle e dei record in TestDB_Restored

METODO 2. Ripristino di un database eliminato

Nel caso successivo, il database TestDB_Restored è stato eliminato accidentalmente e non viene più visualizzato in Microsoft SQL Server Management Studio. Anche i relativi file fisici TestDB_Restored.mdf e TestDB_Restored_log.ldf non sono più disponibili.

Il Dynamic Spanned Volume rimane comunque accessibile, quindi non è necessario ricostruire nuovamente il JBOD.

Windows Server 2022: TestDB_Restored non è visualizzato in Microsoft SQL Server

Aprire Hetman RAID Recovery, selezionare il volume logico NTFS in cui erano archiviati i file di SQL Server e avviare una Fast scan.

Hetman RAID Recovery: Fast scan

Al termine dell’analisi, andare nelle directory in cui erano archiviati i file MDF e LDF e controllare i risultati. Trovare i file eliminati TestDB_Restored.mdf e TestDB_Restored_log.ldf, e annotarne nome, dimensione e posizione.

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

Se la Fast scan non trova i file richiesti o il risultato è incompleto, tornare alla selezione della modalità di analisi e avviare la Full scan. Esegue un’analisi più approfondita di NTFS e può trovare più dati eliminati.

Dopo aver trovato i file MDF e LDF richiesti, aggiungerli all’elenco di recupero e salvarli su un’altra unità fisica.

Hetman RAID Recovery: salvataggio del file recuperato TestDB_Restored_log.ldf

Non è consigliabile recuperare i file sul volume dinamico spanned originale, poiché nuove scritture potrebbero sovrascrivere altri dati che potrebbero ancora essere recuperati.

Dopo aver recuperato i file fisici, tornare a Microsoft SQL Server Management Studio. Nel menu contestuale di Databases, selezionare Attach.

Windows Server 2022: Databases - Attach

Aggiungere il file TestDB_Restored.mdf recuperato e verificare che SQL Server rilevi il file di log associato TestDB_Restored_log.ldf.

Windows Server 2022: aggiunta del file recuperato TestDB_Restored.mdf

Se entrambi i file rimangono leggibili e coerenti, eseguire Attach. Dopo l’attach, il database appare nuovamente nell’elenco di SQL Server.

Windows Server 2022: SQL Server rileva il file di log associato TestDB_Restored_log.ldf

Aprire le tabelle e verificare i record. Inoltre, controllare la disponibilità dei dati VARBINARY(MAX) utilizzati nel database di test. Se la struttura, i record e i file archiviati sono disponibili, il recupero può essere considerato riuscito.

Windows Server 2022: apertura delle tabelle e verifica dei record

Conclusione

Abbiamo esaminato due scenari principali per lavorare con i file di database di Microsoft SQL Server 2022:

  • Nel primo caso, il file di backup BAK disponibile è stato utilizzato per ripristinare il database con Restore.
  • Nel secondo caso, dopo l’eliminazione del database, i relativi file fisici MDF e LDF sono stati trovati e recuperati con Hetman RAID Recovery, dopodiché sono stati riattaccati a SQL Server tramite Attach.

Hetman RAID Recovery consente di lavorare con unità fisiche, immagini settore per settore e dischi remoti tramite SSH, e supporta anche Windows, Linux e macOS. Ciò rende possibile organizzare il recupero anche quando i file di SQL Server sono archiviati su configurazioni multидisco o quando le unità del server sono difficili da rimuovere e collegare a un altro computer.

Anton Kryvoruchko

Autore: , Scrittore tecnico

Anton Kryvoruchko è traduttore dall'italiano, dall'inglese, dal francese e dal polacco. Ha molti anni di esperienza e lavora con testi di vario argomento: dalla narrativa e testi tecnici alle riviste scientifiche popolari. Lavora costantemente per migliorare le sue conoscenze e competenze, perciò nel tempo libero impara anche il tedesco e lo spagnolo.

Mykhailo Miroshnichenko

Editore: , Scrittore tecnico

Mykhaylo Miroshnychenko è uno dei programmatori principali di Hetman Software. Avendo già quindici anni di esperienza nello sviluppo di software condivide le sue conoscenze con i lettori del nostro blog. Oltre alla programmazione, Mykhaylo è anche un esperto di recupero di dati, di file system, di dispositivi di archiviazione e di array RAID.