데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

DBCC CHECKDB 버그 및 해결 방법

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

SQL Server는 무결성 검사를 위해 DBCC CHECKDB 명령어를 제공 한다. DBCC CHECKDB는 컬럼의 값이 열의 데이터 형식의 법적 범위 내에 유효성을 검사하여 무결성을 판단한다.

 

이번 포스트는 SQLskills.com의 Paul Randal 아티클을 바탕으로 필자가 이해한 내용을 정리 하였으며 번역의 오류나 기술적 오류 가능성을 미리 알려둔다.

 

SQL Server에서 master 데이터베이스에 손상(currption)을 발견되었고 DBCC CHECKDB는 이를 수행하지 않았다.

(DBCC CHECKDB 코드 버그라기보다는 데이터베이스 생성시 버그인듯 하다고 한다.)

 

데이터베이스 생성시 데이터베이스의 부팅 페이지에서 dbi_dbccFalgs 필드는 2로 설정된다. 그러나 SQL Server서 마스터 및 모델 데이터베이스는 모든 버전에서 dbi_dbccFlags 필드는 기본값으로 0으로 설정 되어 있다. 그래서 무결성 검사가 수행되지 않았으며 이것에 대해 개발팀에게 통보하였고 버그로 확인 되었다.

 

(글렌베리(Glenn Berry) 블로그에 의하면 SQL Server 2014에서도 발견되었다고 한다.)

 

DBCC TRACEON (3604);

DBCC DBINFO (N'master');

GO

 

 

그리고 다음과 같이 DBCC CHECKDB를 실행 하였을 경우 모든 dbi_flag가 2로 바뀐 것을 확인 할 수 있었다.

DBCC CHECKDB (N'master') WITH DATA_PURITY, NO_INFOMSGS;

DBCC CHECKDB (N'model') WITH DATA_PURITY, NO_INFOMSGS;

GO

 

 

DBCC TRACEON (3604);

DBCC DBINFO (N'master');

GO

 

 

 

 

 

SQL Server 2005 버전 이상을 사용하고 있다면 모든 버전에서 dbi_ flag 값을 올바르게 설정하기 위하여 다음 스크립트를 반드시 실행하도록 하자.

DBCC CHECKDB (N'master') WITH DATA_PURITY, NO_INFOMSGS;

DBCC CHECKDB (N'model') WITH DATA_PURITY, NO_INFOMSGS;

GO

 

 

[참고자료]

 

 

 


강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
1853 Net Framework 4.0과 SQL Server 2008 설치 오류 jevida(강성욱) 2016.10.08 1843
1852 SQL Server 인덱스 튜닝 접근 jevida(강성욱) 2016.10.07 3447
1851 Sys.dm_os_performance_counter 해석하기 jevida(강성욱) 2016.10.07 2309
1850 프로파일러를 이용한 중첩된 프로시저 디버깅 jevida(강성욱) 2016.10.07 1570
1849 SAN 스토리지 성능 모니터 - SAN 스토리지를 사용하는 경우 성능 카운터를 어떻게 모니터링 할까? jevida(강성욱) 2016.10.07 1745
1848 저장된 Plan Cache 확인 및 활용 jevida(강성욱) 2016.10.07 4615
1847 Xp_fixeddrives 세부 정보 확인하기 jevida(강성욱) 2016.10.07 1750
1846 강제 매개변수화로 인한 성능 저하 사례 jevida(강성욱) 2016.10.07 1563
1845 파라메터 스니핑과 데이터 스큐 jevida(강성욱) 2016.10.07 1530
» DBCC CHECKDB 버그 및 해결 방법 jevida(강성욱) 2016.10.07 1540
1843 NOLOCK HINT 이해 jevida(강성욱) 2016.10.07 7866
1842 인증으로부터 분리된 사용자 방지 jevida(강성욱) 2016.10.07 2220
1841 비관리자 계정으로 쿼리 계획 보기 jevida(강성욱) 2016.10.07 1243
1840 SSMS 폴링 간격 구성 jevida(강성욱) 2016.10.07 1772
1839 Deadlock 감지하여 알림하기 jevida(강성욱) 2016.10.07 1787
1838 Suspect_pages 테이블 이해 및 관리 jevida(강성욱) 2016.10.07 1371
1837 SSRS SocketException jevida(강성욱) 2016.10.07 1473
1836 파티션 분할 시 I/O 최소화 하기 jevida(강성욱) 2016.10.07 1863
1835 대량 BCP 작업 시 발생하는 오류 (665, 1450, 33) jevida(강성욱) 2016.10.07 1653
1834 기본 추적(default tace) 활성화 및 로그 확인 jevida(강성욱) 2016.10.07 1393





XE Login