블로그 이미지
redkite

카테고리

분류 전체보기 (291)
00.SI프로젝트 산출물 (0)
00.센터 운영 문서 (0)
01.DBMS ============.. (0)
01.오라클 (117)
01.MS-SQL (15)
01.MySQL (30)
01.PostgreSql (0)
01.DB튜닝 (28)
====================.. (0)
02.SERVER ==========.. (0)
02.서버-공통 (11)
02.서버-Linux (58)
02.서버-Unix (12)
02.서버-Windows (2)
====================.. (0)
03.APPLICATION =====.. (11)
====================.. (0)
04.ETC =============.. (0)
04.보안 (5)
====================.. (0)
05.개인자료 (1)
06.캠핑관련 (0)
07.OA관련 (1)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

ALTER DATABASE 재배치 프로시저를 사용하여 사용자 데이터베이스를 이동하는 방법을 정리하였습니다.

일반적으로 동일한 SQL Server 인스턴스 내에서 파일 이동이 필요할 경우에 이 방법을 사용하며, 만약 다른 인스턴스나  다른 SQL Server로 이동한다면 분리 및 연결(sp_attach_db, sp_detach_db 시스템 저장 프로시져) 방법 또는 백업 및 복원 방법을 이용하면 됩니다.


[시나리오]
1. 데이터베이스명 : LAIGO

2. 변경 전 파일 경로
   1) C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\LAIGO.mdf
   2) C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\LAIGO_log.ldf

3. 변경 후 파일 경로
   1) D:\Data\laigo.mdf  
   2) D:\Data\laigo_log.ldf


[작업절차]


USE MASTER
GO

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


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

** 에러 발생 시 세션 KILL 후에 3번 스탭 진행
select d.name, d.dbid, spid, login_time, nt_domain, nt_username, loginame   from sysprocesses p inner join sysdatabases d on p.dbid = d.dbid where d.name = 'MonitoringDB'
go 
kill 51 --spid
go

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

ALTER DATABASE MonitoringDB SET OFFLINE


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


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

ALTER DATABASE MonitoringDB MODIFY FILE (NAME=MonitoringDB, FILENAME='d:\SQLDATA\MonitoringDB.mdf')


-- 6. ldf 파일 위치 정보를 변경합니다.
ALTER DATABASE LAIGO MODIFY FILE (NAME=LAIGO_LOG, FILENAME='d:\data\laigo_log.ldf')


ALTER DATABASE MonitoringDB MODIFY FILE (NAME=MonitoringDB_log, FILENAME='d:\SQLDATA\MonitoringDB_log.ldf')


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

ALTER DATABASE MonitoringDB SET ONLINE 


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

ALTER DATABASE MonitoringDB SET MULTI_USER


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





[참고자료]
사용자 데이터베이스 이동
http://msdn.microsoft.com/ko-kr/library/ms345483.aspx

방법: 분리 및 연결을 사용하여 데이터베이스 이동(Transact-SQL)
http://msdn.microsoft.com/ko-kr/library/ms187858.aspx

시스템 데이터베이스 이동
http://technet.microsoft.com/ko-kr/library/ms345408.aspx

 

'01.MS-SQL' 카테고리의 다른 글

[MSSQL]MS-SQL 1일차 - 기본 사용법 + 개념 교육  (0) 2013.04.01
[MSSQL]MS-SQL 설치  (0) 2013.04.01
[MSSQL]Windows 64Bit And MS-SQL 32Bit  (0) 2012.12.19
[MSSQL]Transaction Kill  (0) 2012.12.19
[MSSQL]데이터 파일 축소  (0) 2012.12.19
Posted by redkite
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함