1. /**********************************************************************************************
    -- Title : [2k] MDF, LDF 파일을 사용한 복구
    -- Reference : dbRang.com
    -- Key word : sp_attach_db, sp_detach_db
    **********************************************************************************************/

    /* tempdb만큼은 alter database를 이용하여 이전한다. */

    -- 1. 단일 사용자 모드 변경
    USE MASTER
    GO

    ALTER DATABASE sample
    SET SINGLE_USER
    WITH ROLLBACK AFTER 5
    GO

    -- 2. 데이터베이스와 파일을 분리
    EXEC sp_detach_db 'sample', 'true'
    GO

    -- 3. 데이터베이스 파일을 이전할 위치로 copy

    -- 4. 데이터베이스 연결
    EXEC sp_attch_db 'sample'
       , 'F:\dbdata\sample_dat.mdf'
       , 'G:\dblog\sample_log.ldf'
    GO

    -- .mdf 파일만 있는 경우
    EXEC SP_ATTACH_DB N'Northwind', N'd:\northwnd.mdf'
    --장치 활성화 오류입니다. 물리적 파일 이름 'd:\Northwind_log.LDF'이(가) 잘못된 것 같습니다.
    --'d:\Northwind_log.LDF'(이)라는 새 로그 파일이 만들어졌습니다.

    -- 주의!!!
    --  ㅇ로그가 두개 이상인 경우 반드시 로그가 있어야만 attach가 된다.
    --    물론 로그 파일이 존재한 상태에서 SP_ATTACH_DB시 로그파일을 지정안해도 ATTACH된다.
    --  ㅇ이유는? 잘 몰겠다... 아키텍쳐상 그런거 같은데 그림이 안 그려진다.

    -- 명시적으로 sp_detach_db 작업을 사요하여 서버에서 이전에 분리된 데이터베이스에서만
    -- 아래 sp_attach_single_file_db를 사용할 수 있다.
    EXEC sp_attach_single_file_db 'Northwind', N'd:\northwind.mdf'
신고

+ Recent posts