데이터베이스를 복원하였으나 바로 온라인 되지 않고 SSMS 에서 확인하였을 때, '복원중' 상태로 나타납니다. 명령 쿼리는 모두 정상적으로 완료된 것 같은데 무엇이 문제일까요?
[환경]
SQL Server 2008
[현상]
백업된 데이터베이스를 다른 서버에서 새쿼리를 통해 Restore 하였으나 데이터베이스 상태가 '복원 중'으로 나타납니다.
[원인]
RESTORE DATABASE 쿼리 사용 시, NORECOVERY 옵션을 사용하였기에 복원 완료 후 데이터베이스를 온라인 상태로 전환하지 않고 unrecovered state (복원 중인 상태) 로 나타나게 됩니다. 롤포워드, 롤백을 완료하고 즉시 온라인 하기 위해서는 NORECOVERY 가 아닌 RECOVERY 옵션을 사용해야 합니다.
[해결방법]
아래 쿼리를 수행하여 데이터베이스 복원을 완료하고 온라인 합니다.
[분석결과]
1. SQL ErrorLog
The database 'LAIGODB' is marked RESTORING and is in a state that does not allow recovery to be run.
2. RESTORE 쿼리 확인
MOVE N'LAIGODATA1' TO N'E:\DATA\LAIGO_DATA1.mdf',
MOVE N'LAIGODATA2' TO N'E:\DATA\LAIGO_DATA2.ndf',
MOVE N'LAIGOLOG' TO N'F:\LOG\LAIGO_LOG.ldf',
NORECOVERY, STATS = 10
GO
- NORECOVERY 를 지정할 경우 데이터베이스를 복원한 후 unrecovered state (복원 중인 상태)로 마크됩니다.
[참고자료]
Performing a Complete Database Restore (Full Recovery Model)
http://msdn.microsoft.com/en-us/library/ms187495.aspx
작성자 : Lai Go / 작성일자 : 2010.07.01