2007~2011/SQL Server2008. 12. 10. 09:26

SQL Server 2005 트랜잭션 로그 손상에 의한 SUSPECT (주의대상) 발생 시 로그를  리빌드하여 복구하는 절차에 대해서 아래와 같이 정리하였습니다. 일반적인 상황에 대한 예제이며 운영 머신이라면 정확한 전단 및 조치를 위해 기술지원을 받으시길 권장해 드립니다. 당신의 데이터는 소중하니깐요! :)


[시나리오]
LAIGO 데이터베이스 SUSPECT 발생 복구 절차


[복구절차]
1. 트랜잭션
로그 파일 이름 확인

USE LAIGO
GO

Exec sp_helpdb LAIGO



2.
데이터베이스 상태를 Single user 모드로 변경

ALTER DATABASE LAIGO SET SINGLE_USER WITH ROLLBACK IMMEDIATE



3. SQL Server
서비스 중지 및 기존 LDF 로그 파일의 이름을 변경
 


4.
SQL Server 서비스 시작 


5.
새로운 로그 파일 지정하여 rebuild log 수행 

ALTER DATABASE LAIGO REBUILD LOG ON
(NAME=LAIGO_Log, FILENAME='D:\MSSQL\DATA\LAIGO_Log.ldf')



6. SQL Server
재시작 후 CheckDB 수행

DBCC CHECKDB (LAIGO)


6-1.
일관성 오류 발생 시 데이터 오류 복구 구문 수행(데이터 손실이 발생할 수 있음)

DBCC CHECKDB('LAIGO', REPAIR_ALLOW_DATA_LOSS)

※ 복구 모드에 대해서는 아래 참고자료 링크 또는 msdn 라이브러리를 참조하시기 바랍니다.

 

7. 트랜잭션 로그 파일 사이즈, 증가 옵션 변경 

ALTER DATABASE LAIGO MODIFY FILE
( NAME = N'LAIGO_Log', SIZE = 10GB, FILEGROWTH = 100MB )

 

 

8. 데이터베이스 상태를 multi user로 변경

 ALTER DATABASE LAIGO SET MULTI_USER



9. SUSPECT_PAGES 확인

SELECT * FROM MSDB.DBO.SUSPECT_PAGES



[참고자료]
SQL Server 2000 Database suspect (주의대상) 복구
http://laigo.kr/27

suspect_pages 테이블 이해 및 관리

http://msdn.microsoft.com/ko-kr/library/ms191301(SQL.90).aspx



작성자 : Lai Go / 작성일자 : 2008.12.10
Posted by Lai Go