TM REQUEST 및 계획 핸들 0x0000으로 세션 중단


12

TM 요청 (에서 sys.dm_os_waiting_tasks) 에 많은 연결이 중단되고 진행되지 않는 주기적인 이벤트가 있습니다. KILL영향을받은 사람 session_id은 아무것도하지 않습니다.

서버는 데이터베이스 미러링 (2008R2)을 실행합니다. 미러링 일시 중지 및 재개는 문제가 발생했을 때 해결합니다.

이 상태에서 중단 된 세션은 종료 할 수 없습니다. 거울에 가해지는 하중은 보통이지만 파열되지 않습니다. 많은 수의 연결이이 상태에서 중단되면 시스템이 중지되고 미러 복제가 중지됩니다 (모든 쿼리가 차단됨).

아무도 전에 이것을 보았고 그 원인을 알고 있습니까? 오류 로그에 아무것도 없습니다.


미러링은 어떤 모드로 구성됩니까? 이 문제가 발생했을 때 대기 유형은 무엇입니까? SQL Server가 구성되어 fiber mode있습니까?
Kin Shah

미러링이 동기화 모드에 있습니다. 섬유가 없습니다. 다른 기다림은 없습니다
Thomas Kejser

무엇을 resource_description설정 했습니까?
토마스 스트링거

너무 오래 전에 이것을 알았습니다 (비동기를 실행하지만 장애 조치 또는 패치 등을 할 때 동기화하도록 변경합니다). DB가 완전히 동기화 된 후에도 spid가 유지됩니까?
Subhash Pant

일시 정지 후 SPID가 사라집니다. 그러나 문제가 진행되는 동안 그들은
죽을 수 없다

답변:


9

TM은 트랜잭션 관리자를 나타냅니다. TM 요청으로 설정된 현재 명령은 스레드가 현재 DTC 트랜잭션에 참여하거나 결함을 일으키거나 커밋하는 등의 DTC (Distributed Transaction Coordinator) 요청을 서비스하고 있음을 의미합니다. 분산 트랜잭션은 트랜잭션 무결성을 보장 할 수 없으므로 데이터베이스 미러링에 지원되지 않습니다. DTC 거래를 억제하면 사라질 것입니다.


Credit S. Ashwin, 동료, Microsoft SQL 지원
stacylaray

이것이 어디에서 오는지 어떻게 진단합니까? 서버의 MSDTC 로그가 비어 있습니다
Thomas Kejser

동일한 인스턴스에서 데이터베이스 간 트랜잭션이있는 경우 DTC가 관여 할 수 있습니까?
Thomas Kejser

@ThomasKejser- sp_configure 'Ad Hoc Distributed Queries'켜져 있습니까? -아마도 어떤 시스템은 OPENQUERY임시 진술이나 다른 것을 사용하여 데이터베이스 간 트랜잭션을 발행 하고 있습니까?
Max Vernon

1
데이터베이스 간 트랜잭션은 DTC 트랜잭션과 동일한 기본 코드를 사용합니다. 주요 차이점은 DTC 조정 관리자가 없다는 것입니다. 대신 SQL Server는 트랜잭션에서 가장 낮은 DBID를 트랜잭션 코디네이터로 선택합니다.
stacylaray

0

Service Broker는 MS DTC (Microsoft Distributed Transaction Coordinator) 대신 SQL Server 트랜잭션 관리자를 사용합니다. 트랜잭션은 인스턴스가 아니라 인스턴스 내에 있습니다. Service Broker를 사용하고 있습니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.