반응형
- /**********************************************************************************************
-- Title : [2k5] .mdf, .ldf 파일 복사를 통한 복구
-- Reference : hanbitbook.co.kr
-- Key word : for attach attach_rebuild_log
**********************************************************************************************/
--테스트용 DB 생성
drop database [testdb3];
CREATE DATABASE [testDB3] ON PRIMARY
( NAME = N'testDB3'
, FILENAME = N'd:\testDB3.mdf'
)
LOG ON
( NAME = N'testDB3_log'
, FILENAME = N'd:\testDB3_log.ldf'
);
--데이터 저장
USE [testDB3];
CREATE TABLE tbl1(id int identity, name CHAR(10));
INSERT INTO tbl1 VALUES ('박지성');
INSERT INTO tbl1 VALUES ('박주영');
INSERT INTO tbl1 VALUES ('조재진');
SELECT * FROM tbl1;
--시스템 DB 백업
BACKUP DATABASE master TO DISK='d:\master.bak'
WITH INIT;
BACKUP DATABASE msdb TO DISK='d:\msdb.bak'
WITH INIT;
BACKUP DATABASE model TO DISK='d:\model.bak'
WITH INIT;
--master DB 손상
--인스턴스 중지 후 master.mdf 파일 이름 변경 후 다시 시작하면 에러 발생
/*
-- testDB3를 다른 인스턴스에서 급하게 복구하여 사용한다 가정.
-- 다른 인스턴스에서 수행(현재 인스턴스가 다른 인스턴스라 가정하자.)
-- testDB3를 offline 시키고 .mdf와 .ldf에 _2로 copy한다.
-- testDB3를 online 시킨 후 삭제한다.
*/
--.mdf/.ldf 파일 존재시(for attach)
CREATE DATABASE [testDB3] ON PRIMARY
( NAME = 'testDB3'
, FILENAME = 'd:\testDB3_2.mdf'
)
LOG ON
( NAME = N'testDB3_log'
, FILENAME = N'd:\testDB3_2_log.ldf'
)
FOR ATTACH;
--.mdf파일만 존재시(for attach attach_rebuild_lod)
CREATE DATABASE [testDB3] ON PRIMARY
( NAME = 'testDB3'
, FILENAME = 'd:\testDB3_2.mdf'
)
FOR ATTACH ATTACH_REBUILD_LOG;
/*
파일 활성화 오류입니다. 물리적 파일 이름 "d:\testDB3_log.ldf"이(가) 잘못된 것 같습니다.
새 로그 파일 'd:\testDB3_log.LDF'이(가) 작성되었습니다.
*/
반응형