본문 바로가기

DBMS/SQL Server

[SQL Server] MDF, LDF 파일을 이용한 데이터베이스 복구

 

데이터베이스를 복구하는 방법은 여러가지가 있다.

백업 파일로 복구하는 방법도 있지만 백업 파일이 없을 경우 MDF, LDF 파일로 복구가 가능하다.

여기서 MDF 파일은 필수적으로 있어야 하지만 LDF 파일은 없어도 복구가 가능하다.

 

MDF, LDF 파일을 이용해서 복구할 때 2가지 방법이 있다.

sp_attach_db 시스템 프로시저를 이용하거나 CREATE DATABASE...FOR ATTACH 구문을 사용할 수 있다.

 

시스템 프로시저를 사용하여 ATTACH 하는 구문 

 sp_attach_db [ @dbname= ] 'dbname'

            , [ @filename1= ] 'filename_n' [ ,...16 ]


 

DDL문을 사용하여 ATTACH 하는 구문

 CREATE DATABASE database_name

    ON <filespec> [ ,...n ]

    FOR { ATTACH [ WITH <service_broker_option> ]

        | ATTACH_REBUILD_LOG }


 

sp_attach_db 시스템 프로시저는 16개 까지의 파일을 지정할 수 있다.

17개 이상의 파일을 지정해야 하는 경우에는 CREATE DATABASE...FOR ATTAH 구문을 사용하면 된다.

 

사용 예제는 다음과 같다.

 -- 해당 데이터베이스 분리

 sp_detach_db 'Pubs'

 

 -- 해당 데이터베이스 연결

 sp_attach_db @dbname = N'Pubs', 

   @filename1 = N'c:\SQL Server 2000 Sample Databases\pubs.mdf',

   @filename2 = N'c:\SQL Server 2000 Sample Databases\pubs_log.ldf'