세이박스

dat 만 가지고 데이터베이스를 복구할 수 있습니까?

데이타베이스
Q . .dat 만 가지고 데이터베이스를 복구할 수 있습니까?
Friday, November 24, 2000

A . 일반적으로 6.5 이하 버전에서는 백업을 받아 놓지 않고 자주 발생을 하는 일이다.
아래 글은 정원혁씨 사이트 참조

DISK REINIT, DISK REFIT을 수행하십시오.

1 SQL 서버를 single user mode 로 시작합니다. 옵션만 /f 대신 /m을 사용하면 됩니다.

C:MSSQLBINNSQLSERVR /m
2 ISQL/w를 수행하고 DISK REINIT을 수행합니다. 예를 들어 두 디바이스 파일로 구성되어 있었다면 다음과 같이 합니다.
DISK REINIT
NAME = 'dist' -- 이름은 종전과 똑같지 않아도 됩니다.
, PHYSNAME = 'd:mssqldatadist.dat'
-- 정확한 디바이스 파일의 path를 적어줍니다.
, SIZE = 2560
-- 파일의 크기를 근거하여 page 로 환산한 크기를 적어 줍니다.
-- 예를 들면 5MB * 512 = 2560 page 입니다.
, VDEVNO = 10
-- SQL 서버 안에서 유일한 디바이스 번호를 적어 줍니다.
--자세한 것은 Books Online/ DISK INIT 명령을 참조합니다.
--결과: This command did not return data, and it did not return any rows
GO
DISK REFIT
-- 결과: Warning: Disk Refit may not have the correct segment map information in Sysusages. Please review these after the command completes to verify their accuracy.
GO

-- 다시 이 작업을 남은 디바이스에 대해서도 수행합니다.
DISK REINIT
NAME = 'myDev'
, PHYSNAME = 'd:mssqldatamyDev.dat'
, SIZE = 1536
, VDEVNO = 11
GO
DISK REFIT
3 1 에서 사용한 프롬프트에서 Control + C를 눌르고 나타나는 질문에 Y를 입력합니다.
4 다시 정상적으로 SQL 서버를 시작합니다.

만약 이 방법으로 복구가 안 된다면 다음의 방법으로 검증을 해 보십시요.
1 testpubs라는 데이터베이스를 임의로 만듭니다.