매우 큰 데이터베이스에 대해 며칠 동안 DBCC CHECKDB를 수동으로 분산시키는 Paul Randal의 방법 을 구현하려고 노력하고 있습니다.
- 데이터베이스의 테이블을 대략 7 개의 버킷으로 나누기
- 일주일에 두 번 DBCC CHECKALLOC 실행
- 일주일에 한 번 DBCC CHECKCATALOG 실행
- 매일 한 버킷에서 DBCC CHECKTABLE 실행
이 기술을 사용한 사람이 있습니까? 기존 스크립트가 있습니까?
나는 이것이 실제로 CHECKDB 가하는 모든 것을 다루지 않을 수도 있다고 우려합니다. CHECKDB의 온라인 설명서에는 CHECKALLOC, CHECKCATALOG 및 CHECKTABLE 외에도 다음과 같은 내용이 포함되어 있습니다.
- 데이터베이스에서 모든 인덱싱 된 뷰의 내용을 확인합니다.
- FILESTREAM을 사용하여 파일 시스템에 varbinary (max) 데이터를 저장할 때 테이블 메타 데이터와 파일 시스템 디렉토리 및 파일 간의 링크 레벨 일관성을 검증합니다. (SQL 2008 만 해당)
- 데이터베이스에서 Service Broker 데이터의 유효성을 검사합니다.
내 질문은 다음과 같습니다.
이러한 추가 점검이 필요 / 중요합니까? (인덱싱 된 뷰는 아마도 나에게 조금 더 관련이 있습니다. 아직 Service Broker 또는 FILESTREAM을 사용하고 있다고 생각하지 않습니다.)
그렇다면 이러한 추가 검사를 별도로 수행 할 수있는 방법이 있습니까?
CHECKALLOC 및 CHECKCATALOG는 큰 DB에서도 매우 빠르게 실행되는 것으로 보입니다. 매일 이것을 운영하지 않는 이유는 무엇입니까?
(참고 : 이는 수백 대의 서버 또는 특정 크기 이상의 모든 데이터베이스에있는 수천 개의 기존 데이터베이스에 대한 표준 루틴입니다. 이는 CHECKFILEGROUP을 사용하도록 모든 데이터베이스를 재구성하는 것과 같은 옵션이 실제로 실용적이지 않음을 의미합니다.)