반응형
  1. /**********************************************************************************************
    -- 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'이(가) 작성되었습니다.
    */

반응형

+ Recent posts