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

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

Tämä artikkeli koskee tuotetta Tämä artikkeli ei koske tuotetta Tämä artikkeli ei liity tiettyyn tuotteeseen. Tässä artikkelissa ei yksilöidä kaikkia tuoteversioita.

Oireet

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

Syy

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

Tarkkuus

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

Tuotteet, joihin vaikutus kohdistuu

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
Artikkelin ominaisuudet
Artikkelin numero: 000134529
Artikkelin tyyppi: Solution
Viimeksi muutettu: 18 maalisk. 2025
Versio:  5
Etsi vastauksia kysymyksiisi muilta Dell-käyttäjiltä
Tukipalvelut
Tarkista, kuuluuko laitteesi tukipalveluiden piiriin.