Ripristinare dati in Sql Server dopo aver eseguito un operazione di UPDATE o DELETE è l’incubo peggiore di un amministratore di database SQL. Non è raro che qualcuno esegua in modo improprio o addirittura dimentichi una clausola WHERE durante l’esecuzione di query di cancellazione o aggiornamento dati, causando la compromissione di centinaia di migliaia di righe di dati compromessi.
Quindi, quali opzioni di recupero dati di SQL Server sono disponibili?
Sommario
Ripristinare dati in Sql Server da backup
Se si dispone di un backup creato in precedenza che contiene i valori della tabella originale, è possibile ripristinare facilmente i dati. Le soluzioni più comuni sono:
- Ripristinare il backup del database e utilizzarlo al posto del database originale
Nel caso in cui si siano verificate altre modifiche dopo l’aggiornamento o non sia possibile consentire la modalità offline del database:
- Ripristinare un backup del database in un server di prova
- Nel caso in cui si siano verificate altre modifiche dopo l’aggiornamento o non sia possibile consentire la modalità offline del database:
- Ripristinare il backup sullo stesso server del database originale utilizzando un nome di database diverso
- Individuare le righe pertinenti nel database ripristinato
- Aggiornare le righe interrotte utilizzando le righe originali dal database ripristinato
Purtroppo, raramente è lo scenario di recupero così “pulito e pulito” per consentire una soluzione così semplice. Ma se sei fortunato puoi utilizzare questa soluzione
Più probabilmente:
- Gli errori non sono stati rilevati abbastanza presto
- Sono state apportate modifiche successive ai dati tra l’ultima creazione del backup del database e l’esecuzione della query che complica significativamente il ripristino
- Afflusso di nuovi dati
- I backup del database non sono stati eseguiti abbastanza regolarmente, o affatto
Tuttavia, se non si dispone di un backup completo del database, è comunque possibile eseguire il rollback degli upDATE utilizzando le informazioni sulle transazioni archiviate nel registro delle transazioni online del database
Il log delle transazioni mantiene le informazioni sulle transazioni effettuate nel database. Se non è stato ridotto o troncato, è possibile utilizzare ApexSQL Log o ApexSQL Recover per ripristinare dati in Sql Server 2019.
Ripristinare dati in Sql Server con ApexSQL Log
Sia ApexSQL Log che ApexSQL Recover sono strumenti che possono estrarre i file di registro delle transazioni del database ed eseguire il rollback degli UPDATE accidentali. Pertanto, anziché aggiornare tutti i dati nella tabella, è possibile eseguire il rollback dell’istruzione UPDATE e quindi aggiornare solo i dati che soddisfano determinati criteri.
In questo modo possiamo ripristinare dati in sql server che abbiamo cancellato per errore.
Procedura recupero dati mediante ApexSQL Log – Configurazione
Avviare lo strumento e connettersi al database
Nel passaggio Selezione origini dati della procedura guidata aggiungere i backup del log delle transazioni e i log delle transazioni scollegati che si desidera leggere. Si noti che devono formare una catena completa per fornire un controllo corretto. L’aggiunta di un backup del database consente di migliorare le prestazioni e la qualità dei dati dell’audit trail
Nel passaggio successivo della procedura guidata, scegliere l’opzione Apri risultati nella griglia.
Utilizzare le opzioni di impostazione del filtro per restringere il set di risultati utilizzando il tempo, il tipo di operazione, il nome della tabella, l’utente e altre opzioni di filtro.
Nella scheda Operazioni, selezionare Operazione di aggiornamento e assicurarsi che tutte le altre operazioni DML e DDL siano deselezionate
Selezionare le tabelle in cui i dati sono stati aggiornati nel passaggio Opzioni di impostazione filtro, Filtro tabelle
Dopo aver impostato tutte le opzioni, fare clic su Fine
Procedura ripristino dati
Dopo aver impostato tutte le configurazioni necessarie le transazioni verranno elencate nella griglia principale dell’applicazione. È comunque possibile utilizzare il filtro nel riquadro sinistro per eliminare inoltre le transazioni non necessarie.
Per eseguire il recupero dei dati, archiviare le transazioni di cui si desidera eseguire il rollback e fare clic su Annulla nella scheda Azioni.
Per eseguire lo script dall’editor, fare clic sul pulsante Esegui o premere F5 e i dati persi verranno ripristinati nel database.
Conclusione
Abbiamo visto come ripristinare dati in Sql Server con ApexSql Log.
Ti consiglio di fare diversi test e prove prima di utilizzare il programma su un ambiente di produzione.
Sei hai dubbi scrivimi nei commenti.
- Come installare un tema in WordPress e come personalizzarlo. [5° Parte]
- I plugin da installare su WordPress. Ecco quelli che consigliamo.
- Come creare un router Tor con Raspberry Pi 4
- Xiaomi MIUI 10. Annunciata la nuova interfaccia grafica.
- Come installare proxychain in Kali Linux 2019.4 per navigare anonimi.