일하기/기타

[MSSQL2005] 운영중 데이터 파일 이동하기

아펙트 2009. 10. 30. 14:40

특정 드라이브에 I/O가 몰릴때, 특정 데이터 파일들을 이동시켜야 하는 경우가 생긴다.
운영환경일 경우엔 alter database ... move file이걸 사용할 수가 없다.

이 경우엔 다른 드라이브에 파일을 추가한후에 해당파일을 비우고 삭제하는 방식을 사용한다.
Management Studio에서 파일축소/데이터축소에서 [같은 파일 그룹의 다른파일로 데이터를 마이그레이션하여 파일비우기]
를 한후에  데이터베이스 속성에서 파일페이지에서 해당 파일을 지우는 작업과 동일하다.

-- 요건 현재 파일들 정보보는것.
select * from sys.database_files;

1. 일단 같은 그룹으로 파일을 추가한다

alter database testDb
add file ( Name = test_Tr1,
      FileName = 'K:\MSSQL\test_Tr2.ndf',
      Size = 1000MB,
      MaxSize = 100000MB,
      FileGrowth = 100MB) to FileGroup UserDataTr;

2. 파일을 비우기 하자

dbcc shrinkfile( test_Tr1, EMPTYFILE);

3. 비워진 파일을 삭제

alter database testDb
remove file test_Tr1;