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

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

この記事は次に適用されます: この記事は次には適用されません: この記事は、特定の製品に関連付けられていません。 すべての製品パージョンがこの記事に記載されているわけではありません。

現象

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

原因

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

解決方法

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

対象製品

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
文書のプロパティ
文書番号: 000134529
文書の種類: Solution
最終更新: 18 3月 2025
バージョン:  5
質問に対する他のDellユーザーからの回答を見つける
サポート サービス
お使いのデバイスがサポート サービスの対象かどうかを確認してください。