Database가 Suspect 로 변했을 때..

상 재앙은 이렇게 시작된다..

“어느날 갑자기..”

오늘도 그랬다..
퇴근 준비를 하던 내게..무심코 날라든 문자 메시지 한통..

“서버 장애 발생..어쩌구 저쩌구..”

평소에 거짓말을 자주 하는 놈이라 그냥 의연하게 대처하리라 맘먹고 모니터를 살폈다..
뭔가 싶어..자세히 보려는데..핸드폰이 울리더라..
“사장님..이로군..빨리도 아셨네..”

살피는 중이라 대충 보고있다고 말하고서는 전화를 끊었는데..
이게 왠일인가..
생전 첨 겪는 상황..;;
DB 상태가 회색으로 변해있는 Suspect..상황..
식은 땀이 쭈루룩..흐르더라..

로그 살피고..왜 뒈졌나 여기저기 쑤셔보는데..도통 원인은 모르겠다..

“그래..일단 살려보자”

이 후..
장장 6시간 동안 퇴근 못하고..서비스는 죽어서 매출 떨어지는 소리 팍팍 들리고..
옆에는 도와줄 사람 하나 없고..게다가..시간은 새벽 3시가 넘어가더라..

“복구 못하면 사표다..”

투표하는 날..일 할게 많아서 출근까지 했건만..
이게 무슨 날벼락이란 말인가..;;

결국 복구 했다..(어거지로..)
심각했던 건..
그동안 나의 철저한 데이터베이스 백업 전략에도 불구하고..
데이터베이스 백업 원본이 깨졌다는 사실..
정말..사표에 점만 찍으면 될 뻔했는데..
에휴..
어쨌거나 하나 또 배웠다 생각하자..뭐..

상황
Database 가 Suspect 상태로 변했으며 접근이 안됨.

조치
쿼리 분석기에서..시스템 테이블의 업데이트 허용..
sp_configure ‘allow updates’, 1
reconfigure with override

MS-SQL을 By-Pass 모드로 실행..
명령프롬프트에서 명령 실행..
C:\> sqlservr -T3608

새 명령프롬프트 창에서 SQL-Server 접속
C:\> isql -Usa
Password : xxxxxxx
1> use master
2> go
1> begin tran
2> update sysdatabases set status=-32768 where name=’뒈진디비’
3> go
(1 row affected)
1> commit tran
2> go
1> exit
C:\>

위에서 (1 row affected) 메시지가 안나오면 백업해놓은거 그냥 복원 시킨다..

By-Pass 모드 종료
앞에서 실행한 sqlservr -T3608 명령창으로 가서 CTRL+C 를 누르고 Y를 눌러서 서비스를 종료시킨다.

Enterprise Manager 로 가서 서비스를 시작하고 상태를 본다.
기존에 Suspect 상태가 Read-Only\Suspect\Offline\Emergency Mode 로 변경되었을 것이다..

이제 쿼리 분석기에서 해당 디비에 접속해서..
SELECT 쿼리 하나 날려본다..
결과가 잘 나오면 작업 완료..

여기까진 SQLer의 거북엄마 님의 강좌 내용이었고..
http://sqler.pe.kr/FriendLec/TurtleMa/LecM/a09.asp
이후에 이 SELECT 만 되는 디비를 통째로 다른 서버로 옮겨서 복원한 건 삽질 내용이므로..공개 불가..

You may also like...