DBCC CHECKDB problemen met SQL Server Database-corruptie oplossen

Yhteenveto: DBCC CHECKDB, DBCC, databasereparatie, database, beschadigde database

Tämä artikkeli koskee tuotetta Tämä artikkeli ei koske tuotetta Tämä artikkeli ei liity tiettyyn tuotteeseen. Tässä artikkelissa ei yksilöidä kaikkia tuoteversioita.

Oireet

Probleem: MS SQL Server database is beschadigd en moet worden gerepareerd om stabiliteit en consistentie te behouden.

Syy

Softwarebeschadiging aan MS SQL Server database, logboeken en applicatiebestanden.

Tarkkuus

DBCC is een native tool van Microsoft SQL Server die is ontworpen om Microsoft SQL Server Databases te controleren en te repareren.  Dit artikel bespreekt de DBCC CHECKDB-opdracht en opties voor het controleren van de logische en fysieke integriteit van de database.

DBCC CHECKDB-informatie

DBCC CHECKDB (Transact-SQL):

https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15Deze hyperlink brengt u naar een website buiten Dell Technologies.

Stappen voor het uitvoeren van DBCC CHECKDB:

  1. Sql Server Studio-beheer openen
  2. Een queryvenster openen
  3. Typ "DBCC CHECKDB (databasenaam)"

Resultaten voor DBCC CHECKDB-uitvoering
 

        4. Controleer onderaan de queryresultaten om toewijzings- en consistentiefouten te zien. 
        5.  Als er toewijzings- en consistentiefouten worden weergegeven in de resultaten, moet de database worden hersteld vanaf een back-up of een databasereparatie uitvoeren met behulp van DBCC CHECKDB.          

DBCC-reparatieopties

  1. REPAIR_REBUILD: De onderstaande opdracht zet de database in een modus die reparatie mogelijk maakt.
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

Kopieer de onderstaande opdracht en plak deze in de querysessie met de juiste databasenaam:

--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: De onderstaande opdracht voert databasereparatie uit en kan leiden tot dataverlies om het reparatieproces te voltooien.

--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

Kopieer de onderstaande opdracht en plak deze in de querysessie met de juiste databasenaam:

Onderstaande opdrachten zijn handig als de fysieke schijfruimte van de database bijna leeg is.

--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

Kopieer de onderstaande opdracht en plak deze in de querysessie met de juiste databasenaam:

--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

Kopieer de onderstaande opdracht en plak deze in de querysessie en plaats de juiste databasenaam:

--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

Informatie over wanneer u DBCC CHECKDB moet gebruiken

Tuotteet, joihin vaikutus kohdistuu

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
Artikkelin ominaisuudet
Artikkelin numero: 000134529
Artikkelin tyyppi: Solution
Viimeksi muutettu: 18 maalisk. 2025
Versio:  5
Etsi vastauksia kysymyksiisi muilta Dell-käyttäjiltä
Tukipalvelut
Tarkista, kuuluuko laitteesi tukipalveluiden piiriin.