SQL Server 서비스 시작 옵션 사용

SQL Server를 설치할 때 Microsoft Windows 레지스트리에 기본 시작 옵션 집합이 기록됩니다. 이 시작 옵션을 사용하여 대체 master 데이터베이스 파일, master 데이터베이스 로그 파일 또는 오류 로그 파일 등을 지정할 수 있습니다.

시작 옵션은 SQL Server 구성 관리자를 사용하여 설정할 수 있습니다. 자세한 내용은 방법: 서버 시작 옵션 구성(SQL Server 구성 관리자)을 참조하십시오.

기본 시작 옵션

설명

-d master_file_path

master 데이터베이스 파일의 정규화된 경로입니다. 일반적으로 C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\master.mdf입니다. 이 옵션이 제공되지 않으면 기존의 레지스트리 매개 변수를 사용합니다.

-e error_log_path

오류 로그 파일의 정규화된 경로입니다. 일반적으로 C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG입니다. 이 옵션이 제공되지 않으면 기존의 레지스트리 매개 변수를 사용합니다.

-l master_log_path

master 데이터베이스 로그 파일의 정규화된 경로입니다. 일반적으로 C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\mastlog.ldf입니다. 이 옵션을 지정하지 않으면 기존의 레지스트리 매개 변수가 사용됩니다.

다음의 추가 시작 옵션을 사용하여 기본 시작 옵션을 임시로 덮어쓰고 SQL Server 인스턴스를 시작할 수 있습니다.

다른 시작 옵션

설명

-c

명령 프롬프트에서 SQL Server을 시작할 때 시작 시간을 단축시킵니다. 일반적으로 SQL Server 데이터베이스 엔진은 서비스 제어 관리자를 호출하여 서비스로 시작됩니다. 명령 프롬프트에서 SQL Server 데이터베이스 엔진을 시작하는 경우에는 서비스로 시작되지 않으므로 -c를 사용하여 이 단계를 건너뛸 수 있습니다.

-f

SQL Server 인스턴스를 최소 구성으로 시작합니다. 예를 들어 오버 커밋 메모리 같은 구성 값의 설정 때문에 서버를 시작할 수 없을 경우에 유용합니다. SQL Server를 최소 구성 모드로 시작하면 SQL Server가 단일 사용자 모드로 실행됩니다. 자세한 내용은 뒷부분에 나오는 -m에 대한 설명을 참조하십시오.

-g memory_to_reserve

SQL Server에서 SQL Server 프로세스 내(단, SQL Server 메모리 풀 외부)의 메모리 할당에 사용 가능하도록 할 메모리를 MB 단위의 정수로 지정합니다. 메모리 풀 외부의 메모리는 SQL Server에서 확장 프로시저 .dll 파일, 분산 쿼리에서 참조하는 OLE DB 공급자 및 Transact-SQL 문에서 참조되는 자동화 개체 같은 항목을 로드하는 데 사용하는 영역입니다. 기본값은 256MB입니다.

이 옵션을 사용하면 메모리 할당을 튜닝하는 데 도움이 될 수 있으나 실제 메모리가 운영 체제에서 응용 프로그램에 사용할 수 있도록 구성된 가상 메모리 한계보다 큰 경우에만 사용할 수 있습니다. 이 옵션은 SQL Server의 메모리 사용 요청이 불규칙하고 SQL Server 프로세스의 가상 주소 공간이 전부 사용되는 대량 메모리 구성에서 사용하는 것이 적합합니다. 이 옵션을 제대로 사용하지 않으면 SQL Server 인스턴스를 시작할 수 없거나 런타임 오류가 발생할 수도 있습니다.

SQL Server 오류 로그에서 다음 경고가 표시되지 않으면 -g 매개 변수의 기본값을 사용해야 합니다.

  • "Failed Virtual Allocate Bytes: FAIL_VIRTUAL_RESERVE <size>"

  • "Failed Virtual Allocate Bytes: FAIL_VIRTUAL_COMMIT <size>"

이 메시지에 따르면 SQL Server는 확장 저장 프로시저 .dll 파일이나 자동화 개체 등의 항목에 필요한 공간을 찾기 위해 SQL Server 메모리 풀의 일부를 없애려고 합니다. 이 경우 -g 스위치로 예약되는 메모리 양을 늘려 보십시오.

기본값보다 낮은 값을 사용하면 버퍼 풀과 스레드 스택을 사용할 수 있는 메모리 양을 증가시켜 확장 저장 프로시저, 분산 쿼리, OLE 자동화 개체 등을 사용하지 않는 시스템에서 메모리 집중형 작업에 대한 성능상의 이점을 제공할 수 있습니다.

-h

32비트 SQL Server에서 AWE가 설정된 경우 Hot Add 메모리 메타데이터에 대해 가상 주소 공간을 예약합니다. 32비트 AWE가 사용된 Hot Add 메모리에 필요하지만 가상 주소 공간에서 약 500MB를 사용하고 메모리 튜닝도 더 어렵게 만듭니다. 64비트 SQL Server에는 필요하지는 않습니다. Hot Add 메모리는 Windows Server 2003 Enterprise Edition 및 Datacenter Edition에서만 사용할 수 있습니다. 또한 하드웨어 공급업체의 특수한 하드웨어 지원이 필요합니다.

-m

SQL Server 인스턴스를 단일 사용자 모드로 시작합니다. SQL Server 인스턴스를 단일 사용자 모드로 시작하면 한 사용자만 연결할 수 있으며 CHECKPOINT 프로세스가 시작되지 않습니다. CHECKPOINT는 디스크 캐시에 있는 완료된 트랜잭션이 정기적으로 데이터베이스 장치에 기록되도록 합니다. 일반적으로 이 옵션은 복구해야 할 시스템 데이터베이스에 문제가 발생했을 때 사용합니다. sp_configure allow updates 옵션을 설정합니다. 기본적으로 allow updates는 사용할 수 없습니다. 단일 사용자 모드로 SQL Server를 시작하면 컴퓨터에서 로컬 Administrators 그룹의 모든 멤버가 sysadmin 고정 서버 역할의 멤버로 SQL Server 인스턴스에 연결할 수 있습니다. 자세한 내용은 문제 해결: 시스템 관리자가 잠겨 있는 경우 SQL Server에 연결하는 문제를 참조하십시오. 단일 사용자 모드에 대한 자세한 내용은 단일 사용자 모드로 SQL Server 시작을 참조하십시오.

-m"Client Application Name"

sqlcmd와 함께 -m 옵션을 사용하거나 SQL Server Management Studio를 사용할 경우 지정한 클라이언트 응용 프로그램에 대한 연결 수를 제한할 수 있습니다. 예를 들어 -m"sqlcmd"는 연결 수를 단일 연결로 제한하며 이 경우 연결은 자신을 sqlcmd 클라이언트 프로그램으로 인식해야 합니다. 단일 사용자 모드에서 SQL Server를 시작하며 알 수 없는 클라이언트 응용 프로그램에서 사용 가능한 유일한 연결을 사용할 경우 이 옵션을 사용합니다. Management Studio의 쿼리 편집기를 통해 연결하려면 -m"Microsoft SQL Server Management Studio - Query"를 사용합니다.

중요 정보중요
이 옵션을 보안 용도로는 사용하지 마십시오. 클라이언트 응용 프로그램에서 클라이언트 응용 프로그램 이름을 제공하므로 연결 문자열의 일부로 잘못된 이름을 제공할 수 있습니다.

-n

SQL Server 이벤트를 기록하는 데 Windows 응용 프로그램 로그를 사용하지 않습니다. -n으로 SQL Server 인스턴스를 시작하는 경우 -e 시작 옵션을 함께 사용하는 것이 좋습니다. 그렇지 않으면 SQL Server 이벤트가 로깅되지 않습니다.

-s

명명된 SQL Server 인스턴스를 시작할 수 있습니다. -s 매개 변수를 설정하지 않으면 기본 인스턴스가 시작을 시도합니다. sqlservr.exe를 시작하기 전에 명령 프롬프트에서 해당 인스턴스에 대한 적합한 BINN 디렉터리로 전환해야 합니다. 예를 들어 Instance1이 이진 파일에 대해 \mssql$Instance1을 사용할 경우, 사용자는 \mssql$Instance1\binn 디렉터리에서 sqlservr.exe -s instance1을 시작해야 합니다.

-T trace#

지정된 추적 플래그(trace#) 적용 시 SQL Server 인스턴스를 시작해야 함을 나타냅니다. 추적 플래그는 비표준 동작으로 서버를 시작하는 데 사용합니다. 자세한 내용은 추적 플래그(Transact-SQL)를 참조하십시오.

-x

다음 모니터링 기능을 해제합니다.

  • SQL Server 성능 모니터 카운터

  • CPU 시간과 캐시 적중률 통계 유지

  • DBCC SQLPERF 명령에 대한 정보 수집

  • 일부 동적 관리 뷰에 대한 정보 수집

  • 여러 확장 이벤트 이벤트 지점

주의 사항주의
–x 시작 옵션을 사용할 경우 SQL Server의 성능 및 기능 문제를 진단하는 데 사용할 수 있는 정보가 크게 줄어듭니다.

-E

파일 그룹의 각 파일에 할당되는 익스텐트의 수를 늘립니다. 이 옵션은 인덱스 또는 데이터 검색을 실행하는 사용자 수가 제한되는 데이터 웨어하우스 응용 프로그램에 유용합니다. 성능에 부정적인 영향을 줄 수 있으므로 다른 응용 프로그램에서는 이 옵션을 사용하면 안 됩니다. 이 옵션은 SQL Server 32비트 릴리스에서는 지원되지 않습니다.

[!참고]

-T 옵션으로 추적 플래그를 지정할 때 대문자 "T"를 입력하여 추적 플래그 숫자를 전송합니다. SQL Server에서는 소문자 "t"도 사용할 수 있지만 그럴 경우 SQL Server 지원 엔지니어에게만 필요한 다른 내부 추적 플래그가 설정됩니다. 제어판 시작 창에서 지정한 매개 변수를 읽을 수 없습니다.

문제 해결을 위한 시작 옵션 사용

단일 사용자 모드 및 최소 구성 모드와 같은 일부 시작 옵션은 주로 문제 해결에서 사용됩니다. 문제 해결을 위해 서버를 ?m 또는 ?f 옵션으로 시작하려면 명령줄에서 sqlservr.exe를 수동으로 시작하면서 하는 것이 가장 쉬운 방법입니다.

[!참고]

net start를 사용하여 SQL Server를 시작하는 경우에는 시작 옵션에 하이픈(-) 대신 슬래시(/)를 사용합니다.

정상적인 작업 중 시작 옵션 사용

SQL Server을 시작할 때마다 사용하는 시작 옵션이 있을 수 있습니다. 이러한 옵션(예: ?g 또는 추적 플래그로 시작)은 SQL Server Management Studio 또는 SQL Server 구성 관리자로 시작 매개 변수를 구성하면 가장 쉽게 설정할 수 있습니다. 이러한 도구는 시작 옵션을 레지스트리 키로 저장하여 SQL Server가 항상 이 시작 옵션으로 시작할 수 있게 됩니다.

변경 내역

업데이트된 내용

-m"Client Application Name" 옵션 및 옵션에 대한 설명을 추가했습니다.