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(Database Name)"를 입력합니다.

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.