20-60 초마다 DBCC CHECKDB 실행


13

프로덕션 환경에 빠르게 배포되는 개발 환경이 있으며 약 20 초마다 로그에 다음 메시지가 표시됩니다.

Starting up database 'dbname'
CHECKDB for database 'dbname' finished without errors

이것을 테스트하는 최종 사용자가 Windows 이벤트 로그 (응용 프로그램 로그)에서 발견 한 오류로 격리 된 문제가 있었기 때문에이 문제를 발견했습니다.

The log for database 'dbname' is not available. Check event log for related messages.

우연히 관련 메시지를 찾지 못했지만 오프라인 / 온라인 주기로 해결되었습니다.

내가 생각할 수있는 유일한 것은이 응용 프로그램이 1ms마다 데이터를 수집하지만이 모든 데이터가 데이터베이스에 삽입되지는 않는다는 것입니다. dev 서버이기 때문에 로그와 데이터가 같은 드라이브에 있도록 구성되었습니다. 이 두 가지 정보를 염두에두고이 문제가 IO 문제이고 서버가 저장소 (SAN)와의 연결이 끊어진 것을 복구하려고합니다. 그럼에도 불구하고 모든 DB를 잃지 않고이 데이터베이스를 잃어 버렸기 때문에 이것은 나에게 의미가 없습니다. 그 밖의 원인은 무엇입니까?

플랫폼 : Windows Server 2008 R2의 SQL Server 2008 R2 (표준)

답변:


22

당신이 이것을 보는 이유 :

Starting up database 'dbname'
CHECKDB for database 'dbname' finished without errors

에 대한 데이터베이스 옵션이 설정되어 있기 때문입니다 AutoClose.

자동 닫기를 끄려면 다음과 같이하십시오 :

alter database YourDatabase
set auto_close off
go

AutoClose마지막 사용자 프로세스 연결이 끊어진 후 데이터베이스를 종료하는 것은 무엇입니까? 그리고 다음 사용자 연결이 시도되면 데이터베이스가 자동으로 " 다시 열립니다 ".

일반적으로 AutoClose데이터베이스를 다시 가동하기위한 대기 시간이 길기 때문에 OFF 를 유지하는 것이 가장 좋습니다 . 귀하의 질문에서 이것이 개발 환경이라는 것을 이해하지만, 거기에서도 필요하지 않아야합니다 (그리고 프로덕션 환경에서는 그것을 원하지 않습니다).

또한 DBCC CHECKDB실제로 질문 제목 당 "20-60 초마다 실행"되지는 않으며, 그렇게 표시됩니다!

SQL Server 2005부터 데이터베이스가 시작될 때마다 dbi_dbccLastKnownGood 값 (있는 경우)이 오류 로그에보고됩니다. 따라서 동일한 역사적 정보가 반복적으로 표시되는 것을 볼 수 있습니다.

이 주제는 서버 시작시 SQL Server가 내 데이터베이스에 대해 DBCC CHECKDB를 실행하는 이유 기사에서 다룹니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.