일반적으로 mdf파일이 정상적으로 분리됐을때의 DB복구방법은

-EM(Enterprise Manager)를 이용한 데이터베이스 연결

1. 우선 연결할 대상이 되는 *.mdf, *.ldf 파일을 특정한 디렉토리에 위치를 시킵니다. 예로 test.mdf, test_log.ldf 파일을 E:\Data 폴더에 있다고 가정합니다.

2. "데이터베이스" 위에서 마우스 오른쪽 버튼을 눌러 단축메뉴를 표시하면 [모든작업(K)] - [ 데이터베이스 연결(A)]을 선택할 수 있습니다.

3. 데이터베이스 연결을 위한 대화창이 표시됩니다.

4. 찾기 버튼 [...] 을 누르면 연결할 데이터베이스 파일의 위치를 쉽게 찾을 수 있는 탐색창이 뜹니다. 이 화면에서 연결하고자 하는 데이터베이스 파일 *.mdf 을 선택하면 됩니다.

5. 데이터베이스 파일을 선택한 후의 화면입니다. 원하는 경우 "다음 이름으로 연결(A)" 부분에 다른 이름을 주어 기존의 데이터베이스와는 다른 이름을 갖는 데이터베이스로 연결을 할 수 있습니다.

6. [확인] 버튼을 누르면 데이터베이스 연결이 완료됩니다.


-sp_attach_db 또는 sp_attach_single_file_db 시스템 저장프로시져를 이용한 데이터베이스 연결

USE master
GO
EXEC sp_attach_db 'test', 'E:\Data\test.mdf', 'E:\Data\test_log.ldf'

또는 MDF파일만 있을때

EXEC sp_attach_single_file_db @dbname = 'test',
@physname = 'E:\Data\test.mdf'

등의 방법을 사용합니다.

하지만 정상적으로 분리되지않은 MDF파일은 복구시에 자신이 가지고있던 LDF파일만을 찾습니다.

위의 정상적인방법으론 계속되는 에러뿐입니다.

MDF파일을 복구하기위한 방법은

1.MDF파일의 DB명으로 빈 디비생성
2.DB정지후 생성한디비의 MDF파일과 가지고있는 MDF파일 교체
3.DB시작을 하면 suspect모드로 빠짐
이후부터는 suspect모드에서의 복구문서 참조->http://ntadmin.inet.co.kr/managed/dbsuspect.mht

이렇게 복구가 된다해도 DB의 자료는 거의 복구가되지만 여러 키값, 인덱스까지 제대로 잡히진 않습니다.
DB관리시 철저히 준비를 하여야 하며 제대로된 백업 및 복구방법을 사용하여야 할것입니다.
2005/06/15 12:29 2005/06/15 12:29

트랙백 주소 :: http://thinkit.or.kr/database/trackback/68