2007~2011/SQL Server2010.07.02 09:25

데이터베이스를 복원하였으나 바로 온라인 되지 않고 SSMS 에서 확인하였을 때, '복원중' 상태로 나타납니다. 명령 쿼리는 모두 정상적으로 완료된 것 같은데 무엇이 문제일까요?


[환경]
SQL Server 2008


[현상] 
백업된 데이터베이스를 다른 서버에서 새쿼리를 통해 Restore 하였으나 데이터베이스 상태가 '복원 중'으로 나타납니다.


[원인]
RESTORE DATABASE 쿼리 사용 시, NORECOVERY 옵션을 사용하였기에 복원 완료 후 데이터베이스를 온라인 상태로 전환하지 않고 unrecovered state (복원 중인 상태) 로 나타나게 됩니다. 롤포워드, 롤백을 완료하고 즉시 온라인 하기 위해서는 NORECOVERY 가 아닌 RECOVERY 옵션을 사용해야 합니다.


[해결방법]
아래 쿼리를 수행하여 데이터베이스 복원을 완료하고 온라인 합니다.

RESTORE DATABASE LAIGODB WITH 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 쿼리 확인

RESTORE DATABASE [LAIGODB] FROM  DISK = N'D:\LAIGODB.bak' WITH  FILE = 1,
 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

Posted by Lai Go