Amikor SQL Server Az MDF adatbázis sérült, a következő módszerekkel állíthatja helyre a benne lévő adatokat, hogy csökkentse a veszteséget:
Megjegyzés: Mielőtt bármilyen adat-helyreállítási műveletet végrehajtana, először készítsen biztonsági másolatot a sérült MDF és NDF adatbázisfájlokról.
- Először is, megpróbálhatod SQL Server beépített parancs DBCC CHECKDB az adatbázis helyreállításához. Feltételezve, hogy a sérült adatbázisfájl a 'MyDatabase.mdf', akkor a következőképpen állíthatja vissza a benne lévő adatokat:
- Restart SQL Server.
- Ne végezzen semmilyen műveletet.
- In SQL Server A Management Studio programban hajtsa végre a következő SQL utasításokat:
használja a master deklarációt @adatbázisnév varchar(255) set @databasename='Sajátadatbázis.mdf' exec sp_dboption @adatbázisnév, N'single', N'true' -- A céladatbázis beállítása egyfelhasználós módra dbcc checkdb(@adatbázisnév,REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb(@adatbázisnév,REPAIR_REBUILD) exec sp_dboption @adatbázisnév, N'single', N'false' -- A céladatbázis visszaállítása többfelhasználós módba
Az állítás
dbcc checkdb(@adatbázisnév,JAVÍTÁS_ALLOW_ADATOK_LOSS)
a javítási művelet végrehajtásakor egyes adatok elvesztését okozhatja az adatbázisban.
Miközben az állítás
dbcc checkdb(@adatbázisnév,JAVÍTÁS_ÚJRABUILD)
NEM okoz adatvesztést a javítási művelet során, de ez időigényesebb.
Tehát ha nem sürgős, először megpróbálhatja végrehajtani a második dbcc checkdb utasítást, ha ez az utasítás nem segít az adatbázis helyreállításában, akkor végrehajthatja az első és a második dbcc checkdb parancsot.
A javítási művelet után hívhat
dbcc checkdb('Sajátadatbázis.mdf')
újra megnézni, hogy az adatbázis javítva van-e vagy sem.
A dbcc checkdb paranccsal kapcsolatos részletesebb információk itt találhatók https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15
- Ha az 1. módszer használata után a dbcc checkdb továbbra is hibákat jelez egyes táblákban, próbálkozhat SQL Server beépített DBCC CHECKTABLE paranccsal, hogy helyreállítsa ezeket a táblákat az adatbázisban. Feltételezve, hogy a sérült adatbázisfájl a 'MyDatabase.mdf', és a javítani kívánt tábla a 'MyTable', akkor a következőképpen javíthatja ki:
- Restart SQL Server.
- Ne végezzen semmilyen műveletet.
- In SQL Server A Management Studio programban hajtsa végre a következő SQL utasításokat:
use MyDatabase.mdf deklarál @dbname varchar(255) set @dbname='Sajátadatbázis.mdf' exec sp_dboption @dbname,'single user','true' dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS) dbcc checktable,'REPAIRTRE'('DMyIRTRE) ) exec sp_dboption @dbname,'egy felhasználó','hamis'
Az állítás
dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS)
a javítási művelet végrehajtásakor bizonyos adatok elvesztését okozhatja a táblázatban.
Miközben az állítás
dbcc checktable('MyTable',REPAIR_REBUILD)
NEM okoz adatvesztést a javítási művelet során, de ez időigényesebb.
Tehát ha nem sürgős, először megpróbálhatja végrehajtani a második dbcc checktable utasítást, ha ez az utasítás nem segít az adatbázis helyreállításában, akkor végrehajthatja az első és a második dbcc checktable parancsot.
Miután befejezte az összes sérült tábla javítási műveletét, hívhat
dbcc checkdb('Sajátadatbázis.mdf')
újra, hogy megnézze, hogy az adatbázis táblái javítottak-e vagy sem.
A dbcc checktable paranccsal kapcsolatos részletesebb információk itt találhatók https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15
- Ha az 1. és 2. módszer továbbra sem tudja kijavítani a sérült adatbázist vagy táblákat, vagy ha ezek a módszerek nem tudják helyreállítani a kívánt adatokat, akkor DataNumen SQL Recovery hogy helyreállítsa az adatokat az MDF adatbázisból.