/*
tempdb 데이터베이스 이동
tempdb 데이터베이스의 크기와 물리적인 배치가 시스템의 성능에 영향을 미칠 수 있으므로
tempdb를 확장하거나 이동하는 작업을 수행하는 경우가 종종 발생한다.
다음에 나오는 일련의 작업은 동일한 SQL Server 인스턴스에서 tempdb를 다른 위치로 이동하는 방법을 보여준다.
본 작업은 반드시 서비스가 중지된, 서버 점검 시간에 이루어져야 한다.
*/
--<<<tempdb를 디스크상의 다른 위치로 이동하기>>>
--1.tempdb의 논리파일 이름 확인
use master
go
SELECT name, physical_name as Current_Location, state_desc FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb')
GO
/*
결과
name Current_Location state_desc
------------------ ------------------------------------------------------------------------------------------- -------------
tempdev C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\tempdb.mdf ONLINE
templog C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\templog.ldf ONLINE
*/
--2.ALTER DATABASE 사용하여 파일 위치 변경
--반드시 해당 하는 디스크 드라이브 및 타겟 폴더가 존재해야 한다.
ALTER DATABASE tempdb
MODIFY FILE
(NAME = tempdev, FILENAME = 'D:\TempdbData\tempdb.mdf')
GO
ALTER DATABASE tempdb
MODIFY FILE
(NAME = templog, FILENAME = 'E:\TempdbLog\templog.ldf')
GO
/*
성공 결과
시스템 카탈로그에서 파일 "tempdev"이(가) 수정되었습니다. 새 경로는 다음에 데이터베이스가 시작될 때 사용됩니다.
시스템 카탈로그에서 파일 "templog"이(가) 수정되었습니다. 새 경로는 다음에 데이터베이스가 시작될 때 사용됩니다.
*/
--3.SQL Server를 중지하고 다시 시작한다.
--4.SQL Server 서비슥가 시작된것을 확인후, 제대로 이동이 되었는지 확인
SELECT name, physical_name as Current_Location, state_desc FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb')
GO
--5.기존 위치에 존재하는 tempdb 파일을 삭제한다.
--tempdb는 SQL Server가 재시작할때마다 재생성을 거치므로 기존의 tempdb 파일들을 새로운 위치로 이동할 필요없다.




