DBCC CHECKDB SQL Server 데이터베이스 손상 문제 해결

Resumo: DBCC CHECKDB, DBCC, 데이터베이스 복구, 데이터베이스, 손상된 데이터베이스

Este artigo aplica-se a Este artigo não se aplica a Este artigo não está vinculado a nenhum produto específico. Nem todas as versões do produto estão identificadas neste artigo.

Sintomas

문제: MS SQL Server 데이터베이스가 손상되었으며 안정성과 일관성을 유지하기 위해 복구해야 합니다.

Causa

MS SQL Server 데이터베이스, 로그 및 애플리케이션 파일에 대한 소프트웨어 손상.

Resolução

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 사용 시기에 대한 정보

Produtos afetados

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
Propriedades do artigo
Número do artigo: 000134529
Tipo de artigo: Solution
Último modificado: 18 mar. 2025
Versão:  5
Encontre as respostas de outros usuários da Dell para suas perguntas.
Serviços de suporte
Verifique se o dispositivo está coberto pelos serviços de suporte.