Xa u SQL Server I-database ye-MDF yonakele, ungasebenzisa ezi ndlela zilandelayo ukubuyisela idatha kuyo, ukunciphisa ilahleko:
Qaphela: Phambi kokuba wenze nayiphi na imisebenzi yokubuyisela idatha, nceda ugcine iifayile zakho zedatha ye-MDF kunye ne-NDF kuqala.
- Okokuqala, unokuzama SQL Server umyalelo eyakhelwe-ngaphakathi DBCC CHECKDB ukubuyisela idatabase yakho. Ukucinga ukuba ifayile yedatha eyonakeleyo yi 'MyDatabase.mdf', ngoko unokwenza ngolu hlobo lulandelayo ukubuyisela idatha ngaphakathi kuyo:
- Restart SQL Server.
- Musa ukwenza nayiphi na imisebenzi.
- In SQL Server Isitudiyo soLawulo, yenza ezi nkcazo zilandelayo zeSQL:
sebenzisa master declare @databasename varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @databasename, N'single', N'true' -- Cwangcisa indawo yogcino-lwazi kwindlela yomsebenzisi omnye dbcc checkdb(@databasename,REPAIR_DATA_ALLOW_ ) dbcc checkdb(@igama ledatha,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' -- Cwangcisa indawo yogcino-siseko umva kwimowudi yabasebenzisi abaninzi
Ingxelo
dbcc checkdb(@igama ledatha,REPAIR_ALLOW_DATA_LOSS)
kunokubangela ilahleko yedatha ethile kwidatabase yakho xa usenza umsebenzi wokulungisa.
Ngelixa ingxelo
dbcc checkdb(@igama ledatha,REPAIR_REBUILD)
NGEKE kubangele nayiphi na ilahleko yedatha ngexesha lomsebenzi wokulungisa, kodwa kudla ixesha elininzi.
Ke ukuba awungxamisekanga, ungazama kuqala ukwenza ingxelo yesibini ye-dbcc checkdb kuphela, ukuba loo ngxelo ayinakunceda ukubuyisela isiseko sedatha, ngoko ungenza imiyalelo yokuqala neyesibini ye-dbcc checkdb.
Emva komsebenzi wokulungisa, ungafowuna
dbcc checkdb('MyDatabase.mdf')
kwakhona ukubona ukuba i-database ilungisiwe okanye hayi.
Ulwazi oluthe vetshe malunga nomyalelo we-dbcc checkdb unokufumaneka apha https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15
- Ukuba emva kokusebenzisa indlela yoku-1, i-dbcc checkdb isaxela iimpazamo kwezinye iitafile, ungazama SQL Server eyakhelwe-ngaphakathi umyalelo DBCC CHECKTABLE ukubuyisela ezi tafile kuvimba wakho wedatha. Ucinga ukuba ifayile yedatha eyonakeleyo ithi 'MyDatabase.mdf' kwaye itafile ofuna ukuyilungisa ithi 'MyTable', emva koko unokwenza oku kulandelayo ukuyilungisa:
- Restart SQL Server.
- Musa ukwenza nayiphi na imisebenzi.
- In SQL Server Isitudiyo soLawulo, yenza ezi nkcazo zilandelayo zeSQL:
sebenzisa i-MyDatabase.mdf yazisa @dbname varchar(255) iseti @dbname='MyDatabase.mdf' exec sp_dboption @dbname,'umsebenzisi omnye','inyani' ye-dbcc yokutshekisha('MyTable',REPAIR_ALLOW_DATA_LOSS),'I-PATcc_LOSS itheyibhile (I-PATcc_LOSS) ) yenza sp_dboption @dbname,'umsebenzisi omnye','ubuxoki'
Ingxelo
dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS)
kunokubangela ilahleko yedatha ethile kwitafile yakho xa usenza umsebenzi wokulungisa.
Ngelixa ingxelo
i-dbcc checktable('Itafile yam',REPAIR_REBUILD)
NGEKE kubangele nayiphi na ilahleko yedatha ngexesha lomsebenzi wokulungisa, kodwa kudla ixesha elininzi.
Ke ukuba awungxamisekanga, ungazama kuqala ukwenza ingxelo yesibini ye-dbcc yokutshekisha kuphela, ukuba eso ngxelo ayinakunceda ukubuyisela isiseko sedatha, ngoko ungenza imiyalelo yokuqala neyesibini ye-dbcc yokutshekisha.
Emva kokuba ugqibezele umsebenzi wokulungisa zonke iitafile ezonakeleyo, ungafowuna
dbcc checkdb('MyDatabase.mdf')
kwakhona ukubona ukuba iitafile ezikwisiseko sedatha zilungisiwe okanye hayi.
Ulwazi oluthe vetshe malunga nomyalelo we-dbcc checktable inokufumaneka apha https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15
- Ukuba indlela 1 kunye nesi-2 ayinako ukulungisa isiseko sedatha esonakeleyo okanye iitafile, okanye ukuba ezi ndlela azikwazi ukubuyisela idatha oyifunayo, ngoko ungasebenzisa DataNumen SQL Recovery ukubuyisela idata kwidatabase yakho yeMDF.