2013. 1. 8. 18:26

SQL Server tempdb 복구

tempdb 복구

tempdb SQL Server에서 정렬, GROUP BY를 사용한 집계, 커서 사용, 임시테이블 및 테

이블변수 사용, 일부 JOIN, SORT_IN_TEMPDB 옵션을 사용한 인덱스 생성, 데이터베이스

의 복구 작업 등에서 사용됩니다. 따라서, 손상 시에는 이와 같은 작업들을 진행할 수 없게

됩니다. tempdb의 손상 시 tempdb를 사용하는 작업은 다음과 같이 913 오류를 발생하며

정상적으로 실행되지 않습니다.

 

또한, tempdb size나 경로를 잘못 설정하여 SQL Server가 시작 시 정상 상태가 아닐 경우도 문제가 발생합니다.

 

tempdb가 주의 대상일 경우 재 시작 만으로 복구되기도 하지만 아닐 경우도 있습니다.

이럴 경우 최소 로그 이면서 tempdb skip 하면서 SQL 서버를 수동으로 시작 해야 합니다.

 

1.     명령 프론트를 실행하고 SQL Sever 실행된 경로로 이동 한다.


2.     tempdb 없이 실행하는 추적플래그 –T3609,  자동으로 실행하는 저장 프로시저를 실행하지 않게 하는 플래그 –T4022로 실행합니다.


3.     경우에 따라 최소 옵션인 –f도 포함합니다. , -m : 단일 사용자 모드  

실행하는 명령창은 닫지 말고 그대로 둡니다.


Sqlservr.exe c –f –m –T3609 –T4022

net start MSSQLSERVER  /f /c /m /T 3609 /T4022

 

4.     경로가 잘 못 되었거나, size가 잘 못 되었을 경우 정보를 Alter database  구문을 통해 수정 합니다.


5.     SQL Server 2000 이하의 경우 주의 대상을 정상 상태로 변경 하기 위해서

exec sp_resetstatus ‘tempdb’

명령으로 강제로 복원 할 수도 있습니다.


6.     3번의 실행 명령창에 Ctrl + c를 입력한 다음 “Y” 키를 눌러 SQL Server를 종료후 정상적으로 서비스를 기동 합니다.


7.     tempdb에 문제가 없는지 확인 합니다

'Common Admin' 카테고리의 다른 글

TokenAndPermUserStore  (0) 2015.05.18
Database Landscape map – February 2013  (0) 2013.03.13
tablediff 유틸리티  (0) 2012.11.01
Admin::2000용 TEST DB 생성.  (0) 2011.10.05