DB Attach And Detach

다른 드라이브로 변경하시려면 우선은 디비에서 옮기려고하는 DB를 따로 분리해야 합니다.

그러기 위해서 사용하는 것이 master db의 storeprocedure를 보면 sp_detach_db 가 있습니다. sp를 사용하여 데이터베이스에서 분리를 시킴니다.

예제> sp_detach_db ‘데이터베이스명’

분리시킨 데이터베이스의 mdf 와 ldf 는 이제 삭제 혹은 이동이 가능합니다. 두개의 파일을 다른 드라이브로 이동을 시킵니다.

그리고 이동시킨 데이터베이스의 파일을 기존의 데이터베이스로 붙여야 정상적인 사용이 가능합니다. 그러기 위해서 사용하는 stroreprocedure가 sp_attach_db 입니다.

예제> sp_attach_db ‘데이터베이스명’, ‘mdf 파일경로’, ‘ldf 파일경로’

이렇게 하시면 기존의 데이터베이스명에 경로가 다르게 설정되게 됩니다.

위와같이 복잡한 과정을 거치는 이유는 데이터베이스의 트리에 해당 데이터베이스가 보인다는 것은 사용을 하고 있다는 것입니다. 그럼 삭제 혹은 이동이 불가능 합니다. MS-SQL에서 사용하고 있기 때문에 lock이 걸린 상태입니다. 그렇기 때문에 MS-SQL사용을 해제한후 해당 파일을 옮기고 다시 그 파일을 데이터베이스에 다시 붙이는 방법 밖에 없습니다.

저는 지금 이렇게 사용하고 있습니다. 더 좋은 방법이 있으면 알려 주시기 바랍니다.

위에서 명심할 것은 왜 그냥 옮기지 못할까??와 sp_detach_db, sp_attach_db의 사용법을 잘 알고 하셔야 합니다. 잘못사용하면 안되니까요 ^^;;

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다