DBCC CHECKDB Rozwiązywanie problemów z uszkodzeniem bazy danych serwera SQL

Summary: DBCC CHECKDB, DBCC, naprawa bazy danych, baza danych, uszkodzona baza danych

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Problem: Baza danych MS SQL Server jest uszkodzona i wymaga naprawy w celu utrzymania stabilności i spójności.

Cause

Uszkodzenie oprogramowania do bazy danych MS SQL Server, dzienników i plików aplikacji.

Resolution

DBCC to natywne narzędzie programu Microsoft SQL Server przeznaczone do sprawdzania i naprawiania baz danych Microsoft SQL Server.  W tym artykule opisano polecenie DBCC CHECKDB i opcje sprawdzania integralności logicznej i fizycznej bazy danych.

Informacje o DBCC CHECKDB

DBCC CHECKDB (Transact-SQL):

https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15Kliknięcie tego hiperłącza powoduje wyświetlenie strony spoza witryny Dell Technologies.

Czynności, które należy wykonać, aby uruchomić checkdb DBCC:

  1. Otwórz program SQL Server Studio Management
  2. Otwórz okno kwerendy
  3. Wpisz "DBCC CHECKDB (nazwa bazy danych)"

Wyniki dla uruchomienia DBCC CHECKDB
 

        4. Sprawdź w dolnej części wyników kwerendy, aby zobaczyć błędy alokacji i spójności. 
        5.  Jeśli w wynikach pojawią się błędy alokacji i spójności, baza danych powinna zostać przywrócona z kopii zapasowej lub wykonać naprawę bazy danych za pomocą DBCC CHECKDB.          

Opcje naprawy DBCC

  1. REPAIR_REBUILD: Poniższe polecenie przełącza bazę danych w tryb umożliwiający naprawę.
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

Skopiuj poniższe polecenie i wklej je do sesji kwerendy, wprowadzając prawidłową nazwę bazy danych:

--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: Poniższe polecenie wykonuje naprawę bazy danych i może spowodować utratę danych w celu zakończenia procesu naprawy.

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

Skopiuj poniższe polecenie i wklej je do sesji kwerendy, wprowadzając prawidłową nazwę bazy danych:

Poniższe polecenia są przydatne, jeśli ilość miejsca na dysku fizycznym bazy danych jest niska.

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

Skopiuj poniższe polecenie i wklej je do sesji kwerendy, wprowadzając prawidłową nazwę bazy danych:

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

Skopiuj poniższe polecenie i wklej je do sesji kwerendy i wprowadź prawidłową nazwę bazy danych:

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

Informacje o tym, kiedy korzystać z DBCC CHECKDB

Affected Products

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
Article Properties
Article Number: 000134529
Article Type: Solution
Last Modified: 18 Mar 2025
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.