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

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

Den här artikeln gäller för Den här artikeln gäller inte för Den här artikeln är inte kopplad till någon specifik produkt. Alla produktversioner identifieras inte i den här artikeln.

Symptom

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

Orsak

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

Upplösning

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

Berörda produkter

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
Artikelegenskaper
Artikelnummer: 000134529
Artikeltyp: Solution
Senast ändrad: 18 mars 2025
Version:  5
Få svar på dina frågor från andra Dell-användare
Supporttjänster
Kontrollera om din enhet omfattas av supporttjänster.