류짱:Beyond MySelf

원격지의 어플리케이션이 SQL Server와 정상적으로 통신이 되지 않을 경우 실제 해당 클라이언트에서 SQL Server로 연결이 안되는지 확인 해 볼 필요가 있습니다.

OLE DB Provider를 이용하는 UDL Test를 통해서 연결을 확인 해 볼 수 있습니다.

[SQL Server 확인 사항]
연결 테스트를 하기 전에 먼저 SQL Server가 사용하는 port를 확인 합니다.
기본적으로 1433 port를 이용하기 때문에 저는 아래와 같이 1433포트를 사용하는 프로세스를 확인 해 보았습니다.

SQL Server의 인스턴스 네임을 확인 합니다. 아래와 같이 instance name 확인 하였는데 값이 Null 로 나온다면 설치시 기본 인스턴스 네임 즉 MSSQLSERVER 라는 이름을 사용중이라는 것이니 참고 하시기 바라며 이 부분이 매우 중요합니다.

[SQL Server에 연결을 시도할 Client  컴퓨터]

클라이언트 컴퓨터에서 telnet 명령어를 이용해서 해당 머신에서 SQL Server의 port가 오픈 되어 있는지 확인 해 봅니다.

SQL Server가 사용하는 1433 포트가 오픈 되어 있다면 까만 화면에 커서만 깜빡이게 됩니다. 해당 부분을 빠져 나오기 위해서는 Ctrl + ] 를 누릅니다. 그리고 quit 명령어를 이용하면 명령 프롬프트를 완전히 빠져 나올 수 있습니다.

1차적으로 telnet을 이용해서 SQL Server의 포트가 정상적으로 open 된 것을 확인 하였습니다. 다음으로는 아래와 같이 바탕화면에 텍스트 파일을 하나 만듭니다.
바탕화면에서 오른쪽 마우스를 이용해서 새 텍스트 파일을 만듭니다.

만들어지 텍스트 파일의 확장자를 *.udl로 변경을 합니다.

해당 udl 파일의 등록 정보를 클릭 합니다.

Provider 탭에서 Microsoft OLE DB Provider fo SQL Server 를 선택 한 후 Next를 클릭 합니다.

연결 탭에서 먼저 연결할 SQL Server의 IP를 입력 합니다. 여기서 주의 할 부분이 만약 연결 할 서버의 SQL Server 인스턴스 네임이 MSSQLServer가 아니라 명명된 이름이라면 해당 인스턴스 네임을 반드시 입력 해야 한다는 것입니다.

즉 기본 인스트 네임일 경우 아래와 같이 IP만 입력하면 되지만 명명된 인스턴스 네임일경우에는 "서버IP\인스터네임" 입력 해야 합니다. 
ex) 100.100.100.82\instancename

그리고 SQL Server에 로그 온 할 수있는 계정을 입력 한 후 test connection을 클릭합니다.

연결이 성공 되면 아래와 같이 "Test connection succeeded" 메시지가 팝업 됩니다.

감사합니다.^^

[참고 자료]
Basics first : "UDL Test"
http://blogs.msdn.com/b/farukcelik/archive/2007/12/31/basics-first-udl-test.aspx

저작자 표시 비영리 변경 금지
신고

Comment 0

몇 주 전 SQL Server 2008 서버에 hotfix를 설치 한 후 서버를 재 시작 하였는데 SQL Server의 시작이 실패 된 사례가 있었습니다.
원인은 시스템 데이터 베이스인 Master DB와 MSDB의 collation 이 동일하지 않았기 때문이었는데 해당 문제를 해결 하기 위해서는 master DB에 대한 rebuild 작업이 필요 하였습니다.

[환 경]
MSSQL server 2008 SP2

[
증 상
]
SQL Server 2008 sp2로 운영 중인 서버에 hotfix (sp2 cu4) 적용 후 SQL Server 시작 실패
http://support.microsoft.com/kb/2527180

[SQL Server Error log]

2011-12-11 20:06:34.01 spid7s Creating procedure sp_sqlagent_get_perf_counters...
2011-12-11 20:06:34.01 spid7s 오류: 468, 심각도: 16, 상태: 9.

2011-12-11 20:06:34.01 spid7s equal to 작업에서의 "SQL_Latin1_General_CP1_CI_AS"() "Korean_Wansung_CI_AS" 간의 데이터 정렬 충돌을 해결할 수 없습니다.

2011-12-11 20:06:34.01 spid7s 오류: 912, 심각도: 21, 상태: 2.

2011-12-11 20:06:34.01 spid7s Script level upgrade for database 'master' failed because upgrade step 'sqlagent100_msdb_upgrade.sql' encountered error 200, state 7, severity 25. This is a serious error condition which might interfere with regular operation and the database will be taken offline. If the error happened during upgrade of the 'master' database, it will prevent the entire SQL Server instance from starting. Examine the previous errorlog entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion.

2011-12-11 20:06:34.01 spid7s 오류: 3417, 심각도: 21, 상태: 3.

2011-12-11 20:06:34.01 spid7s Cannot recover the master database. SQL Server is unable to run. Restore master from a full backup, repair it, or rebuild it. For more information about how to rebuild the master database, see SQL Server Books Online.

2011-12-11 20:06:34.01 spid7s SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required.


[원 인]
Master DB
MSDB collation이 일치 하지 않아 발생한 장애로 Master DB rebuild 후 정상 복구

같은 시기에 설치 된 다른 업무 환경의 운영 서버에서 collation 확인을 확인 해 보니 해당 서버도 MSDB의 collation만 틀린 것을 확인 하였습니다.

=> select name,collation_name from sys.databases where database_id < 10

master SQL_Latin1_General_CP1_CI_AS
model SQL_Latin1_General_CP1_CI_AS
msdb Korean_Wansung_CI_AS
tempdb SQL_Latin1_General_CP1_CI_AS

=> msdb collation Korean_Wansung 임을 확인

[조치 방법]
master database rebuild 하여 시스템 데이터베이스의 collation을 일치 시켜 줌

master database rebuild

Z:\>setup.exe /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=
SWXXXXX\admin /SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS /SAPWD=xxxxxx

[참고 자료]
Rebuilding System Databases
http://technet.microsoft.com/en-us/library/dd207003.aspx

감사합니다.

저작자 표시 비영리 변경 금지
신고

Comment 0

DBCC SHRINKFILE
http://msdn.microsoft.com/ko-kr/library/ms189493.aspx

트랜잭션 로그를 백업 후 shrink를 실행 했는데도 로그 파일의 크기가 줄어 들지 않는다면.....

sp_helpdb '데이터베이스 이름'

dbcc sqlperf(logspace)

SELECT name ,size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB
FROM sys.database_files;

select * from sys.databases 실행 후 Log_reuse_wait_desc 값을 확인 후 만약 Log_bakcup 상태일 경우
다시 한번 로그 백업을 실행 한 후 shrink를 하면 사이즈가 줄어 듬.

dbcc opentran 명령어를 실행해서 열려 있는 활성 transaction이 있는지도 확인 해 야 함.

[참고 자료]
sys.databases
http://msdn.microsoft.com/en-us/library/ms178534.aspx

Factors That Can Delay Log Truncation
http://msdn.microsoft.com/en-us/library/ms345414.aspx

감사합니다.

저작자 표시 비영리 변경 금지
신고

Comment 0

SQL Server를 실행하는 컴퓨터 간에 데이터베이스를 이동하기 위해서는 많은 준비가 필요하며 다양한 방법이 있을 듯 합니다만  최근에 제가 진행한 SQL Server 마이그레이션 방법을 정리 해 봅니다.

[환 경]
현 운영 서버(A) : Windows Server 2003 IA64 / MS SQL Server 2005 Failover Cluster
신규 운영서(B) : Windows Server 2008 / MS SQL Server 2005 Failover Cluster

[시나리오]
신규 서버에는 이미 Cluster가 설치 되어 있고 클러스터 관리자에서 SQL 그룹을 만들고 해당 그룹에 모든 디스크 리소스가 추가 된 상태라고 가정 함
신규 서버가 현재 운영 중인 SQL Server 장애 조치 클러스터 네트워크 이름과  서비스 IP를 사용할 예정이라고 가정 함

1. 현 운영 서버의 모든 database  백업 및 SQL Server 구성 확인

가. SQL Server 데이터베이스  시스템 버전 확인 
      Select @@version
나. ServerName, MachinName, InstanceName, Edition, ProductVersion, ProductLevel 확인
      SELECT
      SERVERPROPERTY('ServerName') AS ServerName,
      SERVERPROPERTY('MachinName') AS MachinName,
      SERVERPROPERTY('InstanceName') AS InstanceName,
      SERVERPROPERTY('Edition') AS Edition,
      SERVERPROPERTY('ProductVersion') AS ProductVersion,
      SERVERPROPERTY('ProductLevel') AS ProductLevel,
      GO

다. OS 환경 확인
     msinfo32

라. 데이터베이스 시스템 구성 확인
     sp_helpdb;

마. 데이터베이스별 파일 구성 확인
     select * from sys.master_files;

바. Database 구성 정보 확인
     sp_configure; 실행 시 모든 구성정보가 보이지 않는다면 명령어 실행 
     sp_configure 'show advanced options','1';
     reconfigure;

사. 암호 전송 스크립트 실행 및 정보 저장
    
http://support.microsoft.com/kb/918992

아. SQL Server 에이전트에서 실행 중인 작업 확인 및 스크립트 생성
   
http://support.microsoft.com/kb/314546

자. 기타 Linked server 나 다른 필요 사항 확인


2. 엑셀을 이용하여 '마' 항목에서 확인한 데이터베이스 Attache 스크립트 작성
    위 '마' 항목에서 확인 한 데이터베이스 파일 정보를 바탕으로 엑셀의 CONCATENATE 함수를 이용하여 아래와 같이
    스크립트용 파일 준비

=CONCATENATE(F,G,H,I,J,K,L,M,N)"
EXEC sp_attach_db @dbname=N'test',@filename1 = N'G:\test.mdf',@filename2 = N'F:\LogData\test_log.LDF' 

 

3. 현재 운영 중인 SQL Server 장애 조치 클러스터 이름 및 IP를 임시로 변경
   
http://support.microsoft.com/kb/244980

4. DB 파일 copy를 위해 현 운영 서버의 SQL Server 리소스만 offline 
   만약 SQL sever 그룹 전체를 offline 할 경우 운영 서버에서 사용 중인 Data를 copy 할 수 없기 때문에 주의^^

5. Robocopy 나 xcopy 혹은 다른 방법을 이용하여 원본 서버(A)에서 신규 서버(B)로 데이터 베이스 파일 copy
   robocopy 명령어를 이용한 파일 복사
  
http://ryuchan.kr/entry/robocopy-명령어를-이용한-파일-복사

6. 파일 복사 완료 후 신규 서버에 SQL Server 장애조치 클러스터 구성 
    Window server 2008R2 환경에 MS SQL Server 2005 설치 시 약간의 주의가 필요 함(추가 블로그 포스팅 예정)

7. SQL Server 장애조치 클러스터 설치 완료 후 '2번에서 작성한 attache 스크립트를 이용하여 데이터베이스 attache

8. '1번 - 사, 아' 에서 생성 된 로그인 및  암호 전송 스크립트와 작업 스크립트 실행

9. 신규 서버의 Datatabase 적합성 확인 및 '1-바'에서 확인 한 Configuration 값 확인 및 설정

[참고 자료]
SQL Server를 실행하는 컴퓨터 간에 데이터베이스를 이동하는 방법
http://support.microsoft.com/kb/314546

SQL Server 2005 인스턴스 간에 로그인 및 암호를 전송하는 방법
http://support.microsoft.com/kb/918992

감사합니다. ^^

저작자 표시 비영리 변경 금지
신고

Comment 0

지난 주말에 Windows Server 2008R2에 MSSQL Server 2005의 이중화를 구성하고 DB 마이그레이션을 하였습니다. SQL Server 설치 완료후  'SQL Server Fulltext'를 온라인으로 만들지 못하는 오류가 발생하여 아래와 같은 방법으로 해결 하였습니다.
Windows Server 2008 OS에 오랜만에 SQL Server 2005를 설치 했었네요^^

[환 경]

Windows server 2008 R2 EE
MSSQL Server 2005  Failover cluster

[증 상]

서비스를 시작하려고 시도하는 동안 일반 서비스 'SQL Server Fulltext'을(를) 온라인으로 만들지 못했습니다(오류 '1075'). 가능한 원인: 지정된 서비스 매개 변수가 잘못되었을 수 있습니다.
로그 이름:         System
원본:            Microsoft-Windows-FailoverClustering
날짜:            2011-11-05 오후 4:21:34
이벤트 ID:        1041
작업 범주:         일반 서비스 리소스
수준:            오류
키워드:          
사용자:           SYSTEM
컴퓨터:           w2k8-node1.ryuchan.kr
설명:
서비스를 시작하려고 시도하는 동안 일반 서비스 'SQL Server Fulltext'을(를) 온라인으로 만들지 못했습니다(오류 '1075'). 가능한 원인: 지정된 서비스 매개 변수가 잘못되었을 수 있습니다.

[조치 방법]
이전에 SQL server 2005 SP2가 나오기 전에는 2번째 방법을 주로 이용했었는데 이제는 SP4까지 릴리즈 되어서 별 조치를 하지 않아도 되겠네요.

그래도 이전 운영 서버가 SP1 인 환경으로 운영중인데 해당 서버를 동일 환경으로 마이그레이션 해야한다면 2번 방법을 선택 해야겠네요.^^.

1. SQL Server 2005 SP2를 설치 합니다. 해당 이슈는 Non-issue로 SP2를 통해서 해결 되었습니다.

     List of known issues when you install SQL Server 2005 on Windows Server 2008
      http://support.microsoft.com/kb/936302/en-us

2. 양쪽 노드의 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSFESQL$InstanceName\
Multi-String Value: DependsOnService 의 기본 값인 NTLMSSP, RPCSS
RPCSS
로 변경 후 시스템 재 시작


 

[참고 자료]
The SQL Server FullTextSearch (MSSQLSERVER) service depends the following service: NTLMSSP. This service might not be installed.
http://blogs.technet.com/b/anurag_sharma/archive/2009/02/24/the-sql-server-fulltextsearch-mssqlserver-service-depends-the-following-service-ntlmssp-this-service-might-not-be-installed.aspx

List of known issues when you install SQL Server 2005 on Windows Server 2008
http://support.microsoft.com/kb/936302/en-us

감사합니다.

저작자 표시 비영리 변경 금지
신고

Comment 0

최근 SQL 관련 이슈들이 많습니다. Lock pages in Memory가 설정 되어 있느냐 아니냐에 따라서 SQL server 프로세스의 Working set(작업집합)의 모니터링 결과 값이 완전 달라 지는 현상입니다. 지금까지 잘 모르고 있었던 내용이네요..-___-;

 

[환 경]
Windows Server 2008 R2 / MS SQL Server 2008 + sp2


[문의 사항]
동일 환경의 A 서버와 B서버의 SQL Server 성능 카운터 중 Workingset - Private 의 사용량이 다른 이유?

[증 상]
A 서버의 물리적 메모리는 16G이며 SQL server의 Max Memory를 12G로 설정 한 후 성능 모니터에서
Working set - private을 확인 하면 아래와 같이 SQL sever가 사용하고 있는 현재 메모리 량인 12G의 메모리가 모니터링 됨

그러나 B 서버의 경우 32G의 전체 메모리 중 SQL server의 Max Memory가 26G로 설정 되어 있는데 성능 모니터에서 Working set - Private을 확인하면 약 200M의 메모리를 사용 하는 것으로 확인 됨


[원 인]
Lock pages in memory 권한이 부여되어 있는 경우 아래 카운터로는 SQL Buffer Pool 사이즈를 정확히 모니터링할 수 없습니다.
Lock pages in Memory가 설정 되어 있을 경우에는 Total server Memory 카운터에  Buffer pool에 할당 된 메모리 값이 나타나게 됩니다.

  • The Private Bytes counter and the Working Set counter in Performance Monitor
  • The Mem Usage column on the Processes tab in Task Manager

    How to reduce paging of buffer pool memory in the 64-bit version of SQL Server
    http://support.microsoft.com/kb/918483/en-us

    After you assign the Lock pages in memory user right and you restart the SQL Server service, the buffer pool of the SQL Server process still responds to memory resource notification events, and it dynamically increases or decreases in response to these events. However, you cannot see memory allocations for the buffer pool that are locked in memory in the following performance counters:
    • The Private Bytes counter and the Working Set counter in Performance Monitor
    • The Mem Usage column on the Processes tab in Task Manager

    After these pages are locked, these performance counters represent the memory allocations inside the SQL Server process when those allocations do not use the buffer pool.

    The Total Server Memory(KB) counter of the SQL Server:Memory Manager performance object accurately represents the memory that is allocated for the buffer pool.

     

    또한 SQL Server VAS내에 Reserved 공간과 Committed 된 공간은 DBCC MemoryStatus Memory Manager 항목에서 확인할 수 있습니다.

    http://support.microsoft.com/kb/907877

     

    감사합니다.^^

     

    저작자 표시 비영리 변경 금지
    신고

    Comment 0

    해당 글은 아래 사이트의 내용을 복사 한 후 약간 편집하여 정리한 SQL Server의 메모리 사용량 확인 방법입니다.

    메모리 사용 모니터링
    http://technet.microsoft.com/ko-kr/library/ms176018.aspx

    메모리 사용 모니터링

    SQL Server의 인스턴스를 주기적으로 모니터링하여 메모리 사용이 일반적인 범위를 벗어나지 않는지 확인할 수 있습니다.

    메모리 부족 상태를 모니터링하려면 다음 개체 카운터를 사용하십시오.

    • Memory: Available Bytes
    • Memory: Pages/sec

    Available Bytes 카운터는 현재 프로세스에 사용할 수 있는 메모리의 바이트 수를 나타냅니다. Pages/sec 카운터는 하드 페이지 폴트 때문에 디스크에서 가져오거나 작업 집합 내의 디스크 여유 공간에 쓴 페이지 수를 나타냅니다.

    Available Bytes 카운터 값이 작으면 컴퓨터 전체 메모리가 부족하거나 응용 프로그램이 메모리를 해제하지 않는다는 의미입니다. Pages/sec 카운터의 비율이 높으면 페이징이 과도하다는 의미입니다.
    디스크 작업의 원인이 페이징이 아닌지 확인하려면 Memory: Page Faults/sec 카운터를 모니터링하십시오.

    컴퓨터에 사용 가능한 메모리가 충분하더라도 페이징 및 그로 인한 페이지 폴트 비율은 낮은 것이 일반적입니다. Microsoft Windows VMM(Virtual Memory Manager) SQL Server 및 다른 프로세스의 작업 집합 크기를 줄일 때 이러한 프로세스에서 페이지를 가져옵니다.

    VMM 작업으로 인해 페이지 폴트가 발생할 수 있습니다. SQL Server나 다른 프로세스가 과도한 페이징의 원인인지 확인하려면 SQL Server 프로세스 인스턴스의 Process: Page Faults/sec 카운터를 모니터링하십시오.

    페이지 폴트란 프로그램이 자신의 주소 공간에는 존재하지만 시스템의 RAM에는 현재 없는 데이터나 코드에 접근 시도하였을 경우 발생하는 현상을 말합니다. 페이지 폴트가 발생하면 운영 체제는 그 데이터를 메모리로 가져와서 마치 페이지 폴트가 전혀 발생하지 않은 것처럼 프로그램이 계속적으로 작동하게 해줍니다.


    SQL Server가 사용하는 메모리 격리

    기본적으로 SQL Server는 사용할 수 있는 시스템 리소스에 따라 메모리 요구 사항을 동적으로 변경합니다. SQL Server는 메모리가 더 필요할 경우 운영 체제를 쿼리하여 실제 여유 메모리가 사용 가능한지 확인하고 사용 가능한 메모리를 사용합니다. SQL Server에서는 현재 할당된 메모리가 필요하지 않은 경우 운영 체제에서 사용할 수 있도록 해당 메모리를 해제합니다.
    그러나 minservermemory maxservermemory 서버 구성 옵션을 사용하여 메모리를 동적으로 사용하도록 옵션을 재정의할 수 있습니다. 자세한 내용은 서버
    메모리 옵션을 참조하십시오.

    SQL Server에서 사용하는 메모리의 양을 모니터링하려면 다음 성능 카운터를 검사하십시오.

    • Process: Working Set
    • SQL Server: Buffer Manager: Buffer Cache Hit Ratio
    • SQL Server: Buffer Manager: Total Pages
    • SQL Server: Memory Manager: Total Server Memory (KB)

     



    WorkingSet
    카운터는 프로세스에서 사용하는 메모리의 양을 나타냅니다. 이 숫자가 계속 min server memory max server memory 서버 옵션에 설정된 메모리의 양보다 작으면 SQL Server가 메모리를 너무 많이 사용하도록 구성된 것입니다.

    Buffer Cache Hit Ratio 카운터는 응용 프로그램에 따라 다릅니다. 그러나 90% 이상의 비율이 알맞습니다. 이 값이 90%보다 크게 유지될 때까지 메모리를 추가하십시오. 값이 90%보다 크면 데이터 캐시를 통해 모든 데이터 요청의 90% 이상이 충족된 것입니다.

    TotalServerMemory (KB) 카운터가 컴퓨터의 실제 메모리 양과 비교하여 계속 높게 나타나면 메모리를 추가해야 합니다.

    [참고 사이트]

    리소스 사용 모니터링(시스템 모니터)

    http://technet.microsoft.com/ko-kr/library/ms191246.aspx

    저작자 표시 비영리 변경 금지
    신고

    Comment 0

    32bit MS SQL Server에 할당 되는 MemToLeave 영역의 한계 때문에 대용량 Database 백업 파일의 복구가 실패 되는 현상이 있었습니다.  32bit 시스템의 메모리 아키텍처상  어쩔 수 없었습니다만 몇 일 밤새며 고생한거 생각 하니 ....
    흑흑....

    SQL
    서버의 메모리는 크게 Buffer Pool(8KB 페이지로 구성) MemToLeave 영역으로 구분되며 MemToLeave 영역은 Linked Server 쿼리, Extended Stored Procedure, COM 모듈 등의 외부 모듈에 의해서 주로 사용되며 Backup/Restore를 위한 Buffer 공간 및 8KB를 초과하는 연속된 공간이 필요할 경우에
    SQL서버에 의해서 사용되기도 합니다

    32bit MS SQL Server 2008에서 기본값은 384M 인 것 같습니다. 그런데 technet site에는 256M로 설명이 되어 있네요.
    http://msdn.microsoft.com/ko-kr/library/ms190737(v=SQL.100).aspx

    What is MemToLeave?
    MemToLeave is virtual address space (VAS) that’s left un-used when SQL Server starts so that external components called by SQL Server are saved some address space. So in order for these technologies, .NET CLR, Linked Servers and extended stored procedures, to operate efficiently you must ensure that they too have access to sufficient memory.

    [SQL Server Memory Architecture]

     

    [MemToLeave가 부족할 때 나타나는 증상들]

    출처:
    http://optimizer.tistory.com/entry/MemToLeave에서-가장-큰-연속된-공간Max-Free-Block-확인

    1. error 17189

    오류: 17189, 심각도: 16, 상태: 1
    SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems. [
    클라이언트: 121.139.219.130]

    2. error 18056
    오류: 18056, 심각도: 20, 상태: 29
    The client was unable to reuse a session with SPID 302, which had been reset for connection pooling. This error may have been caused by an earlier operation failing. Check the error logs for failed operations immediately before this error message.

    3. error 17803
    오류: 17803, 심각도: 20, 상태: 5 사용할 수 있는 메모리가 부족합니다..

    WARNING:  Failed to reserve contiguous memory of Size= 65536.

    4. error 512
    Non-interface error:  OLE DB provider SQLOLEDB returned an incorrect value for properties changed which should be for schema checking

    Error: 512, Severity: 16, State: 1

    5. login 실패
    SQL Server
    에서 process_loginread 스레드를 만들 수 없습니다.

    6. 백업 실패

    7. 기타 ...

    [MemToLeave 영역 사이즈 확인 방법]
    아래 쿼리를 실행 하면 해당 서버에 할 당 된 MemToLeave 영역을 확인 할 수 있습니다.

     

    With VASummary(Size,Reserved,Free) AS

    (SELECT

        Size = VaDump.Size,

        Reserved =  SUM(CASE(CONVERT(INT, VaDump.Base)^0)

        WHEN 0 THEN 0 ELSE 1 END),

        Free = SUM(CASE(CONVERT(INT, VaDump.Base)^0)

        WHEN 0 THEN 1 ELSE 0 END)

    FROM

    (

        SELECT  CONVERT(VARBINARY, SUM(region_size_in_bytes))

        AS Size, region_allocation_base_address AS Base

        FROM sys.dm_os_virtual_address_dump 

        WHERE region_allocation_base_address <> 0x0

        GROUP BY region_allocation_base_address 

     UNION  

        SELECT CONVERT(VARBINARY, region_size_in_bytes), region_allocation_base_address

        FROM sys.dm_os_virtual_address_dump

        WHERE region_allocation_base_address  = 0x0

    )

    AS VaDump

    GROUP BY Size)

     

     

    SELECT SUM(CONVERT(BIGINT,Size)*Free)/1024 AS [Total avail mem, KB] ,CAST(MAX(Size) AS BIGINT)/1024 AS [Max free size, KB] 

    FROM VASummary 

    WHERE Free <> 0

    _____________________________________________________________________________________________________________________________


    32-bit laptop with SQL Server 2005 (32-bit obvously) and 2GB RAM:

    Total avail mem, KB
    340680
    max free size, KB
    120016

    A 64-bit server with SQL Server 2008 x64 with 10GB RAM:
    Total avail mem, KB
    8579026976
    max free size, KB
    6708754816

    ** 64bit 환경에서는 더 이상 MemToLeave 영역 때문에 걱정 할 필요가 없겠네요 ^^
    Come on 64bit so we can leave the mem….

    http://blogs.msdn.com/b/psssql/archive/2009/08/26/come-on-64bit-so-we-can-leave-the-mem.asp

    [MemToLeave 사이즈 변경 방법]

    1. SQL Server
    구성 관리자를 실행합니다.
    2. SQL Server 2005 서비스’를 클릭하고, 우측 패널에서 ‘SQL Server (<InstanceName>)’을 더블 클릭합니다
    .
    3. SQL Server (<InstanceName>)’ 속성창에서 ‘고급’ 탭을 클릭합니다
    .
    4. ‘고급’ 탭에서 ‘시작 매개 변수’ 항목의 기존 값의 맨 앞이나 끝에 다음을 추가합니다
    .

    값 예)
    -g512;




    기존의 시작 매개 변수에 상기의 옵션을 추가하게 되면(;(semi-colon)으로 기존의 값과 분리해야 함) 다음의 예와 같은형태가 됩니다.

    -g512;-dC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\mastlog.ldf;-eE:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG;-dE:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\master.mdf;

    5. ‘확인’을 눌러 설정 작업을 완료합니다. 설정한 내용이 적용될 수 있도록 SQL서비스를 재시작합니다.

    [참고 사이트]

    SQL Server 서비스 시작 옵션 사용

    http://msdn.microsoft.com/ko-kr/library/ms190737(v=SQL.100).aspx

    Come on 64bit so we can leave the mem….

    http://blogs.msdn.com/b/psssql/archive/2009/08/26/come-on-64bit-so-we-can-leave-the-mem.asp

    SQL Server memtoleave, VAS and 64-bit

    http://sqlblogcasts.com/blogs/christian/archive/2008/01/07/sql-server-memtoleave-vas-and-64-bit.aspx


    감사합니다.

    저작자 표시 비영리 변경 금지
    신고

    Comment 0

    DBA  아니라 잘 모르지만 아래 3개의 사이트만 잘 공부해도 웬만한 SQL DB 문제는 지원 할 수 있을 듯 하다.
    ~~~ 갈길이 멀구나.......

    SQL Server DBA 가이드
    http://www.microsoft.com/korea/technet/sql/tuning_guide_developer03.mspx

    Monitoring SQL Server health
    http://technet.microsoft.com/en-us/library/bb838723(office.12).aspx

    SQL Server를 실행하는 컴퓨터에서 트랜잭션 로그가 예기치 않게 커지거나 가득 찬다
    http://support.microsoft.com/kb/317375/ko

     

    저작자 표시 비영리 변경 금지
    신고

    Comment 0

    SQL server 버전 확인 방법 알려 드립니다. 참조 하시기 바랍니다.

    아래 쿼리를 실행 하시면 좀더 자세하게 확인 할 수 있습니다.

     

    SELECT SERVERPROPERTY('ProductVersion') 'Version', SERVERPROPERTY ('ProductLevel') 'Service Pack', SERVERPROPERTY ('Edition') 'Edition'

     

    그리고 아래 링크를 참고 하면 현재까지 릴리즈 된 서비스팩과 누적 업데이트들을 확인 할 수 있습니다.


    The versions of SQL Server are listed in the following table. Below the table are instructions to determine what build you are running.

    http://www.sqlteam.com/article/sql-server-versions

     

    감사합니다.^^

    저작자 표시 비영리 변경 금지
    신고

    Comment 0