SQL Server 2005 시스템 데이터베이스 이동

 

 

 

 

 

 

 

목차

 

1. 참고 사이트


2. 정보


3. Master 및 리소스 데이터베이스 이동

 

4. msdb 데이터베이스 이동

 

5. model 데이터베이스 이동


6. tempdb 데이터베이스 이동

 

 

 


1. 참고 사이트

 

시스템 데이터베이스 이동

http://technet.microsoft.com/ko-kr/library/ms345408(SQL.90).aspx

 


2. 정보


1. 운영체제
- Windows Server 2003 R2 Ent SP2

 

2. 이동 전 파일 경로
- C:\Sqldata\Data

 

3. 이동 후 파일 경로
- C:\Move\Data

 


3. Master 및 리소스 데이터베이스 이동

 

리소스 데이터베이스는 master 데이터베이스의 위치에 따라 달라집니다. 리소스 데이터와 로그 파일은 함께 있어야 하며 master 데이터 파일(master.mdf)과 같은 위치에 있어야 합니다. 따라서 master 데이터베이스를 이동하면 리소스 데이터베이스도 master 데이터 파일과 동일한 위치로 이동해야 합니다. 리소스 데이터베이스를 압축하거나 암호화된 NTFS 파일 시스템 폴더에 두지 마십시오. 이렇게 하면 성능이 저하되고 업그레이드할 수 없게 됩니다.

 

1. 시작 -모든 프로그램 - Microsoft SQL Server 2005 - 구성 도구 - SQL Server Configuration Manager 를 클릭 합니다.

 

2. SQL Server Configuration Manager 창에서, SQL Server 2005 서비스 노드에서 인스턴스(예: SQL Server (MSSQLSERVER)) 에서 우클릭 후 속성 을 클릭 합니다.

 

3. SQL Server (MSSQLSERVER) 등록 정보 창에서, 고급 탭을 클릭 합니다.

 

4. 시작 매개 변수 값을 편집하여 master 데이터베이스 데이터와 로그 파일에 계획된 위치를 가리키고 확인을 클릭합니다. 필요에 따라 오류 로그 파일을 이동할 수도 있습니다.
데이터 파일의 매개 변수 값은 -d 매개 변수 뒤에 와야 하고 에러 로그는 –e 매개 변수 뒤에 와야 하고 로그 파일의 값은 -l 매개 변수 뒤에 와야 합니다. 다음 예에서는 master 데이터와 로그 파일의 기본 위치에 대한 매개 변수 값을 보여 줍니다.


-dC:\Sqldata\Data\master.mdf;-eC:\Sqldata\LOG\ERRORLOG;-lC:\Sqldata\Data\mastlog.ldf
master 데이터와 로그 파일에 계획된 재배치가 E:\SQLData인 경우 매개 변수 값은 다음과 같이 변경됩니다.


-dC:\Move\Data\master.mdf;-eC:\Move\LOG\ERRORLOG;-lC:\Move\Data\mastlog.ldf

 

5. 인스턴스 이름 에서 우클릭 후 중지 를 클릭 합니다.

 

6. master.mdf 및 mastlog.ldf 파일을 새 위치로 이동합니다.

 

 

7. 명령 프롬프트에서 다음 명령 중 하나를 입력하여 SQL Server 인스턴스를 마스터 전용 복구 모드로 시작합니다. 이러한 명령에 지정된 매개 변수는 대/소문자를 구분합니다. 표시된 대로 매개 변수를 지정하지 않으면 명령이 실패합니다.


기본(MSSQLSERVER) 인스턴스의 경우 다음 명령을 실행합니다.
NET START MSSQLSERVER /f /T3608


명명된 인스턴스의 경우 다음 명령을 실행합니다.
NET START MSSQL$instancename /f /T3608

 

8. sqlcmd 명령 또는 SQL Server Management Studio를 사용하여 다음 문을 실행합니다.

master 데이터 파일의 새 위치에 일치하도록 FILENAME 경로를 변경합니다. 데이터베이스 이름이나 파일 이름은 변경하지 마십시오.


ALTER DATABASE mssqlsystemresource
MODIFY FILE (NAME=data, FILENAME= 'C:\Move\Data\mssqlsystemresource.mdf');
GO
ALTER DATABASE mssqlsystemresource
MODIFY FILE (NAME=log, FILENAME= 'C:\Move\Data\mssqlsystemresource.ldf');
GO

 

9. mssqlsystemresource.mdf 및 mssqlsystemresource.ldf 파일을 새 위치로 이동합니다.

 

10. 다음 문을 실행하여 리소스 데이터베이스를 읽기 전용으로 설정합니다.

ALTER DATABASE mssqlsystemresource SET READ_ONLY;

 

11. sqlcmd 유틸리티 또는 SQL Server Management Studio를 종료합니다.

12. 인스턴스 에서 우클릭 후 시작 을 클릭 합니다.

 

13. 다음 쿼리를 실행하여 master 데이터베이스에 대한 파일 변경 내용을 확인합니다. 시스템 카탈로그 뷰나 시스템 테이블을 사용하면 리소스 데이터베이스 메타데이터를 볼 수 없습니다.


SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID('master');
GO

 

 

 

 

4. msdb 데이터베이스 이동

 

계획된 재배치 또는 예약된 유지 관리 작업의 일부로 시스템 데이터베이스 데이터나 로그 파일을 이동하려면 다음 단계를 따릅니다.

1. msdb / model데이터베이스의 논리적 파일 이름 및 디스크에서의 현재 위치를 확인합니다.
SELECT name, physical_name AS CurrentLocation
FROM sys.master_files
WHERE database_id = DB_ID(N'msdb');
GO

 

2. 이동할 각 파일에 대해 다음 문을 실행합니다.


ALTER DATABASE msdb MODIFY FILE (NAME=MSDBdata, FILENAME= 'C:\Move\Data\msdbdata.mdf');
ALTER DATABASE msdb MODIFY FILE (NAME=MSDBLog, FILENAME= 'C:\Move\Data\msdblog.ldf');

 

3. SQL Server 인스턴스를 중지하거나 시스템을 종료하여 유지 관리를 수행합니다.

 

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

 

5. SQL Server 인스턴스나 서버를 다시 시작합니다.

 

6. 다음 쿼리를 실행하여 파일 변경 내용을 확인합니다.
SELECT name, physical_name AS CurrentLocation
FROM sys.master_files
WHERE database_id = DB_ID(N'msdb');
GO

 

 

5. model 데이터베이스 이동

 

msdb 데이터베이스 이동 순서와 동일하기 때문에 스크린샷은 생략합니다.

 

1. model데이터베이스의 논리적 파일 이름 및 디스크에서의 현재 위치를 확인합니다.
SELECT name, physical_name AS CurrentLocation
FROM sys.master_files
WHERE database_id = DB_ID(N'model');
GO

 

2. 이동할 각 파일에 대해 다음 문을 실행합니다.
ALTER DATABASE model MODIFY FILE (NAME=MODEL, FILENAME= 'C:\Move\Data\model.mdf');
ALTER DATABASE model MODIFY FILE (NAME=MODELLog, FILENAME= 'C:\Move\Data\modellog.ldf');

 

3. SQL Server 인스턴스를 중지하거나 시스템을 종료하여 유지 관리를 수행합니다.

 

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

 

5. SQL Server 인스턴스나 서버를 다시 시작합니다.

 

6. 다음 쿼리를 실행하여 파일 변경 내용을 확인합니다.
SELECT name, physical_name AS CurrentLocation
FROM sys.master_files
WHERE database_id = DB_ID(N'model');
GO

 

 

6. tempdb 데이터베이스 이동

 

다음 예에서는 계획된 재배치의 일부로 tempdb 데이터와 로그 파일을 새 위치로 이동합니다.

참고:
SQL Server 인스턴스를 시작할 때마다 tempdb가 다시 생성되므로 데이터와 로그 파일을 물리적으로 이동할 필요는 없습니다. 3단계에서 서비스를 다시 시작하면 파일이 새 위치에 생성됩니다. 서비스를 다시 시작할 때까지는 tempdb에서 계속 기존 위치의 데이터와 로그 파일을 사용합니다.

 

1. tempdb 데이터베이스의 논리적 파일 이름 및 디스크에서의 현재 위치를 확인합니다.
SELECT name, physical_name AS CurrentLocation
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');
GO

 

2. ALTER DATABASE를 사용하여 각 파일의 위치를 변경합니다.
USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'C:\Move\Data\tempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = 'C:\Move\Data\templog.ldf');
GO


3. SQL Server 인스턴스를 중지한 후 다시 시작합니다.


4. 파일 변경 내용을 확인합니다.
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');


5. tempdb.mdf 및 templog.ldf 파일을 원래 위치에서 삭제 합니다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기