MSSQL - mdf, ldf 파일 이전


mdf, ldf 용량이 많아 다른 파티션의 드라이버로 옮겨야 할 경우.

USE MASTER
GO

-- 1. 파일의 논리 이름을 확인합니다.
SELECT file_id, name, physical_name  FROM sys.master_files WHERE database_id = db_id('DBNAME');
/* DBNAME, DBNAME_LOG */

-- 2. 30초 후 모든 작업을 롤백하고 단일 사용자 모드로 전환합니다.
ALTER DATABASE DBNAME SET SINGLE_USER WITH ROLLBACK AFTER 30


-- 3. DBNAME 데이터베이스 오프라인 상태로 전환합니다.
ALTER DATABASE DBNAME SET OFFLINE


-- 4. mdf,ldf 파일 위치를 변경합니다.


-- 5. mdf 파일 위치 정보를 변경합니다.
ALTER DATABASE DBNAME MODIFY FILE (NAME=DBNAME, FILENAME='E:\MSSQLDATA\DBNAME.mdf')


-- 6. ldf 파일 위치 정보를 변경합니다.
ALTER DATABASE DBNAME MODIFY FILE (NAME=DBNAME_1, FILENAME='E:\MSSQLDATA\DBNAME.ldf')


-- 7. 데이버테이스를 온라인 상태로 전환합니다.
ALTER DATABASE DBNAME SET ONLINE


--8. 멀티 사용자 모드로 변경합니다.
ALTER DATABASE DBNAME SET MULTI_USER


-- 9. 정상적으로 변경되었는지 확인합니다.
SELECT  name, physical_name  AS CurrentLocation, state_desc  FROM  sys.master_files
WHERE  database_id  = DB_ID(N'DBNAME');