Kun olet SQL Server MDF-tietokanta on vioittunut, voit käyttää seuraavia tapoja palauttaa siihen sisältyvät tiedot menetysten vähentämiseksi:
Huomaa: Varmuuskopioi vioittuneet MDF- ja NDF-tietokantatiedostot ennen tietojen palauttamista.
- Ensinnäkin, voit kokeilla SQL Server sisäänrakennettu komento DBCC TARKISTUSB palauttaa tietokanta. Olettaen, että vioittunut tietokantatiedosto on 'MyDatabase.mdf', voit palauttaa sen sisällä olevat tiedot seuraavasti:
- Restart SQL Server.
- Älä tee mitään toimintoja.
- In SQL Server Management Studio, suorita seuraavat SQL-käskyt:
käytä pääilmoittajaa @databasename varchar (255) set @ databaseasename = 'MyDatabase.mdf' exec sp_dboption @databasename, N'single ', N'true' - Aseta kohdetietokantaan yhden käyttäjän tila dbcc checkdb (@ databaseasename, REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb (@ databaseasename, REPAIR_REBUILD) exec sp_dboption @databasename, N'single ', N'false' - Aseta kohdetietokanta takaisin usean käyttäjän tilaan
Lausunto
dbcc checkdb (@ tietokannanimi, REPAIR_ALLOW_DATA_LOSS)
saattaa aiheuttaa joidenkin tietokannan tietojen menetystä korjaustöiden aikana.
Vaikka lausunto
dbcc checkdb (@ tietokannanimi, REPAIR_REBUILD)
EI aiheuta tietojen menetystä korjaustoiminnon aikana, mutta se vie enemmän aikaa.
Joten jos et ole kiireellinen, voit ensin yrittää suorittaa vain toisen dbcc checkdb-käskyn, jos tämä käsky ei voi auttaa palauttamaan tietokantaa, voit suorittaa ensimmäisen ja toisen dbcc checkdb -komennon.
Korjauksen jälkeen voit soittaa
dbcc checkdb ('MyDatabase.mdf')
uudelleen nähdäksesi onko tietokanta kiinteä vai ei.
Tarkempia tietoja dbcc checkdb -komennosta löytyy osoitteesta https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15
- Jos dbcc checkdb raportoi menetelmän 1 käytön jälkeen edelleen virheitä joissakin taulukoissa, voit yrittää SQL Server sisäänrakennettu komento DBCC CHECKTABLE näiden taulukoiden palauttamiseksi tietokantaan. Olettaen, että vioittunut tietokantatiedosto on 'MyDatabase.mdf' ja korjattava taulukko on 'MyTable', voit korjata sen seuraavasti:
- Restart SQL Server.
- Älä tee mitään toimintoja.
- In SQL Server Management Studio, suorita seuraavat SQL-käskyt:
käytä MyDatabase.mdf julista @dbname varchar (255) set @ dbname = 'MyDatabase.mdf' exec sp_dboption @ dbname, 'single user', 'true' dbcc checktable ('MyTable', REPAIR_ALLOW_DATA_LOSS) dbcc checktable ('MyTable, REPAIR_REB ) exec sp_dboption @ dbname, 'yksi käyttäjä', 'väärä'
Lausunto
dbcc-valintataulukko ('MyTable', REPAIR_ALLOW_DATA_LOSS)
saattaa menettää joitain taulukon tietoja, kun suoritat korjaustoiminnon.
Vaikka lausunto
dbcc-valintataulukko ('MyTable', REPAIR_REBUILD)
EI aiheuta tietojen menetystä korjaustoiminnon aikana, mutta se vie enemmän aikaa.
Joten jos et ole kiireellinen, voit ensin yrittää suorittaa vain toisen dbcc-tarkistuspöydän käskyn, jos se ei voi auttaa palauttamaan tietokantaa, voit suorittaa ensimmäisen ja toisen dbcc-tarkistuspöydän komennot.
Kun olet suorittanut kaikkien vioittuneiden taulukoiden korjaustoiminnon, voit soittaa
dbcc checkdb ('MyDatabase.mdf')
uudelleen nähdäksesi, ovatko tietokannan taulukot kiinteät vai eivät.
Tarkempia tietoja dbcc checktable -komennosta on osoitteessa https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15
- Jos menetelmät 1 ja 2 eivät vieläkään pysty korjaamaan vioittunutta tietokantaa tai taulukoita tai jos nämä menetelmät eivät pysty palauttamaan haluamaasi dataa, voit käyttää DataNumen SQL Recovery palauttaa tiedot MDF-tietokannastasi.