본문 바로가기
데이타베이스

mdf화일만 또는 mdf와 ldf 화일만 남았을때...

by 세이박스 2008. 10. 9.
반응형

10. 백업과 복구 - 4. mdf화일만 또는 mdf와 ldf 화일만 남았을때..
이번에 소개해드릴 내용은 약간은 쉬운? ^_^;;
간단한 내용 입니다.
앞에서 설명드린 FAQ들에 대해서 실질적인 내용을 답변 드리지요.
또한 하도 많이 받는 질문이라 아예 페이지를 만들었으니 참고 하시길 바랍니다.

Q. 풀백업과 로그백업을 혼용해 지속적으로 백업하고 있습니다.
개발자의 실수로 update 회원테이블 set 이름 = '아무개'
로 WHERE절 없이 update를 해 버렸습니다. 복구할 방법이 없을까요?

A. 가능합니다.
1. 복구 모델이 전체 모델일것(DB를 생성하면 기본입니다.)
2. 문제 발생후 풀백업이나 로그에 쓰지 않는 작업을 하지 않았을것
이 두 조건이 맞다면 즉시 로그를 with no_truncate 옵션으로 백업하신후..
Stop at 명령으로 복구할 수 있습니다.
 
Q. 지속적으로 전체 백업만을 받아 왔습니다.
개발자의 실수로 update 회원테이블 set 이름 = '아무개'
로 WHERE절 없이 update를 해 버렸습니다. 복구할 방법이 없을까요?

A. 제약 조건이 있습니다.
1. 복구 모델이 전체 모델일것(DB를 생성하면 기본입니다.)
2. 문제 발생후 풀백업이나 로그에 쓰지 않는 작업을 하지 않았을것
3. 로그 백업이 가능할것 입니다.
만약 이 세 조건이 맞다면 바로 로그를 with no_truncate 옵션으로 백업하신후..
Stop at 명령으로 복구할 수 있습니다.

Q. 풀백업과 로그백업을 혼용해 지속적으로 백업하고 있습니다.
개발자의 실수로 update 회원테이블 set 이름 = '아무개'
로 WHERE절 없이 update를 해 버렸습니다. 복구할 방법이 없을까요?

A. 가능합니다.
1. 복구 모델이 전체 모델일것(DB를 생성하면 기본입니다.)
2. 문제 발생후 풀백업이나 로그에 쓰지 않는 작업을 하지 않았을것
이 두 조건이 맞다면 즉시 로그를 with no_truncate 옵션으로 백업하신후..
Stop at 명령으로 복구할 수 있습니다.

Q. 이전 서버에서 사용하던 시스템의 문제로 해당하는 데이터베이스의
mdf 화일과 ldf 화일만 남았습니다. 새로 설치하는 시스템에 복구가 가능할까요?

A. 이전 서버와 문자셋 정보(sp_helpsort 명령으로 보실수 있습니다.)가 같고
이전에 사용하던 SQL서버가 정상적인 상태로 종료 되었을때(엔터프라이즈 관리자에서
SQL서버를 스탑 시켰거나.. 정상적으로 윈도우 시스템을 종료시킨 경우 - 해당
mdf 화일과 ldf 화일이 정상적으로 닫혔을 경우) 복구가 가능하며 이때 사용하는 명령은

EXEC sp_attach_db 'pubs'
, 'c:Program FilesMicrosoft SQL ServerMSSQLDatapubs.mdf'
, 'c:Program FilesMicrosoft SQL ServerMSSQLDatapubs_log.ldf'

명령으로 복구할 수 있습니다.

Q. 이전 서버에서 사용하던 시스템의 문제로 해당하는 데이터베이스의
mdf 화일만 남았습니다. 새로 설치하는 시스템에 복구가 가능할까요?

A. 가능합니다.
이전 서버와 문자셋 정보(sp_helpsort 명령으로 보실수 있습니다.)가 같고
이전에 사용하던 SQL서버가 정상적인 상태로 종료 되었을때(엔터프라이즈 관리자에서
SQL서버를 스탑 시켰거나.. 정상적으로 윈도우 시스템을 종료시킨 경우 - 해당
mdf 화일이 정상적으로 닫혔을 경우) 복구가 가능하며 이때 사용하는 명령은

EXEC sp_attach_single_file_db 'pubs'
, 'c:Program FilesMicrosoft SQL ServerMSSQLDatapubs.mdf'
 
명령으로 복구하실 수 있습니다.

Q. 이전시스템에서 사용하던 풀 백업본이 있습니다.
새로 시스템을 설치한후 이 풀 백업본을 복구하려 하는데 방법이 없을까요?

A. 가능합니다.
약간 다른 방식으로 아래처럼 하심 됩니다.
1. 같은 이름의 db를 만든다 (텅빈 db)
2. 빈 db를 그냥 풀 백업 한다.
3. 원본서버에서 가져온 백업본으로 리스토어 한다.
4. 리스토어시 옵션의 강제로 덮어쓰기 하시면 됩니다.
의 순서로 진행하시면 무리없이 하실 수 있습니다.

반응형