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

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

Este artículo se aplica a Este artículo no se aplica a Este artículo no está vinculado a ningún producto específico. No se identifican todas las versiones del producto en este artículo.

Síntomas

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

Causa

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

Resolución

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

Productos afectados

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
Propiedades del artículo
Número del artículo: 000134529
Tipo de artículo: Solution
Última modificación: 18 mar 2025
Versión:  5
Encuentre respuestas a sus preguntas de otros usuarios de Dell
Servicios de soporte
Compruebe si el dispositivo está cubierto por los servicios de soporte.