Ανακτήστε ένα διεφθαρμένο SQL Server Βάση δεδομένων MDF

Όταν SQL Server Η βάση δεδομένων MDF είναι κατεστραμμένη, μπορείτε να χρησιμοποιήσετε τις παρακάτω μεθόδους για να ανακτήσετε τα δεδομένα σε αυτήν, για να μειώσετε την απώλεια:

Σημείωση: Πριν εκτελέσετε οποιεσδήποτε λειτουργίες ανάκτησης δεδομένων, δημιουργήστε πρώτα αντίγραφα ασφαλείας των κατεστραμμένων αρχείων βάσης δεδομένων MDF & NDF

  1. Πρώτα απ 'όλα, μπορείτε να δοκιμάσετε SQL Server ενσωματωμένη εντολή DBCC CHECKDB για να ανακτήσετε τη βάση δεδομένων σας. Υποθέτοντας ότι το κατεστραμμένο αρχείο βάσης δεδομένων είναι "MyDatabase.mdf", τότε μπορείτε να κάνετε τα εξής για να ανακτήσετε τα δεδομένα μέσα σε αυτό:
    1. Restart SQL Server.
    2. Μην εκτελείτε εργασίες.
    3. In SQL Server Management Studio, εκτελέστε τις ακόλουθες δηλώσεις SQL:
      χρησιμοποιήστε το master δήλωσης @databasename varchar (255) set @ databasename = 'MyDatabase.mdf' exec sp_dboption @databasename, N'single ', N'true' - Ορίστε τη βάση δεδομένων προορισμού σε λειτουργία ενός χρήστη dbcc checkdb (@ databaseasename, REPAIR_ALLOW_DATA_LOSS dbcc checkdb (@ databaseasename, REPAIR_REBUILD) exec sp_dboption @databasename, N'single ', N'false' - Ορισμός της βάσης δεδομένων προορισμού σε λειτουργία πολλαπλών χρηστών
      

      Η ΔΗΛΩΣΗ

      dbcc checkdb (@ όνομα βάσης δεδομένων, REPAIR_ALLOW_DATA_LOSS)
      

      ενδέχεται να προκαλέσει απώλεια ορισμένων δεδομένων στη βάση δεδομένων σας κατά την εκτέλεση της λειτουργίας επισκευής.

      Ενώ η δήλωση

      dbcc checkdb (@ databaseasename, REPAIR_REBUILD)
      

      ΔΕΝ θα προκαλέσει απώλεια δεδομένων κατά τη διάρκεια της επισκευής, αλλά είναι πιο χρονοβόρα.

      Επομένως, εάν δεν είστε επείγον, μπορείτε πρώτα να προσπαθήσετε να εκτελέσετε τη δεύτερη δήλωση dbcc checkdb μόνο, εάν αυτή η δήλωση δεν μπορεί να βοηθήσει στην ανάκτηση της βάσης δεδομένων, τότε μπορείτε να εκτελέσετε την πρώτη και τη δεύτερη εντολή dbcc checkdb.

      Μετά τη λειτουργία επισκευής, μπορείτε να καλέσετε

      dbcc checkdb («MyDatabase.mdf»)
      

      πάλι για να δούμε αν η βάση δεδομένων είναι σταθερή ή όχι.

      Αναλυτικότερες πληροφορίες σχετικά με την εντολή dbcc checkdb μπορείτε να βρείτε στη διεύθυνση https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Εάν μετά τη χρήση της μεθόδου 1, το dbcc checkdb εξακολουθεί να αναφέρει σφάλματα σε ορισμένους πίνακες, μπορείτε να το δοκιμάσετε SQL Server ενσωματωμένη εντολή DBCC CHECKTABLE για ανάκτηση αυτών των πινάκων στη βάση δεδομένων σας. Υποθέτοντας ότι το κατεστραμμένο αρχείο βάσης δεδομένων είναι "MyDatabase.mdf" και ο πίνακας που θέλετε να επιδιορθώσετε είναι "MyTable", τότε μπορείτε να κάνετε τα εξής για να το επιδιορθώσετε:
    1. Restart SQL Server.
    2. Μην εκτελείτε εργασίες.
    3. In SQL Server Management Studio, εκτελέστε τις ακόλουθες δηλώσεις SQL:
      χρησιμοποιήστε το MyDatabase.mdf δήλωση @dbname varchar (255) set @ dbname = 'MyDatabase.mdf' exec sp_dboption @ dbname, 'single user', 'true' dbcc checktable ('MyTable', REPAIR_ALLOW_DATA_LOSS) dbcc πίνακας ελέγχου ('MyTable', 'MyTable' ) exec sp_dboption @ dbname, "μεμονωμένος χρήστης", "false"
      

      Η ΔΗΛΩΣΗ

      πίνακας ελέγχου dbcc («MyTable», REPAIR_ALLOW_DATA_LOSS)
      

      ενδέχεται να προκαλέσει απώλεια ορισμένων δεδομένων στον πίνακα σας κατά την εκτέλεση της λειτουργίας επισκευής.

      Ενώ η δήλωση

      πίνακας ελέγχου dbcc ("MyTable", REPAIR_REBUILD)
      

      ΔΕΝ θα προκαλέσει απώλεια δεδομένων κατά τη διάρκεια της επισκευής, αλλά είναι πιο χρονοβόρα.

      Επομένως, εάν δεν είστε επείγουσες, μπορείτε πρώτα να προσπαθήσετε να εκτελέσετε τη δεύτερη δήλωση πίνακα ελέγχου dbcc μόνο, εάν αυτή η δήλωση δεν μπορεί να βοηθήσει στην ανάκτηση της βάσης δεδομένων, τότε μπορείτε να εκτελέσετε την πρώτη και τη δεύτερη εντολή πίνακα ελέγχου dbcc.

      Αφού ολοκληρώσετε τη λειτουργία επιδιόρθωσης για όλους τους κατεστραμμένους πίνακες, μπορείτε να καλέσετε

      dbcc checkdb («MyDatabase.mdf»)
      

      πάλι για να δούμε αν οι πίνακες στη βάση δεδομένων είναι σταθεροί ή όχι.

    Αναλυτικότερες πληροφορίες σχετικά με την εντολή πίνακα ελέγχου dbcc μπορείτε να βρείτε στη διεύθυνση https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Εάν οι μέθοδοι 1 και 2 δεν μπορούν ακόμη να διορθώσουν την κατεστραμμένη βάση δεδομένων ή τους πίνακες ή εάν αυτές οι μέθοδοι δεν μπορούν να ανακτήσουν τα δεδομένα που θέλετε, τότε μπορείτε να χρησιμοποιήσετε DataNumen SQL Recovery για να ανακτήσετε τα δεδομένα από τη βάση δεδομένων MDF σας.