연구개발/SQL2005

[SQL2005 Guide] 데이터베이스 파일 이동하기

알 수 없는 사용자 2009. 6. 18. 21:10

데이터베이스 파일 이동

 

ALTER DATABASE 문을 사용하여 파일 정보를 변경하거나 데이터베이스 분리 연결 시스템 저장 프로시저를 사용하여 데이터베이스를 이동할 있습니다.

데이터베이스를 이동할 때는 분리 연결 작업보다 ALTER DATABASE 이용하는 것이 좋습니다. ALTER DATABASE 문의 FILENAME 절에 파일 위치를 지정하면 리소스 데이터베이스 파일을 제외한 시스템 데이터베이스와 사용자 데이터베이스의 파일을 이동할 있습니다. 절차를 수행하려면 ALTER DATABASE 문을 실행할 데이터베이스 파일의 논리 이름을 알고 있어야 하며, sys.master_files 카탈로그 뷰에서 name 열을 조회하면 논리 파일 이름을 확인할 있습니다.

 

 [따라하기] ALTER DATABASE 문을 사용하여 사용자 데이터베이스 파일 이동하기

C 드라이브에 데이터 파일과 트랜잭션 로그 파일이 있는 데이터베이스를 데이터 파일은 D 드라이브, 트랜잭션 로그 파일은 E 드라이브로 이동하는 예제입니다.

 

데이터베이스명

Sample

데이터 파일명

Sample_dat

변경 데이터 파일 위치

C:\DBdata\Sample_dat.mdf

변경 데이터 파일 위치

D:\DBdata\Sample_dat.mdf

로그 파일명

Sample_log

변경 로그 파일 위치

C:\DBlog\Sample_log.ldf

변경 로그 파일 위치

E:\DBlog\Sample_log.ldf

 

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

SELECT file_id, name, physical_name FROM sys.master_files

WHERE database_id = db_id('Sample');

GO

 

2.       사용자들에게 공지하여 작업하고자 하는 데이터베이스에 대한 연결을 해제하도록 합니다. 만일 해제되지 않는 연결이 남아 있어서 문제가 되는 경우에는 다음과 같은 방법을 사용하여 연결을 해제할 있습니다.

USE Sample;

GO

ALTER DATABASE Sample SET SINGLE_USER

WITH ROLLBACK AFTER 60;

GO

 

3.       데이터베이스를 오프라인 상태로 만듭니다.

ALTER DATABASE Sample SET OFFLINE

GO

 

4.       파일을 새로운 위치로 이동합니다.

 

5.       데이터베이스 파일 위치 정보를 변경합니다.

ALTER DATABASE Sample MODIFY FILE (

NAME = Sample_dat,

FILENAME = 'D:\DBdata\Sample_dat.mdf');

GO

ALTER DATABASE Sample MODIFY FILE (

NAME = Sample_log,

FILENAME = 'E:\DBlog\Sample_log.ldf ');

GO

 

6.       데이터베이스를 온라인 상태로 변경합니다.

ALTER DATABASE Sample SET ONLINE;

GO

 

만일 데이터베이스를 다른 서버로 이동하고자 하는 경우에는 분리 연결 작업을 사용합니다.