DBCC CHECKDB Усунення пошкоджень бази даних SQL Server
Resumen: DBCC CHECKDB, DBCC, Відновлення бази даних, база даних, пошкоджена база даних
Síntomas
Causa
Resolución
DBCC — це рідний інструмент Microsoft SQL Server, призначений для перевірки та відновлення баз даних Microsoft SQL Server. У цій статті розглядається команда DBCC CHECKDB та параметри перевірки логічної та фізичної цілісності бази даних.
DBCC CHECKDB (Transact-SQL):
Кроки для запуску DBCC CHECKDB:
- Відкрийте SQL Server Studio Management
- Відкриття вікна запиту
- Введіть " DBCC CHECKDB (ім'я бази даних)"

Варіанти відновлення DBCC
- 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
