728x90

SQL Server 2005 환경에서 시스템 데이터베이스(MASTER 및 리소스 데이터베이스)를 이동하는 방법을
정리하였습니다.

 
[시나리오]

1. 변경 전 파일 경로
   D:\99.Temp\master.mdf
   D:\99.Temp\mastlog.ldf
   D:\99.Temp\mssqlsystemresource.mdf
   D:\99.Temp\mssqlsystemresource.ldf
 
2. 변경 후 파일 경로
   C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\master.mdf
   C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\mastlog.ldf
   C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\mssqlsystemresource.mdf
   C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\mssqlsystemresource.ldf


 
[작업절차]
 
1. SQL Server Configuration Manager - SQL Server 2005 서비스 - 해당 인스턴스 - 속성 - 고급 -
    시작 매개 변수 변경
    Master 데이터베이스의 데이터와 로그가 저장될 경로로 시작 매개변수를 변경합니다.
    데이터 파일 매개 변수는 -d, 에러 로그는 -e, 로그 파일의 값은 -l 입니다.
 
    -dC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\master.mdf;
    -eC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG;
    -lC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\mastlog.ldf

사용자 삽입 이미지


































2. SQL Server 인스턴스를 중지합니다.
 
3. Master.mdf, master.ldf를 변경할 경로로 이동합니다.
 
4. SQL Server 인스턴스를 마스터 전용 복구 모드로 시작합니다.
   매개 변수는 대/소문자를 구분하며, 오류가 발생할 경우 이벤트 로그를 확인해 보십시오.
   기본(MSSQLSERVER) 인스턴스의 경우 다음 명령을 실행합니다.
 
   NET START MSSQLSERVER /f /T3608

 
5. Master 데이터베이스 파일을 새 위치에 일치하도록 파일 경로를 변경합니다.
 
   ALTER DATABASE mssqlsystemresource MODIFY FILE (NAME=data, FILENAME= 'C:\Program
   Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\mssqlsystemresource.mdf');
   GO

   ALTER DATABASE mssqlsystemresource MODIFY FILE (NAME=log, FILENAME= 'C:\Program
   Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\mssqlsystemresource.ldf');
   GO


사용자 삽입 이미지
























6. mssqlsystemresource.mdf 및 mssqlsystemresource.ldf 파일을 새 위치로 이동합니다.
 
7. 리소스 데이터베이스를 읽기 전용으로 설정합니다.
  
   ALTER DATABASE mssqlsystemresource SET READ_ONLY;

 
8. Sqlcmd 유틸리티를 종료합니다.
 
9. SQL Server  인스턴스를 중지한 뒤, 다시 시작합니다.
 
10. 정상적으로 변경되었는지 아래 쿼리를 통해 확인할 수 있습니다.
 
   SELECT name, physical_name AS CurrentLocation, state_desc
   FROM sys.master_files
   WHERE database_id = DB_ID('master');


 
name      CurrentLocation                                                             state_desc
--------------------------------------------------------------------------------------------------------------------
master    C:\Program Files\Microsoft SQL Server\...\Data\master.mdf      ONLINE
mastlog   C:\Program Files\Microsoft SQL Server\...\Data\mastlog.ldf       ONLINE
 
(2개 행 적용됨)
 


[참고자료]
시스템 데이터베이스 이동
http://technet.microsoft.com/ko-kr/library/ms345408.aspx


작성자 :  Lai Go /  작성일자 : 2008.08.01
728x90

SQL Server 2005 PRIMARY 파일 그룹 용량 부족에 따른 오류와 관련하여 아래와 같이 정리합니다.


[환경]
SQL Server 2005


[현상]
이벤트 형식:        오류
이벤트 원본:        MSSQLSERVER
이벤트 ID:        1105
사용자:                N/A
'PRIMARY' 파일 그룹이 꽉 찼으므로 데이터베이스 'LAIGODB'의 개체 'dbo.filetable'.'PK_filetable'에 공간을
할당할 수 없습니다. 필요 없는 파일을 삭제하거나, 파일 그룹의 개체를 삭제하거나, 파일 그룹에 파일을
추가하거나, 파일 그룹의 기존 파일에 대해 자동 증가를 설정하여 디스크 공간을 만드십시오.


[원인]
PRIMARY 파일 그룹에 있는 데이터베이스 파일 용량이 최대 사이즈에 도달하였습니다.


[조치방법]
1. 데이터베이스 내 필요하지 않는 데이터를 삭제합니다.
2. 디스크 여유 공간을 확인하여 파일 그룹의 maxsize를 증가하거나 PRIMARY 파일 그룹에 파일을 추가합니다.
3. 새로운 파일 그룹을 생성합니다. (관련 자료 참고할 것)

  가. 파일그룹의 maxsize 변경 방법

ALTER DATABASE [database_name] MODIFY FILE (NAME = N'logical_file_name, MAXSIZE= { max_size [ KB | MB | GB | TB ] | UNLIMITED } )

  나. PRIMARY 파일 그룹에 파일 추가

ALTER DATABASE [database_name] ADD FILE ( NAME = N'logical_file_name', FILENAME = N'os_file_name' , SIZE = size [ KB | MB | GB | TB ] ,
MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED }, FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ]) TO FILEGROUP [PRIMARY]


[분석결과]

Sp_helpdb 'LAIGODB'

name                fileid    filename                                        filegroup     size               maxsize            
-------------------------------------------------------------------------------------------------------------------------------------------------
LAIGODB_1_Data  1      D:\DATA\LAIGODB_1_Data.MDF     PRIMARY   5120000 KB         5120000 KB         LAIGODB_1_Log   2      D:\DATA\LAIGODB_1_Log.LDF       NULL            10240 KB         3072000 KB         LAIGODB_2_Data  3      D:\DATA\LAIGODB_2_Data.NDF      PRIMARY   5120000 KB         5120000KB         LAIGODB_2_Log   4      D:\DATA\LAIGODB_2_Log.ldf         NULL             10240 KB         3072000KB


[참고자료]
ALTER DATABASE (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms174269.aspx


작성자 : Lai Go / 작성일자 : 2008.08.04

728x90

SQL Server 2005 에서는 Default 값으로 기본 추적 로그가 활성화 되어 있습니다. (default trace enabled 옵션 1)
이 설정은 데이터베이스 문제 발생 시, 원인을 분석할 수 있는 중요한 자료가 될 수 있습니다.
구성 옵션과 관련된 변경 내용과 작업을 Trace 하고 있으므로 일종의 블랙박스 기능에 비유하고 있습니다.

Trace 된 정보를 SQL Server Profiler 를 이용하여 확인하는 방법을 아래와 같이 정리합니다.



1. 아래 쿼리를 사용하여 Trace 옵션이 활성화 되어 있는지 확인합니다.
    실행 결과에서 볼 수 있듯이 기본 추적이 설정되어 있음을 확인할 수 있습니다.

select * from ::fn_trace_getinfo(default)


# 실행결과 #

traceid     property     value
------------------------------------------------------------------------------------------------------------------------------------------------
-1           1               2

 1           2               C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\log_37.trc

 1           3               20

 1           4               NULL

 1           5               1

(5개 행 적용됨)



2. SQL Server Profiler 를 실행하여 확인된 trace file을 열면 추적 로그를 확인할 수 있습니다.

사용자 삽입 이미지










































[참고자료]
Viewing and Analyzing Traces with SQL Server Profiler
http://msdn.microsoft.com/en-us/library/ms175848.aspx

Default trace enabled Option
http://technet.microsoft.com/en-us/library/ms175513.aspx

자동화된 추적을 설정하기 위한 9단계
http://technet.microsoft.com/ko-kr/library/cc700796.aspx


작성자 : Lai Go / 작성일자 : 2008.08.11

+ Recent posts