DBCC CHECKDB: SQL Server -tietokannan vioittumisen vianmääritys
Resumen: DBCC CHECKDB, DBCC, tietokannan korjaus, tietokanta, vioittunut tietokanta
Síntomas
Causa
Resolución
DBCC on Microsoft SQL Serverin sisäinen työkalu Microsoft SQL Server -tietokantojen tarkistamiseen ja korjaamiseen. Tässä artikkelissa käsitellään DBCC:n CHECKDB-komentoa ja tietokannan loogisen ja fyysisen eheyden tarkistusvaihtoehtoja.
DBCC CHECKDB (Transact-SQL):
DBCC CHECKDB -tietokannan suorittaminen:
- Open SQL Server Studio Management
- Avaa kyselyikkuna
- Kirjoita DBCC CHECKDB (database Name)

DBCC-korjausvaihtoehdot
- REPAIR_REBUILD: Seuraava komento siirtää tietokannan tilaan, jossa korjaus on mahdollista.
USE Master; GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB (TSQL2012, REPAIR_REBUILD) GO ALTER DATABASE TSQL2012 SET MULTI_USER; GO
Kopioi seuraava komento ja liitä se kyselyistuntoon käyttämällä oikeaa tietokannan nimeä:
--Command below performs a Database repair not allowing Data loss USE Master; GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB (TSQL2012,REPAIR_REBUILD) GO ALTER DATABASE TSQL2012 SET MULTI_USER; GO
2. REPAIR_ALLOW_DATA_LOSS: Seuraava komento korjaa tietokannan ja voi johtaa tietojen menetykseen, jotta korjaus voidaan suorittaa loppuun.
--Command below performs a database repair that may result in data loss, --replace TSQL2012 with the database name of database being repaired USE Master GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO DBCC CHECKDB (TSQL2012, REPAIR_ALLOW_DATA_LOSS) GO ALTERDATABASE TSQL2012 SET MULTI_USER GO
Kopioi seuraava komento ja liitä se kyselyistuntoon käyttämällä oikeaa tietokannan nimeä:
Seuraavista komennoista on hyötyä, jos tietokannan fyysisen levyn tila on vähissä.
--Command below estimates the size TEMPDB must be to complete the DBCC CHECKDB job USE Master; GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB (TSQL2012, REPAIR_REBUILD) WITH ESTIMATEONLY; GO ALTER DATABASE TSQL2012 SET MULTI_USER GO
Kopioi seuraava komento ja liitä se kyselyistuntoon käyttämällä oikeaa tietokannan nimeä:
--Command below estimates the size TEMPDB must be to complete the DBCC CHECKDB job USE Master; GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB (TSQL2012, REPAIR_REBUILD) WITH ESTIMATEONLY; GO ALTER DATABASE TSQL2012 SET MULTI_USER GO
--Command below will run DBCC CHECKDB without using TEMDB and creating a DB --snapshot. When not using TEMPDB with a DB snapshot all data will be checked in -- the live database not not a database snapshot. USE Master; GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB (TSQL2012, REPAIR_REBUILD) WITH TABLOCK; GO ALTER DATABASE TSQL2012 SET MULTI_USER GO
Kopioi seuraava komento ja liitä se kyselyistuntoon ja anna tietokannan oikea nimi:
--Command below will run DBCC CHECKDB without using TEMPDB and creating a DB --snapshot. When not using TEMPDB with a DB snapshot all data will be checked in ---the live database not a database snapshot. USE Master; GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB (TSQL2012, REPAIR_REBUILD) WITH TABLOCK; GO ALTER DATABASE TSQL2012 SET MULTI_USER GO
