DBCC CHECKDB Усунення пошкоджень бази даних SQL Server

Summary: DBCC CHECKDB, DBCC, Відновлення бази даних, база даних, пошкоджена база даних

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

Випуск: База даних MS SQL Server пошкоджена і потребує ремонту для підтримки стабільності та узгодженості.

Cause

Пошкодження програмного забезпечення бази даних, журналів і файлів додатків MS SQL Server.

Resolution

DBCC — це рідний інструмент Microsoft SQL Server, призначений для перевірки та відновлення баз даних Microsoft SQL Server.  У цій статті розглядається команда DBCC CHECKDB та параметри перевірки логічної та фізичної цілісності бази даних.

Інформація про 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-ver15Це гіперпосилання спрямовує вас на веб-сайт за межами Dell Technologies.

Кроки для запуску DBCC CHECKDB:

  1. Відкрийте SQL Server Studio Management
  2. Відкриття вікна запиту
  3. Введіть " DBCC CHECKDB (ім'я бази даних)"

Результати запуску DBCC CHECKDB
 

        4. Перевірте внизу результатів запиту, щоб побачити помилки розподілу та узгодженості. 
        5.  Якщо в результатах з'являються помилки розподілу та узгодженості, базу даних слід або відновити з резервної копії, або виконати відновлення бази даних за допомогою DBCC CHECKDB.          

Варіанти відновлення DBCC

  1. REPAIR_REBUILD: Наведена нижче команда переводить базу даних у режим, що дозволяє відновлення.
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

Скопіюйте наведену нижче команду та вставте до сеансу запиту, ввівши правильне ім'я бази даних:

--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: Наведена нижче команда виконує відновлення бази даних і може призвести до втрати даних для завершення процесу відновлення.

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

Скопіюйте наведену нижче команду та вставте до сеансу запиту, ввівши правильне ім'я бази даних:

Наведені нижче команди корисні, якщо на фізичному диску бази даних не вистачає місця.

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

Скопіюйте наведену нижче команду та вставте до сеансу запиту та введіть правильне ім'я бази даних:

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

Інформація про те, коли слід використовувати 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.