DBCC CHECKDB Rozwiązywanie problemów z uszkodzeniem bazy danych serwera SQL
摘要: DBCC CHECKDB, DBCC, naprawa bazy danych, baza danych, uszkodzona baza danych
症狀
原因
解析度
DBCC to natywne narzędzie programu Microsoft SQL Server przeznaczone do sprawdzania i naprawiania baz danych Microsoft SQL Server. W tym artykule opisano polecenie DBCC CHECKDB i opcje sprawdzania integralności logicznej i fizycznej bazy danych.
DBCC CHECKDB (Transact-SQL):
Czynności, które należy wykonać, aby uruchomić checkdb DBCC:
- Otwórz program SQL Server Studio Management
- Otwórz okno kwerendy
- Wpisz "DBCC CHECKDB (nazwa bazy danych)"

Opcje naprawy DBCC
- REPAIR_REBUILD: Poniższe polecenie przełącza bazę danych w tryb umożliwiający naprawę.
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
Skopiuj poniższe polecenie i wklej je do sesji kwerendy, wprowadzając prawidłową nazwę bazy danych:
--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: Poniższe polecenie wykonuje naprawę bazy danych i może spowodować utratę danych w celu zakończenia procesu naprawy.
--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
Skopiuj poniższe polecenie i wklej je do sesji kwerendy, wprowadzając prawidłową nazwę bazy danych:
Poniższe polecenia są przydatne, jeśli ilość miejsca na dysku fizycznym bazy danych jest niska.
--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
Skopiuj poniższe polecenie i wklej je do sesji kwerendy, wprowadzając prawidłową nazwę bazy danych:
--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
Skopiuj poniższe polecenie i wklej je do sesji kwerendy i wprowadź prawidłową nazwę bazy danych:
--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
