2017. 7. 12. 09:25

‘A time-out occurred while waiting for buffer latch’


출처: https://mssqlwiki.com/tag/a-time-out-occurred-while-waiting-for-buffer-latch/


에러 메시지 :

           A time-out occurred while waiting for buffer latch -- type 2, bp 000000C959C8B640, page 3:1524485, stat 0x40d, database id: 48, allocation unit Id: 536870912/281475513581568, task 0x0000000008059468 : 8, waittime 300 seconds, flags 0x3a, owning task 0x0000000006875468. Not continuing to wait.

 

 

유형

현재 래치 획득 요구의 래치 모드다음 매핑을 사용하는 숫자 값입니다. 0 - NL (사용되지 않음); 1 - KP; 2 - SH; 3 - UP; 4 - EX; 5 - DT.

 

 

이유 :

           We would end up with data or data structure inconsistency. To avoid inconsistency SQL Server uses Synchronization Mechanisms like Locks,Latches and Spinlocks.

 

에러 이후 :  Latch 대기 시간 기다리다가 작업이 중지 됨 (복원,패키지 등. )

5분이상 지속 될 경우 모든 스래드가 포함된 미디 덤프가 발생 한다.

 

 

래치 유형은 sysprocesses 의 대기 유형에서 식별 할 수 있음.

 

PAGEIOLATCH_ * : sysprocesses의이 waittype SQL Server가 버퍼 풀 페이지의 물리적 I / O가 완료 될 때까지 기다리고 있음을 나타냅니다

                                 1. PAGEIOLATCH_ *는 일반적으로 과도한 IO를 수행하는 쿼리를 조정하여 해결됩니다 (보통 물리적 IO의 양을 줄이기 위해 인덱스 (또는) 통계를 추가, 변경 및 제거 함).

                                 2. 디스크 병목 현상이 있는지 확인하고 수정하십시오 (Pageiolatch 대기 시간 (ex> 30 ms)).

 

PAGELATCH_ * : sysprocesses의이 waittype SQL Server가 데이터베이스 페이지에 대한 액세스를 기다리고 있지만 페이지가 실제 IO를 수행하지 않음을 나타냅니다

1.        이 문제는 대개 같은 시간에 동일한 물리적 페이지에 액세스하려고 시도하는 다수의 세션으로 인해 발생합니다우리는 spid의 대기 리소스를 봐야합니다. wait_resource는 페이지 번호입니다 (형식은 dbid : file : pageno).

          액세스 중입니다

2. 우리는 DBCC PAGE를 사용하여 우리가 논쟁의 대상이되는 페이지의 객체 또는 유형을 식별 할 수 있습니다또한 할당, 데이터 또는 텍스트에 대한 경합인지 여부를 결정하는 데 도움이됩니다.

 -> 매번 다르고 디비도 다르고 테이블도 다름.

3.        SQL Server에서 가장 자주 대기하는 페이지가 tempdb 데이터베이스에 있으면 dbid 2의 페이지 번호에 대한 대기 리소스 열을 확인합니다   http://support.microsoft.com 언급 된 tempdb 할당 래치 경합이 발생할 수 있습니다 . / kb / 328551

4. 페이지가 사용자 데이터베이스에 있으면 테이블 끝의 동일한 페이지에 대해 모든 스레드가 경합하는 ID와 같은 단조 키에 클러스터형 인덱스가 있는지 확인하십시오이 경우 우리는 다른 것을 선택해야합니다.

          다른 페이지에 작업을 분산시키기 위해 클러스터 된 인덱스 키.

 

LATCH_ * :    buf 래치 대기는 여러 가지로 인해 발생할 수 있습니다. sysprocesses wait resource 열을 사용하여 관련된 래치 유형을 결정할 수 있습니다 (KB 822101). 

1.        매우 일반적인 LATCH_EX 대기는 프로파일 러 추적 또는 sp_trace_getdata 실행으로 인한 것 입니다자세한 내용은 KB 929728을 참조하십시오 .

2.        자동 성장 및 자동 축소.

 

 

 

 

***********   참고  ***********************

 

Types of the Latch:

Buffer (BUF) Latch

Used to synchronize access to BUF structures and their associated database pages.

 

Buffer “IO” Latch

A subset of BUF latches used when the BUF and associated data/index page is in the middle of an IO operation (Reading page from disk or writing page to disk).

 

Non-Buffer (Non-BUF) Latch

These are latches that are used to synchronize general in-memory data structures generally used by queries/tasks executed by parallel threads, auto grow operations , shrink operations etc. 

 

Latch modes

 

Keep (KP) Latches

Used to ensure that the page is not released from memory while it is in use. 

Shared (SH) Latches

Used for read-only access to data structures and prevent write access by others threads.

This mode allows shared access. 

SH is compatible with KP, SH, and UP.  It should be noted that although in general SH implies read-only access, it is not always the case. For buffer latches SH is the minimum mode required in order to read a data page.

Update (UP) Latches

Allows read access to the data structure(Compatible with SH and KP), but prevents other EX-latch access. 

Used for write operations when torn page detection is off and when AWE is not enabled.

Exclusive (EX) Latches

Prevents any read activity from occurring on the latched structure. EX is only compatible with KP.

Used during read IO during write IO when torn page detection is on or AWE is enabled.

Destroy (DT) Latches

Used when removing BUFs from the buffer pool, either by adding them to the free list or unmapping AWE buffers. 

 

 

Latch compatibility

 

KP

SH

UP

EX

DT

KP

Y

Y

Y

Y

N

SH

Y

Y

Y

N

N

UP

Y

Y

N

N

N

EX

Y

N

N

N

N

DT

N

N

N

N

N


'Error Case' 카테고리의 다른 글

Server Broker Error Case  (0) 2011.03.11
에러::SSIS 연결끊기는 현상  (1) 2010.06.03
에러::Agent  (1) 2010.06.03
에러::64bit 버퍼 풀 페이징  (0) 2010.06.03
2011. 3. 11. 16:06

Server Broker Error Case

Output Queue

A service uses Service Broker to send a message to another service. Service

Broker does this by putting the message into an output queue and

then sending it, possibly at a later time, to the queue for the other service.

A number of messages may build up in the output queue, waiting to be

sent, but they will eventually be sent and sent in the order in which they

were put into the queue.

The advantage of this extra layer of queuing is that the service sending

the message never waits for anything. But the extra layer also introduces

extra overhead. Service Broker will skip the output queue when both services

are on the same instance of SQL Server. In this case, it will put the

message directly into the queue from which the receiving service gets its

messages. Figure 15-3 shows how Service Broker efficiently sends a message

from one service to another



Error Case

1. Broker이 되게 DB가 셋팅 되어 있지 않을 때
  • is_broker_enabled, is_trustworthy_on 이 setting 되어 있지 않음.
  • 메세지를 전달 하면, Broker 비활성화 되었다고 하고, 받는 쪽 큐에는 대화가 전달되지 않는다.
  •  큐의 데이터 전달은 sys.transmission_queue 에 insert 된 후 타켓 큐에 전달 된다.


  • 해결
  • ALTER DATABASE DBA SET TRUSTWORTHY , ENABLE_BROKER ON

    /* 전송큐에대한메세지행포함*/

    select conversation_handle, to_service_name, from_service_name,enqueue_time,

        message_sequence_number,message_type_name,

        is_conversation_error, is_end_of_dialog, message_body ,transmission_status

     from sys.transmission_queue

    2.Broker 셋팅 되어질 DB가 master의 owner와 다를 경우

    An exception occurred while enqueueing a message in the target queue.

    Error: 33009, State: 2.

    The database owner SID recorded in the master database differs from the database owner SID recorded in database 'DB명'.

    You should correct this situation by resetting the owner of database 'DB명' using the ALTER AUTHORIZATION statement.


    해결
    sp_changedbowner 변경

    3. 상대 큐가 서로 비활 성화 되었을 경우
    로직 적으로 문제가 되서 대화의 시도가 기본값 5 이상 실패하면 큐는 잠기게 된다.

    One or more messages could not be delivered to the local service targeted by this dialog.


    해결
    ALTER QUEUE 큐명 with status = ON;

'Error Case' 카테고리의 다른 글

‘A time-out occurred while waiting for buffer latch’  (0) 2017.07.12
에러::SSIS 연결끊기는 현상  (1) 2010.06.03
에러::Agent  (1) 2010.06.03
에러::64bit 버퍼 풀 페이징  (0) 2010.06.03
2010. 6. 3. 23:58

에러::SSIS 연결끊기는 현상

SSIS 연결 끊기는 현상

 INSERT SEEKDEPOSITOR[109]] 오류: SSIS 오류 코드 DTS_E_OLEDBERROR.  OLE DB 오류가 발생했습니다.
오류 코드: 0x80004005. OLE DB 레코드를 사용할 수 있습니다.
원본: "Microsoft SQL Native Client"  Hresult: 0x80004005  설명: "통신 연결 오류입니다.".
 OLE DB 레코드를 사용할 수 있습니다.
원본: "Microsoft SQL Native Client"  Hresult: 0x80004005 
설명: "TCP 공급자: 현재 연결은 원격 호스트에 의해 강제로 끊겼습니다. ". \\


[INSERT SEEKDEPOSITOR[109]] 오류: SSIS 오류 코드 DTS_E_INDUCEDTRANSFORMFAILUREONERROR.
오류 코드 0xC020907B이(가) 발생했기 때문에
"입력 "OLE DB 대상 입력"(122)"이(가) 실패했으며
"입력 "OLE DB 대상 입력"(122)"에서의
오류 행 처리는 오류 발생 시 실패하도록 지정되어 있습니다.
지정된 구성 요소의 해당 개체에서 오류가 발생했습니다.
오류에 대한 자세한 정보와 함께
이 오류 메시지보다 먼저 게시된 오류 메시지가 있을 수도 있습니다.
[DTS.Pipeline] 오류: SSIS 오류 코드 DTS_E_PROCESSINPUTFAILED. 오류 코드 0xC0209029(으)로 인해 구성 요소 "INSERT SEEKDEPOSITOR"(109)에서 ProcessInput 메서드가 실패했습니다. 식별된 구성 요소가 ProcessInput 메서드에서 오류를 반환했습니다. 이 오류는 해당 구성 요소와 관련되어 있지만 데이터 흐름 작업의 실행을 중지할 수도 있는 오류입니다. 오류에 대한 자세한 정보와 함께 이 오류 메시지보다 먼저 게시된 오류 메시지가 있을 수도 있습니다.
[DTS.Pipeline] 오류: SSIS 오류 코드 DTS_E_THREADFAILED. 스레드 "WorkThread0"이(가) 종료되었습니다(오류 코드 0xC0209029). 스레드가 종료된 이유에 대한 자세한 정보와 함께 이 오류 메시지보다 먼저 게시된 오류 메시지가 있을 수도 있습니다.
[DTS.Pipeline] 정보: 실행 후 단계를 시작하고 있습니다.

해당 장비의 에러로그

-- 에러 로그 데이터..
2009-03-30 10:21:18.940 spid156 오류: 4014, 심각도: 20, 상태: 2.
2009-03-30 10:21:18.940 spid156 A fatal error occurred while reading the input stream from the network. The session will be terminated.

 

원인

  • 패키지로 이동시 DB의 연결이 끊어져서 이관 실패

 원인1

  • for 문을 사용해서 연결을 계속 시도할 경우 connection을 다시 맺지 못하는 경우가 있어서  안될 수 있음 기존 연결을 다시 재사용하는 방법을 사용해 볼 수 있다.
  •  연결관리자> DB 연결 > 속성 RetainSameConnection을 TRUE로 한번 해보고 한다.

원인2

원인 3 

원인 4

  • 데이터에 문제가 없는데 안되는거라면 두 장비 사이의 코드 페이지 확인
  • 문자열 컬럼이 존재하고 한글 데이터가 있는데 두 장비 사이에 코드 페이지가 틀리면 입력되면서 깨질 수 있다.
  • 코드 페이지를 피하려면 둘다 변경하거나 서비스 장비이기 때문에 변경히 힘들다면, 한 장비에서 BCP out 을 받고 BCP IN을 사용해본다. 이때 -c 옵션으로 해서 안되는데 -n 옵션으로 해서 문제가 없다면 확실한 코드 페이지 때문에 발생하는 문제이다.

원인5

 * 이도 저도 아니면.. 방화벽 문제 일 수도 있고 원본장비와 대상 장비의 서비스팩을 동일하게 맞춰보는것도 좋다.

 

이 글은 스프링노트에서 작성되었습니다.

'Error Case' 카테고리의 다른 글

‘A time-out occurred while waiting for buffer latch’  (0) 2017.07.12
Server Broker Error Case  (0) 2011.03.11
에러::Agent  (1) 2010.06.03
에러::64bit 버퍼 풀 페이징  (0) 2010.06.03
2010. 6. 3. 23:58

에러::Agent

Agent 에러 상황별 처리 내역

 Agent가 시작되지 않음

  • 증상

    • SQLServer는 Start 된 상태
    • Agent 시작시 Event LOG

        •  event id : 103
        • ServerAgent could not be started (reason: Unable to connect to server '(local)'; SQLServerAgent cannot start).
        •  event id : 102
        •  SQLServerAgent service successfully stopped.
      •  시작되다가 바로 중지되는 상황을 보임
    • Agent 에러 로그

        •  메시지
          [298] SQLServer Error: 10061, TCP Provider: No connection could be made because the target machine actively refused it. [SQLSTATE 08001]
        • [165] ODBC Error: 0, Login timeout expired [SQLSTATE HYT00]
        • [298] SQLServer Error: 10061, An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. [SQLSTATE 08001]
        • [000] Unable to connect to server '(local)'; SQLServerAgent cannot start
        • [298] SQLServer Error: 10061, TCP Provider: No connection could be made because the target machine actively refused it. [SQLSTATE 08001]
        • [165] ODBC Error: 0, Login timeout expired [SQLSTATE HYT00]
        • [298] SQLServer Error: 10061, An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. [SQLSTATE 08001]
        • [382] Logon to server '(local)' failed (DisableAgentXPs)
        • [098] SQLServerAgent terminated (normally)
      • 타켓이 되는 서버에 접속을 못하는 것으로 보임
    • 그 밖이 증상

      • 해당 장비에서 ., (local) 로 해도 접속이 안됨, 즉 자기 장비의 Named 를 찾지를 못함
      • agent  실행하는 주체가 Local system 의 Administrators 였음.
      •  hosts 파일에 자기 장비의 IP를 적고 이름을 적어 놓았음  ex) IP  GDB2
      • 클라이언트에 GDB2 별칭이 등록되어 있으며, 포트 설정이 잘 못 되어 있었음
  • 조치사항

    • agent가 실행되는 사용자에게 sysdamin 민 권한을 줌 -> 이미 주었지만 ip 인식 자체가 안되는 거기 때문에 소용 없음.
    • 자기 자신에게 링크드 별칭 있는것 우선은 제거 -> 예전에 별칭이 있으면 별칭을 먼저 인식하고 agent가 생성 안되는 경우 있었음 -> 완료
    • 인스턴스 재시작 - Stop -> Start 시작

      • 서버 재 시작후 exec sp_readerrorlog 0 로 아래 메세지가 있는지 확인

        • Server local connection provider is ready to accept connection on [ \\.\pipe\SQLLocal\MSSQLSERVER ].

          Server local connection provider is ready to accept connection on [ \\.\pipe\sql\query ]

        • Server is listening on ['any' <ipv4> <Port Number>] or [ <ipaddress> <ipv4> <Port Number>].

        • 포트로 잘 올라왔는지 확인  명령창에서 : "netstat -an or -na| findstr <PortNumber>".

        없으면  문제 있는 것임.  서버를 다시 깔아야 할지도 모름.

        SQLAgent 올려본다. 위의 에러가 또 발생하면 다음 으로 한번 해보기

    • 메뉴>Miscrosfot SQL Server2005>congiguration Tools> SQL Server Surface Are Congiguration 실행

      •  Surface Area Congiguration for Services and Connections 실행
      •  Database Engine 의 remote Connections 에서 Using both TCP/IP and named pipes 체크하고 OK, 인스턴스 재 시작 해보기
    •  hosts 파일에 GDB2 있는것 제거 ,

      • SQL Server Conguration Manager >SQL Server2005 Network Congiguration>Protocols for MSSQLSERVER >
      • Named Pipes : Enagled 해보고  인스턴스 재시작 -> SQLAgent 시작해본다.
    • SQLAgent 시작 권한은 Local System의 administraotr로 바꾸고 SQLAgent 시작해 본다. (지금은 도메인으로 되어 있음) : 권한은 이미 처리해 놨음
    • 결국, 해당 장비에서 자기 로컬로 DB가 접근되어야 하는데 안되면 안되는 것임.

이 글은 스프링노트에서 작성되었습니다.

'Error Case' 카테고리의 다른 글

Server Broker Error Case  (0) 2011.03.11
에러::SSIS 연결끊기는 현상  (1) 2010.06.03
에러::64bit 버퍼 풀 페이징  (0) 2010.06.03
에러::msdb 복원시 버전차이  (1) 2010.06.03
2010. 6. 3. 23:58

에러::64bit 버퍼 풀 페이징

증상

  •  미러링 걸려있던 DB의 로그가 90% 이상.
  • 활성 트랜잭션이 없음에도  log 백업을 해도 로그가 줄어들지 않음
  • 주 서버에서 미러가 일시 중지됨
  • 파트너 서버에 에러 로그 파일 에

     


    2009-07-05 05:39:01.050spid1sA significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 263552, committed (KB): 528496, memory utilization: 49%.

    2009-07-05 05:46:21.370spid1sA significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 265520, committed (KB): 527400, memory utilization: 50%.


 

2009-07-05 07:28:27.210spid27sError: 1204, Severity: 19, State: 4.

2009-07-05 07:28:27.210spid27sThe instance of the SQL Server Database Engine cannot obtain a LOCK resource at this time. 

Rerun your statement when there are fewer active users. Ask the database administrator to check the lock and memory configuration for this instance, or to check for long-running transactions.

2009-07-05 07:28:27.320spid27sError: 1454, Severity: 16, State: 1.

2009-07-05 07:28:27.320spid27sWhile acting as a mirroring partner for database 'DB명', server instance '주서버명' encountered error 1204, status 4, severity 19. Database mirroring will be suspended.  Try to resolve the error and resume mirroring.

2009-07-05 07:28:27.820spid27sDatabase mirroring is inactive for database 'DB명'. This is an informational message only. No user action is required.

(주서버)

 

2009-07-05 07:28:27.920spid34sError: 1453, Severity: 16, State: 1.

2009-07-05 07:28:27.920spid34s'TCP://정보', the remote mirroring partner for database 'DB명', encountered error 1204, status 4, severity 19. Database mirroring has been suspended.  Resolve the error on the remote server and resume mirroring, or remove mirroring and re-establish the mirror server instance.


 

원인

  • * significant part of sql server process memory has been paged out. This may result in a performance degradation. 
  • Windows 운영체제 페이지를 SQL Server 프로세스의 작업 집한 제한  때문에 발생합니다. 
  • http://support.microsoft.com/kb/918483

     

  •  데이터베이스 엔진 오류 : 1204

    • SQL Server 데이터베이스 엔진 인스턴스에서 지금 LOCK 리소스를 가져올 수 없습니다. 활성 사용자가 적을 때 문을 다시 실행하십시오. 데이터베이스 관리자에게 이 인스턴스의 잠금 및 메모리 구성이나 장기 실행 트랜잭션을 확인하도록 요청하십시오.
    • max server memory 옵션 증가시킴
    • SELECT request_session_id, COUNT (*) num_locks FROM sys.dm_tran_locks 
      
      GROUP BY request_session_id ORDER BY count (*) DESC
      
  • 위는 전부 페이지 잠금 문제로 발생 했다.
    

해결

메리의 페이지 잠그기 사용자 권한을 할당하려면 다음과 같이 하십시오.

  1. 시작 을 클릭하고 실행 을 클릭합니다 gpedit.msc 를 입력한 다음 확인 을 클릭하십시오. 그룹 정책 대화 상자가 나타납니다.
  2. 확장 컴퓨터 구성 를 확장한 다음 Windows 설정 .
  3. 보안 설정 을 확장한 다음 로컬 정책 을 확장하십시오.
  4. 사용자 권한 할당 을 클릭한 다음 메모리의 페이지 잠그기 두 번 클릭하십시오.
  5. 로컬 보안 정책 설정 대화 상자에서 사용자 또는 그룹 추가 클릭합니다.
  6. 사용자 또는 그룹 선택 대화 상자에서 Sqlservr.exe 파일을 실행할 권한이 있는 계정을 추가하고 확인 을 클릭하십시오.
  7. 그룹 정책 대화 상자를 닫습니다.
  8. SQL Server 서비스를 다시 시작하십시오

 

 

 

이 글은 스프링노트에서 작성되었습니다.

'Error Case' 카테고리의 다른 글

에러::SSIS 연결끊기는 현상  (1) 2010.06.03
에러::Agent  (1) 2010.06.03
에러::msdb 복원시 버전차이  (1) 2010.06.03
Error::NOLOCK 함께 스캔할 수 없음 - 601  (0) 2009.12.08
2010. 6. 3. 23:57

에러::msdb 복원시 버전차이

 Server: Msg 3168, Level 16, State 1, Line 1
The backup of the system database on device d:\temp\master.bak cannot be restored because it was created by a different version of the server (134217904) than this server (134217920).
Server: Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

 

 참고:)  http://support.microsoft.com/kb/264474/en-us

 http://msdn.microsoft.com/en-us/library/aa173515.aspx#

 http://www.volkit.com/62

 

이 글은 스프링노트에서 작성되었습니다.

'Error Case' 카테고리의 다른 글

에러::Agent  (1) 2010.06.03
에러::64bit 버퍼 풀 페이징  (0) 2010.06.03
Error::NOLOCK 함께 스캔할 수 없음 - 601  (0) 2009.12.08
Error::Non-yielding IOCP Listener - Stack Dump analysis  (0) 2009.12.07
2009. 12. 8. 15:38

Error::NOLOCK 함께 스캔할 수 없음 - 601

서버: 메시지 601, 수준, 12, 14 선 3상
데이터 이동으로 인해 NOLOCK 함께 스캔을 계속할 수 없습니다
.

 

KO

트랜잭션 격리 수준 커밋되지 않은 읽기 위해 설정 Query로 601 오류와 함께 실패합니다.

 

 

 

 

샘플 내역

http://blogs.msdn.com/craigfr/archive/2007/06/12/query-failure-with-read-uncommitted.aspx

2009. 12. 7. 17:57

Error::Non-yielding IOCP Listener - Stack Dump analysis

'Error Case' 카테고리의 다른 글

에러::msdb 복원시 버전차이  (1) 2010.06.03
Error::NOLOCK 함께 스캔할 수 없음 - 601  (0) 2009.12.08
Error:: '80004005', SQL 서버가 죽음  (2) 2009.11.09
에러:: Error: 3456  (0) 2009.10.09
2009. 11. 9. 01:16

Error:: '80004005', SQL 서버가 죽음

Q:

2-3일전부터 서버가 죽어서요...

저는 NT4.0, Ms-SQL 7.0, IIS 을 사용하고 있습니다.

1. WEB

Microsoft OLE DB Provider for SQL Server error '80004005'

[DBMSSOCN]General network error. Check your network documentation.

/dbopen.asp, line 12

2. Event Log

원본( SQLCTR70 )에서 이벤트 ID( 1001 )에 대한 설명을 찾지 못했습니다. 다음 삽입 문자열을 포함합니다: Shared memory segment already exists..

Error: 17826, Severity: 18, State: 1
2002-08-22 18:36:22.35 ods Could not set up ListenOn connection 'ACCOUNT'..
Operating system error 1899., 종료점 매퍼 데이터베이스를 만들 수 없습니다.

3. Ms-SQL
02-09-13 오후 12:18:13 - + [164] ODBC Message: 109, ConnectionTransact (GetOverLappedResult()). [SQLSTATE 01000]
02-09-13 오후 12:18:13 - ! [165] ODBC Error: 4, Connection broken. [SQLSTATE 08S01]
02-09-13 오후 12:18:13 - ! [298] SQLServer Error: 4, Connection broken. [SQLSTATE 08S01]
02-09-13 오후 12:18:13 - ! [298] SQLServer Error: 109, ConnectionRead (GetOverLappedResult()). [SQLSTATE 01000]
02-09-13 오후 12:18:13 - ! [382] Logon to server '(local)' failed (ConnCachePerfCounterValues)
02-09-13 오후 12:18:14 - + [360] SQLServerAgent initiating shutdown following MSSQLServer shutdown
02-09-13 오후 12:18:16 - ! [359] The local host server is not running
02-09-13 오후 12:18:17 - ? [098] SQLServerAgent terminated (normally)

 

A:

이전에 제대로 실행되던 웹 응용 프로그램에서 IIS가 갑자기 알 수 없는 80004005 오류를 보고하는 이유를 확인해 달라는 질문을 받았습니다.

즉, 다음과 같은 메시지가 나타납니다.

OLE DB 공급자 오류 ODBC 드라이버 오류...데이터 원본 이름을 찾을 수 없습니다...

먼저 저는 시스템 DSN이 제 위치에 있는지를 확인했습니다.

시스템 DSN이 제 위치에 있었으므로 레지스트리 권한 문제가 아닌가 생각되어 SysInternals의 NTRegMon( http://www.sysinternals.com/ntw2k/source/regmon.shtml )을 설치하고 웹 응용 프로그램을 시작하면서 레지스트리 호출을 추적했습니다.

아니나 다를까, 3개의 레지스트리 키에서 액세스 거부가 발견되었고 이를 수정하자 응용 프로그램이 제대로 시작되었습니다.

편집자 주 이 항목에 대한 자세한 내용은 KB 기사 Q238971 http://support.microsoft.com/support/kb/articles/Q238/9/71.ASP 를 참조하십시오.




출처: 야휴 지식인
http://kr.ks.yahoo.com/service/ques_reply/ques_view.html?dnum=J&qnum=1067220
2009. 10. 9. 18:05

에러:: Error: 3456

2009-10-09 13:30:01.120 spid62 The database 'XXX' is marked RESTORING and is in a state that does not allow recovery to be run.
2009-10-09 13:30:25.530 spid20s Database mirroring is active with database 'XXX' as the mirror copy. This is an informational message only. No user action is required.
2009-10-09 17:19:14.180 spid20s Error: 3456, Severity: 21, State: 1.
2009-10-09 17:19:14.180 spid20s Could not redo log record (276495:119218:6),
for transaction ID (0:408286833), on page (20:508656), database 'XXX' (database ID 12).
Page: LSN = (276492:1649102:28), type = 1. Log: OpCode = 4, context 2,

 PrevPageLSN: (276495:66503:4). Restore from a backup of the database, or repair the database.
2009-10-09 17:19:14.190 spid20s Error: 1454, Severity: 16, State: 1.
2009-10-09 17:19:14.190 spid20s While acting as a mirroring partner for database 'XXX', server instance '장비명' encountered error 3456, status 1, severity 21. Database mirroring will be suspended.  Try to resolve the error and resume mirroring.
2009-10-09 17:19:14.700 spid20s Database mirroring is inactive for database 'XXX'. This is an informational message only. No user action is required.

 

http://www.errorhelp.com/ 에서 찾아봤음.

 

미러링되는 미러서버의 DB가 정합성이 맞지 않아서 발생. 미러도 일시 중지 상태가 됨.

미러를 재 구축 해야함.

 

미러DB가 아니라면 응급 모드로 변경해서 읽기라도 가능하게 하여 조치할것 조치함.

2009. 7. 8. 23:42

에러::64bit 버퍼 풀 페이징

증상

 

  • 미러링 걸려있던 DB의 로그가 90% 이상.
  • 활성 트랜잭션이 없음에도  log 백업을 해도 로그가 줄어들지 않음
  • 주 서버에서 미러가 일시 중지됨
  • 파트너 서버에 에러 로그 파일 에 아래 errorlog 발생

2009-07-05 05:39:01.050spid1sA significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 263552, committed (KB): 528496, memory utilization: 49%.

2009-07-05 05:46:21.370spid1sA significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 265520, committed (KB): 527400, memory utilization: 50%.


2009-07-05 07:28:27.210spid27sError: 1204, Severity: 19, State: 4.

2009-07-05 07:28:27.210spid27sThe instance of the SQL Server Database Engine cannot obtain a LOCK resource at this time.

Rerun your statement when there are fewer active users. Ask the database administrator to check the lock and memory configuration for this instance, or to check for long-running transactions.

2009-07-05 07:28:27.320spid27sError: 1454, Severity: 16, State: 1.

2009-07-05 07:28:27.320spid27sWhile acting as a mirroring partner for database 'DB명', server instance '주서버명' encountered error 1204, status 4, severity 19. Database mirroring will be suspended.  Try to resolve the error and resume mirroring.

2009-07-05 07:28:27.820spid27sDatabase mirroring is inactive for database 'DB명'. This is an informational message only. No user action is required.

 

(주서버)

2009-07-05 07:28:27.920spid34sError: 1453, Severity: 16, State: 1.

2009-07-05 07:28:27.920spid34s'TCP://정보', the remote mirroring partner for database 'DB명', encountered error 1204, status 4, severity 19. Database mirroring has been suspended.  Resolve the error on the remote server and resume mirroring, or remove mirroring and re-establish the mirror server instance.

 

원인

  • significant part of sql server process memory has been paged out. This may result in a performance degradation.
  • Windows 운영체제 페이지를 SQL Server 프로세스의 작업 집한 제한  때문에 발생합니다.
  • 데이터베이스 엔진 오류 : 1204
  • SQL Server 데이터베이스 엔진 인스턴스에서 지금 LOCK 리소스를 가져올 수 없습니다. 활성 사용자가 적을 때 문을 다시 실행하십시오. 데이터베이스 관리자에게 이 인스턴스의 잠금 및 메모리 구성이나 장기 실행 트랜잭션을 확인하도록 요청하십시오.
  • max server memory 옵션 증가시킴

select request_session_id, count(*) num_locks from sys.dm_tran_locks  group by request_session_id order by count(*) desc
  • 위는 전부 페이지 잠금 문제로 발생 했다.

 

해결

  1. 시작 을 클릭하고 실행 을 클릭합니다 gpedit.msc 를 입력한 다음 확인 을 클릭하십시오. 그룹 정책 대화 상자가 나타납니다.
  2. 확장 컴퓨터 구성 를 확장한 다음 Windows 설정 .
  3. 보안 설정 을 확장한 다음 로컬 정책 을 확장하십시오.
  4. 사용자 권한 할당 을 클릭한 다음 메모리의 페이지 잠그기 두 번 클릭하십시오.
  5. 로컬 보안 정책 설정 대화 상자에서 사용자 또는 그룹 추가 클릭합니다.
  6. 사용자 또는 그룹 선택 대화 상자에서 Sqlservr.exe 파일을 실행할 권한이 있는 계정을 추가하고 확인 을 클릭하십시오.
  7. 그룹 정책 대화 상자를 닫습니다.
  8. SQL Server 서비스를 다시 시작하십시오