2007~2011/SQL Server2008. 7. 29. 22:01

SQL Server 2005 시스템 데이터베이스 중 msdb, model, tempdb 에 대해서 데이터 파일과 로그 파일을 이동하는 방법을 아래와 같이 정리하였습니다. (master 및 리소스 데이터베이스는 별도 포스팅할 계획입니다)

msdb, model, tempdb 의 데이터, 로그 파일을 변경하는 방법은 동일합니다.

데이터베이스 이동에 앞서 SQL Server 서비스 외 다른 SQL 관련 서비스는 모두 중지하는 것을 권장하며, 서비스 포트를 변경하여 다른 사용자의 유입을 차단하는 것도 권장하는 방법입니다.


[msdb 데이터베이스 이동]

1. 데이터베이스 파일의 논리 이름을 확인합니다.

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


2. mdf, ldf 파일 위치 정보를 변경합니다.

ALTER DATABASE msdb MODIFY FILE (NAME=MSDBData, FILENAME='D:\Data\msdbdata.mdf')
ALTER DATABASE msdb MODIFY FILE (NAME=MSDBLog, FILENAME='D:\Data\msdblog.ldf')


3. SQL 인스턴스를 중지한 후 파일을 새 위치로 이동합니다.


4. SQL 인스턴스를 시작합니다.


5. 1번에서 사용한 쿼리를 실행하여 변경된 정보를 확인합니다.



[model 데이터베이스 이동]

1. 데이터베이스 파일의 논리 이름을 확인합니다.

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


2. mdf, ldf 파일 위치 정보를 변경합니다.

ALTER DATABASE model MODIFY FILE (NAME=MSDBData, FILENAME='D:\Data\model.mdf')
ALTER DATABASE model MODIFY FILE (NAME=MSDBLog, FILENAME='D:\Data\modellog.ldf')


3. SQL 인스턴스를 중지한 후 파일을 새 위치로 이동합니다.


4. SQL 인스턴스를 시작합니다.


5. 1번에서 사용한 쿼리를 실행하여 변경된 정보를 확인합니다.



[tempdb 데이터베이스 이동] 

1. 데이터베이스 파일의 논리 이름을 확인합니다.

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


2. mdf, ldf 파일 위치 정보를 변경합니다.

ALTER DATABASE tempdb MODIFY FILE (NAME=MSDBData, FILENAME='D:\Data\tempdb.mdf')
ALTER DATABASE tempdb MODIFY FILE (NAME=MSDBLog, FILENAME='D:\Data\templog.ldf')


3. SQL 인스턴스를 중지한 후 다시 시작합니다.
   (SQL Server 인스턴스를 시작할 때마다 tempdb는 자동 생성되므로 파일을 이동할 필요가 없습니다)


4. 1번에서 사용한 쿼리를 실행하여 변경된 정보를 확인합니다.


5. tempdb.mdf, templog.ldf 파일을 원래의 위치에서 삭제합니다.



[참고자료]
시스템 데이터베이스 이동
http://technet.microsoft.com/ko-kr/library/ms345408.aspx


작성자 : Lai Go / 작성일자 : 2008.07.29

Posted by Lai Go