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

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

Ten artykuł dotyczy Ten artykuł nie dotyczy Ten artykuł nie jest powiązany z żadnym konkretnym produktem. Nie wszystkie wersje produktu zostały zidentyfikowane w tym artykule.

Objawy

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

Przyczyna

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

Rozwiązanie

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

Produkty, których dotyczy problem

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
Właściwości artykułu
Numer artykułu: 000134529
Typ artykułu: Solution
Ostatnia modyfikacja: 18 mar 2025
Wersja:  5
Znajdź odpowiedzi na swoje pytania u innych użytkowników produktów Dell
Usługi pomocy technicznej
Sprawdź, czy Twoje urządzenie jest objęte usługą pomocy technicznej.