2017년 6월 14일 수요일

[HSKIM] 02. SQL Server 관리 도구

1. SQL Server 구성 관리자

SQL Server 구성 관리자는 SQL Server와 연관된 서비스를 관리하고 SQL Server에 사용되는 네트워크 프로토콜을 구성하며 SQL Server 클라이언트 컴퓨터에서 네트워크 연결 구성을 관리하기 위한 도구입니다. SQL Server 구성 관리자는 시작 메뉴에서 사용할 수 있거나 다른 Microsoft Management Console 표시에 추가할 수 있는 Microsoft Management Console 스냅인입니다. Microsoft Management Console(mmc.exe)은 SQLServerManager<version>.msc(예: **의 경우 **SQLServerManager13.mscSQL Server 2016) 파일을 사용하여 구성 관리자를 엽니다. Windows가 C 드라이브에 설치되어 있는 경우 최신 4개 버전의 경로는 다음과 같습니다.
SQL Server 2016C:\Windows\SysWOW64\SQLServerManager13.msc
SQL Server 2014C:\Windows\SysWOW64\SQLServerManager12.msc
SQL Server 2012C:\Windows\SysWOW64\SQLServerManager11.msc
SQL Server 2008C:\Windows\SysWOW64\SQLServerManager10.msc

1.1 SQL Server 서비스 관리
SQL Server 구성 관리자를 사용하여 서비스를 시작, 일시 중지, 재개 또는 중지하거나 서비스 속성을 확인하거나 서비스 속성을 변경할 수 있습니다.
SQL Server 구성 관리자를 사용하여 시작 매개 변수를 통해 데이터베이스 엔진을 시작할 수 있습니다. 
1.2 서버네트워크 / 클라이언트 네트워크 관리

SQL Server 구성 관리자를 사용하면 서버 및 클라이언트 네트워크 프로토콜과 연결 옵션을 구성할 수 있습니다. 올바른 프로토콜을 설정한 후에는 일반적으로 서버 네트워크 연결을 변경할 필요가 없습니다. 그러나 SQL Server에서 특정 네트워크 프로토콜, 포트 또는 파이프를 수신 대기하도록 서버 연결을 다시 구성해야 할 경우에는 SQL Server 구성 관리자를 사용할 수 있습니다. 
SQL Server 구성 관리자를 사용하면 프로토콜 암호화를 강제하거나 별칭 속성을 확인하거나 프로토콜을 설정/해제하는 기능을 비롯하여 서버 및 클라이언트 네트워크 프로토콜을 관리할 수 있습니다.
SQL Server 구성 관리자를 사용하면 별칭을 작성 또는 제거하거나 프로토콜이 사용되는 순서를 변경하거나 다음을 비롯한 서버 별칭의 속성을 볼 수 있습니다.
  • 서버 별칭 - 클라이언트가 연결되는 컴퓨터에 사용되는 서버 별칭입니다.
  • 프로토콜 - 구성 항목에 사용되는 네트워크 프로토콜입니다.
  • 연결 매개 변수 - 네트워크 프로토콜 구성을 위한 연결 주소와 연관된 매개 변수입니다.
서비스를 시작 및 중지하는 등의 일부 동작에 클러스터 관리자를 사용해야 하지만 SQL Server 구성 관리자를 사용하여 장애 조치(failover) 클러스터 인스턴스에 대한 정보를 볼 수도 있습니다.

2. SQLCMD

sqlcmd 유틸리티를 사용하면 명령 프롬프트, SQLCMD 모드의 쿼리 편집기, Windows 스크립트 파일 또는 SQL Server 에이전트 작업의 운영 체제(Cmd.exe) 작업 단계에서 Transact-SQL 문, 시스템 프로시저 및 스크립트 파일을 입력할 수 있습니다. 이 유틸리티는 ODBC를 사용하여 Transact-SQL 일괄 처리를 실행합니다.

sqlcmd   
   -a packet_size  
   -A (dedicated administrator connection)  
   -b (terminate batch job if there is an error)  
   -c batch_terminator  
   -C (trust the server certificate)  
   -d db_name  
   -e (echo input)  
   -E (use trusted connection)  
   -f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage] 
   -g (enable column encryption) 
   -G (use Azure Active Directory for authentication)
   -h rows_per_header  
   -H workstation_name  
   -i input_file  
   -I (enable quoted identifiers)  
   -j (Print raw error messages)
   -k[1 | 2] (remove or replace control characters)  
   -K application_intent  
   -l login_timeout  
   -L[c] (list servers, optional clean output)  
   -m error_level  
   -M multisubnet_failover  
   -N (encrypt connection)  
   -o output_file  
   -p[1] (print statistics, optional colon format)  
   -P password  
   -q "cmdline query"  
   -Q "cmdline query" (and exit)  
   -r[0 | 1] (msgs to stderr)  
   -R (use client regional settings)  
   -s col_separator  
   -S [protocol:]server[instance_name][,port]  
   -t query_timeout  
   -u (unicode output file)  
   -U login_id  
   -v var = "value"  
   -V error_severity_level  
   -w column_width  
   -W (remove trailing spaces)  
   -x (disable variable substitution)  
   -X[1] (disable commands, startup script, environment variables, optional exit)  
   -y variable_length_type_display_width  
   -Y fixed_length_type_display_width  
   -z new_password   
   -Z new_password (and exit)  
   -? (usage)  

3. SQL Server 프로파일러

3.1 프로파일러

Microsoft SQL Server 프로파일러 는 데이터베이스 엔진 또는 Analysis Services의 인스턴스를 모니터링하기 위한 SQL 추적에 대한 그래픽 사용자 인터페이스입니다. 각 이벤트에 대한 데이터를 캡처하고 파일이나 테이블에 저장하여 나중에 분석할 수 있습니다. 예를 들어 프로덕션 환경을 모니터링하여 어느 저장 프로시저가 너무 늦게 실행되어 성능을 떨어뜨리고 있는지 볼 수 있습니다. SQL Server 프로파일러 은 다음과 같은 작업에 사용됩니다.
  • 문제가 발생한 원인을 찾기 위해 문제 쿼리 실행
  • 실행이 느린 쿼리를 찾고 진단
  • 문제가 발생한 일련의 Transact-SQL 문 포착. 그런 다음 저장된 추적을 사용하여, 문제를 진단할 수 있는 테스트 서버에서 문제를 복제할 수 있습니다.
  • SQL Server 의 성능을 모니터링하여 작업 튜닝. 데이터베이스 작업에 맞게 물리적 데이터베이스 디자인을 튜닝하는 방법은 Database Engine Tuning Advisor를 참조하세요.
  • 문제 진단을 위해 성능 카운터의 상관 관계 지정
SQL Server 프로파일러 는 SQL Server의 인스턴스에서 수행되는 동작을 감사하는 기능도 지원합니다. 감사는 보안 관리자가 나중에 검토할 수 있도록 보안 관련 동작을 기록합니다.

SQL Server 프로파일러도구를 사용하려면 도구가 작동하는 방식을 설명하는 용어를 알고 있어야 합니다.
이벤트
이벤트는 SQL Server 데이터베이스 엔진인스턴스에서 발생하는 동작으로, 이벤트의 예는 다음과 같습니다.
  • 로그인 연결, 실패 및 연결 끊김
  • Transact-SQL SELECT, INSERT, UPDATE, DELETE 문
  • RPC(원격 프로시저 호출) 일괄 처리 상태
  • 저장 프로시저의 시작 또는 끝
  • 저장 프로시저에 있는 문의 시작 또는 끝
  • SQL 일괄 처리의 시작 또는 끝
  • SQL Server 오류 로그에 쓴 오류
  • 데이터베이스 개체에서 획득 또는 해제된 잠금
  • 열린 커서
  • 보안 권한 검사
한 이벤트에 의해 생성된 모든 데이터는 추적에서 한 줄에 표시됩니다. 이 행은 이벤트를 자세히 설명하는 데이터 열로 구분됩니다.
EventClass
이벤트 클래스는 추적할 수 있는 이벤트 유형입니다. 이벤트 클래스에는 이벤트에서 보고할 수 있는 모든 데이터가 포함됩니다. 이벤트 클래스의 예는 다음과 같습니다.
  • SQL:BatchCompleted
  • Audit Login
  • Audit Logout
  • Lock:Acquired
  • Lock:Released
EventCategory
이벤트 범주는 SQL Server 프로파일러내에서 이벤트를 그룹화하는 방법을 정의합니다. 예를 들어 모든 잠금 이벤트 클래스는 Locks 이벤트 범주 내에서 그룹화됩니다. 그러나 이벤트 범주는 SQL Server 프로파일러내에서만 존재합니다. 이 용어는 엔진 이벤트를 그룹화하는 방법과 관계가 없습니다.
DataColumn
데이터 열은 추적에 캡처된 이벤트 클래스의 특성입니다. 이벤트 클래스가 수집할 수 있는 데이터 형식을 결정하기 때문에 모든 데이터 열이 모든 이벤트 클래스에 적용되는 것은 아닙니다. 예를 들어 Lock:Acquired 이벤트 클래스를 캡처하는 추적에서 BinaryData 데이터 열에는 잠긴 페이지 ID 값이나 행 값이 들어 있지만 캡처하는 이벤트 클래스에 적용할 수 없는 Integer Data 데이터 열에는 아무 값도 들어 있지 않습니다.
템플릿
템플릿은 추적의 기본 구성을 정의합니다. 특히 SQL Server 프로파일러로 모니터링하려는 이벤트 클래스가 템플릿에 포함됩니다. 예를 들어 사용할 이벤트, 데이터 열 및 필터를 지정하는 템플릿을 만들 수 있습니다. 템플릿은 실행되지 않으며 .tdf 확장명을 가진 파일로 저장됩니다. 템플릿을 저장한 후에는 템플릿에 기반한 추적이 시작될 때 캡처된 추적 데이터를 제어할 수 있습니다.
추적
추적은 선택한 이벤트 클래스, 데이터 열 및 필터에 기초하여 데이터를 캡처합니다. 예를 들어 예외 오류를 모니터링하는 추적을 만들 수 있습니다. 이 작업을 수행하려면 Exception 이벤트 클래스를 선택하고 ErrorState및 Severity 데이터 열을 선택합니다. 추적 결과에서 의미 있는 데이터를 제공하려면 이 3열의 데이터를 수집해야 합니다. 그런 다음 구성된 방식으로 추적을 실행하고 서버에서 발생하는 모든 Exception 이벤트에 대한 데이터를 수집합니다. 추적 데이터를 즉시 분석에 사용하거나 저장한 후 나중에 분석할 수 있습니다. 나중에 추적을 재생할 수 있지만 Exception 이벤트와 같은 특정 이벤트는 재생할 수 없습니다. 또한 추적을 템플릿으로 저장하여 나중에 유사한 추적을 구성할 수 있습니다.
SQL Server는 SQL Server 인스턴스를 추적하는 두 가지 방법을 제공합니다. SQL Server 프로파일러를 사용하여 추적하거나 시스템 저장 프로시저를 사용하여 추적할 수 있습니다.
필터
추적 또는 템플릿을 만들 때 이벤트가 수집하는 데이터를 필터링할 조건을 정의할 수 있습니다. 추적이 지나치게 커지지 않도록 필터링을 통해 이벤트 데이터의 하위 집합만 수집할 수 있습니다. 예를 들어 추적에서 Microsoft Windows 사용자 이름을 특정 사용자로 제한하여 출력 데이터를 줄일 수 있습니다.
필터가 설정되어 있지 않으면 선택된 이벤트 클래스의 모든 이벤트가 추적 출력에서 반환됩니다.


댓글 없음:

댓글 쓰기