2012. 1. 12. 08:57

이전 글에서 master DB를 옮기는 것을 했습니다.
(참고 : [MSSQL2008] master DB 옮기기)

마스터DB를 제외한 시스템DB들은 쿼리를 이용하여 간단하게 옮길수 있습니다.

1.경로 확인

로컬 파일 위치를 확인합니다.
마스터DB 때와 마찬가지로 메니지먼트 스튜디오로도 확인이 가능합니다.
아래 쿼리로도 가능하죠.

SELECT name, physical_name AS CurrentLocation, state_desc 
FROM sys.master_files
WHERE database_id = DB_ID(N'model');

SELECT name, physical_name AS CurrentLocation, state_desc 
FROM sys.master_files
WHERE database_id = DB_ID(N'msdb');

SELECT name, physical_name AS CurrentLocation, state_desc 
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');


2.파일 옮기기

1에서 확인한 경로로가서 파일을 원하는 위치로 복사하시면 되지만 만약 사용중이라 옮길수 없다는 메시지가 출력된다면 DB를 중지 시킨후 복사하셔야 합니다.

복사후 DB를 시작시키고 다음 쿼리를 작성하여 실행 합니다.

--모델
ALTER DATABASE model
MODIFY FILE( NAME = modeldev
   , FILENAME = '[옮길경로]\model.mdf' );

ALTER DATABASE model
MODIFY FILE( NAME = modellog
   , FILENAME = '[옮길경로]\modellog.ldf' );
   
   
--msdb
ALTER DATABASE msdb
MODIFY FILE( NAME = MSDBData
   , FILENAME = '[옮길경로]\MSDBData.mdf' );

ALTER DATABASE msdb
MODIFY FILE( NAME = MSDBLog
   , FILENAME = '[옮길경로]\MSDBlog.ldf' );


--tempdb
ALTER DATABASE tempdb
MODIFY FILE( NAME = tempdev
   , FILENAME = '[옮길경로]\tempdb.mdf' );

ALTER DATABASE tempdb
MODIFY FILE( NAME = templog
   , FILENAME = '[옮길경로]\templog.ldf' );

 
3.DB가 실행되지 않는 다면?

DB가 실행되지 않으면 마스터DB 때와 마찬가지로 폴더 권한을 확인해보셔야 합니다.