go back

home page

Recover SQL data from a dropped table without backups using ApexSQL Recover

Υπάρχουν στιγμές που εκτελούμε ένα DROP TABLE statement σε μια βάση αλλα ούτε γάτα ούτε ζημία καθώς έχουμε ένα full backup και επαναφέρουμε αυτόν τον πίνακα (εντάξει θα έχουμε downtime και όλα τα σχετικά) και πάμε σπίτι μας και κάνουμε γιορτές. Αλλά αυτό μπορεί να μην είναι εφικτό να γίνει είτε επειδή τα αντικείμενα (πίνακες, procedures, views κλπ) και τα δεδομένα της βάσης έχουν αλλάξει μετά την εκτέλεση του DROP statement είτε γιατί δεν έχουμε ένα σωστό backup στα χέρια μας τότε είτε πρέπει να σκάψουμε μέσα στα άδυτα της αρχιτεκτονικής του SQL Server και να είμαστε γνώστες αυτής και ιδιαίτερα του transaction log είτε πάμε σπίτι μας και φυτεύουμε μαρούλια είτε χρησιμοποιούμε κάτι που κάποιος άλλος έχει φτιάξει και σώζουμε την κατάσταση.

Αν θέλουμε να σκάψουμε στο transaction log θα πρέπει να γνωρίζουμε πολλά για αυτό και πως κάθε transaction καταγράφεται σε αυτό. Συγκεκριμένα, κάθε DROP εργασία καταγράφεται στο SQL Server transaction log που σημαίνει ότι κάθε transaction log διατηρεί την πληροφορία που χρειάζεται για να κάνει roll back το transaction και, εφόσον η βάση είναι σε FULL recovery mode, υποστηρίζει point-in-time recovery από DROP εργασίες.

Για αυτό καλό θα είναι να συνηθίζουμε να κάνουμε κάποια πράγματα όχι από το γραφικό περιβάλλον (ναι ναι ξέρω τι θα μου πείτε) και καλό επίσης θα είναι να τα κάνουμε με explicit transaction όπως για παράδειγμα:

BEGIN TRAN
DROP TABLE Customer

και εφόσον είμαστε σίγουροι κάνουμε COMMIT αλλιώς κάνουμε ROLLBACK

Αν όμως κάνουμε commit ή το κάνουμε από το γραφικό περιβάλλον τότε τι γίνεται;

Είτε σκάβουμε στο transaction log είτε χρησιμοποιούμε το ApexSQL Recover

To Apex SQL Recover είναι ένα εργαλείο ανάκτησης για βάσεις δεδομένων του SQL Server που μπορεί να επαναφέρει δεδομένα που έχουν διαγραφεί, έχουν γίνει truncate, corrupt ή έχουν καταστραφεί/αλλοιωθεί.  Ανακτά αντικείμενα και δεδομένα που έχουν χαθεί λόγω DROP εργασιών και επαναφέρει και τα διαγραμμένα και τα online BLOBs σαν αρχεία, καθιστώντας το ιδανικό για περιπτώσεις ανάκτησης SharePoint.

Για να ανακτήσετε διαγεγραμμένα δεδομένα λόγω DROP χωρίς αντίγραφό ασφαλείας

Ανοίξτε το ApexSQL Recover και επιλέξτε Recover lost data due to a DROP TABLE operation

Στο βήμα Select the database to recover καθορίστε το instance του SQL όπου βρίσκεται η βάση για ανάκτηση δεδομένων, χρησιμοποιώντας την λίστα επιλογής, την μέθοδο πρόσβασης για το instance του SQL και το όνομα της βάσης δεδομένων που περιέχει τους διαγεγραμμένους πίνακες στην λίστα επιλογής Database και πατήστε Next.

Στο βήμα Are additional data sources available? Επιλέξτε το No data source is available except for the database currently connected to

Στο βήμα Select a recovery action επιλέξτε το Save the recovery script to a file και επιλέξτε που θέλετε να αποθηκευτεί το T-SQL script που όταν εκτελεστεί θα εισάγει όλα τα χαμένα δεδομένα.

Πατήστε Recover

Και τόσο απλά, θα επαναφέρετε όλα τα χαμένα δεδομένα σας  χωρίς να έχετε ούτε ένα αντίγραφο ασφαλείας.

 

 

Share it:
help from us

newsletter subscription

Εάν επιθυμείτε να λαμβάνετε ενημέρωση από εμάς, δώστε μας το e-mail σας.
PASS chapter logo
Official Professional Association for SQL Server (PASS) chapter for Greece
Join to PASS