SQL Server 시작 매개 변수 설정

 

  • Version : SQL Server 2012

 

SQL Server의 상태를 확인하기 위해서 트레이스 플래그를 설정하는 경우가 있다. 하지만 SQL Server가 재시작 될 때마다 모든 트레이스를 설정을 하는 것은 매우 불편할 수 있다. 해당 서비스가 시작 될 때 자동으로 트레이스 플래그가 적용될 수 있도록 시작 매개 변수를 서비스에 등록 할 수 있다.

 

다음 예시는 SQL Server 2012 서비스에서 시작 매개 변수를 추가할 수 있다/

 

 

시작 매개 변수는 레지스트리에 저장 된다. SQL Server 구성 관리자를 사용하여 매개 변수를 변경한 경우 직접 레지스트리에 반영된다. 레지스트리를 확인해 보면 각 시작 매개 변수는 별도의 항목(문자열 값)으로 저장되어 있다. 또한 각 매개변수가 SQLArg0, SQLArg1, SQLArg2 등 이름으로 각 추가 매개변수가 추가된다.

 

 

다음은 –T1222 트레이스 플래그를 시작 매개 변수에 등록하였다. SQL Server 구성관리자에서 등록 할 수 있다.

 

 

시작 매개 변수 등록이 완료 되면 레지스트리에도 다음과 같이 추가 된 것을 확인 할 수 있다.

 

 

DMV를 통해서도 레지스트리에 등록된 것을 확인 할 수 있다.

select * from sys.dm_server_registry where value_name like 'SQLArg%'

 

 

 

시작 매개 변수의 삭제는 구성관리자 또는 레지스트리에서 직접 삭제 할 수 있으며 다음 스크립트로 레지스트리의 시작 매개 변수 삭제가 가능하다.

declare @Parameters varchar(max) = '-T1222',

@Argument_Number int,

@Argument varchar(max),

@Reg_Hive varchar(max),

@CMD varchar(max)

 

if exists (select * from sys.dm_server_registry where value_name like 'SQLArg%' and convert(varchar(max), value_data) = @Parameters)

begin

    select

        @Argument = value_name, @Reg_Hive = substring(registry_key,len('HKLM\') + 1,len(registry_key))

        from sys.dm_server_registry where value_name like 'SQLArg%' and convert(varchar(max), value_data) = @Parameters

 

        set @CMD = 'master..xp_regdeletevalue "HKEY_LOCAL_MACHINE", "' + @Reg_Hive + '","' + @Argument +'"'

        

        select(@CMD)

        --exec(@CMD)

end

 

 

 

다음 스크립트를 사용하여 레지스트리에 시작 매개 변수를 등록 할 수 있다. 동일한 매개 변수를 여러 서버에 등록 할 때 스크립트를 생성하여 사용하면 매우 편리하다

declare @Parameters varchar(max) = '-T1222',

@Argument_Number int,

@Argument varchar(max),

@Reg_Hive varchar(max),

@CMD varchar(max)

 

select

    @Reg_Hive = substring(registry_key, len('HKLM') + 1, len(registry_key)),

    @Argument_Number = max(convert(int, right(value_name,1))) + 1

from sys.dm_server_registry

where value_name like 'SQLArg%'

group by substring(registry_key, len('HKLM') + 1, len(registry_key))

 

set @Argument = 'SQLArg' + convert(varchar(1), @Argument_Number)

select @Argument, @Reg_Hive

 

set @CMD = 'master..xp_regwrite "HKEY_LOCAL_MACHINE", "' + @Reg_Hive + '", "' + @Argument + '", "REG_SZ", "' + @Parameters + '"'

 

select(@CMD)

--exec(@CMD)

 

 

 

[참고자료]

http://www.sqlservercentral.com/articles/Automation/105511/

 

 



강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 1292
1906 변경된 테이블 이름 복구하기 jevida(강성욱) 2016.10.12 1350
1905 Sys,dm_exec_connections jevida(강성욱) 2016.10.12 2024
» SQL Server 시작 매개 변수 설정 jevida(강성욱) 2016.10.12 2548
1903 AFTER 트리거를 INSTEAD OF 트리거로 변경 후 효율성 향상 jevida(강성욱) 2016.10.12 1916
1902 쿼리 대기 옵션 jevida(강성욱) 2016.10.12 1615
1901 Index create memory 설정 jevida(강성욱) 2016.10.12 1289
1900 Min memory per query 옵션 jevida(강성욱) 2016.10.12 1759
1899 SQL Server 에디션 다운그레이드와 제한된 기능 확인 jevida(강성욱) 2016.10.12 2154
1898 Downgrade from SQL Server Ent to Std Edition jevida(강성욱) 2016.10.12 1367
1897 트랜잭션 로그 여유 공간 모니터링 jevida(강성욱) 2016.10.12 1410
1896 SQL Server가 서비스 격리를 처리하는 방법 jevida(강성욱) 2016.10.12 1172
1895 쿼리 매개변수화 확인하기 jevida(강성욱) 2016.10.12 1469
1894 SQL Server에서 Drop 및 Delete 사용자 찾기 jevida(강성욱) 2016.10.12 1658
1893 SQL Server 트랜잭션 로그 읽기 jevida(강성욱) 2016.10.12 2221
1892 MaxBCPThreads에 따른 BCP 병렬출력 jevida(강성욱) 2016.10.11 1106
1891 확장이벤트와 dm_os_wait_stats 대기유형 매핑 jevida(강성욱) 2016.10.11 1925
1890 장기 트랜잭션 확인 및 경고 설정 jevida(강성욱) 2016.10.11 1475
1889 SQL 데이터 수집툴 DiagManager 사용법 jevida(강성욱) 2016.10.11 1347
1888 Windows Server 2012 R2 그룹 관리 서비스 계정 및 SQL 서버 jevida(강성욱) 2016.10.11 1867
1887 Kerbros 구성 관리자 툴 jevida(강성욱) 2016.10.11 1196





XE Login