데이터베이스가 RESTORING 상태에 갇힌 이유의 근본 원인 식별


10

데이터베이스 RESTORING상태 문제를 해결하는 질문이 있다는 것을 알고 있으며 이러한 솔루션을 사용하여 데이터베이스를 온라인으로 수동으로 다시 가져 왔지만 시나리오는 약간 다릅니다.

프로덕션 사본을 DEV 인스턴스로 복원하는 Powershell 스크립트를 사용하는 자동 복원이 있습니다. 스크립트는 약 1 년 동안 변경되지 않았으며 때로는 복원 프로세스가 완료되었지만 복원 된 데이터베이스는 RESTORING상태에 머물러 있습니다 (때로는 스크립트가 제대로 작동하고 때로는 이와 같이 실패 함).

프로세스를 수동으로 다시 실행할 때마다 작동하거나 SSMS의 사용자 인터페이스에서 또는 T-SQL을 통해 데이터베이스를 수동으로 복원하면 문제없이 완료됩니다.

CHECKDB복원 된 DB 에서 실행하도록 권장하는 답변을 찾았 지만이 문제의 원인으로 아무것도 나오지 않았습니다.

복원 스크립트는 데이터베이스의 전체 백업을 복원하고 "WITH RECOVERY"옵션을 사용하기 때문에 실제로 복원 프로세스를 사용하고 있지만 복원 프로세스를 중지시킬 수있는 항목을 찾으려고합니다 "WITH RECOVERY".

왜 이런 일이 때때로 발생하는지 이해하려고 노력하고 있기 때문에 어떤 제안이라도 정말로 감사합니다.

DB를 다시 한 번 수동으로 복원하는 증상을 치료하는 대신 문제의 근본 원인을 해결하고 싶습니다.

최신 정보:

@Brent 권장 Github Gist- 여기 .


1
SQL Server 로그 및 이벤트 뷰어에서 답변을 얻을 수 있습니다.?를 확인 했습니까? 복원 상태가 멈출 수 있기 때문에 어떻게 든 공간 문제가 발생합니까? 복원하기 전에 백업 무결성을 확인합니까? 스토리지 서브 시스템은 어떻습니까
Shanky

@Shanky 나는 그 정보에 직접 액세스 할 수는 없지만 그 정보를 볼 것입니다 (SAN 관리자에게 문의해야 함). 백업 무결성은 디스크를 백업 할 때와 백업 할 때 모두 확인되도록 설정되어 있습니다.
Radu Gheorghiu

1
SQL Server 오류 로그는 무엇을 말합니까? 실행을 시도하십시오 EXEC sys.xp_readerrorlog 0,1;-복원 작업 시점에 메시지를 찾으십시오.
Max Vernon

@MaxVernon 복원이 발생한 시점의 오류 로그 . 오류 메시지를 확인했으며 디스크 공간을 확인하는 것이 좋습니다. 나는 깊이 파고 내가 찾을 수 있는지,하지만 얼핏에이 꽤 많이 확장 할 수 및 것 나를 보는 것 많은 것들 .
Radu Gheorghiu

답변:


8

Occam의 면도기 는 다음과 같이 명백히 제안합니다.

스크립트가 때때로 데이터베이스를 복원 상태로두면 스크립트를 디버그하십시오.

테이블이나 파일에서하고있는 일을 기록하는 것으로 시작하십시오. 그런 다음 데이터베이스가 복원 중 상태가되면 로그를 통해 뒤로 돌아가서 무엇이 잘못되었는지 확인하십시오. (커뮤니티로부터 두 번째 눈을 원한다면, Github Gist로 스크립트를 업로드 해보십시오. 그러나 크면 클수록 버그를 발견하기가 더 어려울 수 있습니다.)

그렇게하지 않으려면 프로파일 러 또는 확장 이벤트 추적을 실행하여 복원 이벤트를 추적하십시오. 그러나 경고 보다 훨씬 어렵습니다. 시도하고 실패한 독자의 아이디어를 더 많이 보려면 해당 게시물에 대한 의견을 읽으십시오.


고마워 브렌트, 이것들은 좋은 지침입니다! 더 많은 정보가있을 때 업데이트로 돌아올 것입니다 .DB가 괜찮은 순간 내일 아침 프로세스가 다시 실행될 때 어떤 일이 발생하는지 볼 수 있습니다.
Radu Gheorghiu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.