안녕하세요.
SQL Server Linked Server를 통한 분산 트랜잭션에서, MS DTC 설정과 관련하여 다른 문제가 없었는데도,
No Transaction is Active 오류가 발생하는 경우에 대한 경험을 공유합니다.
- 현상
OLE DB provider "SQLNCLI11" for linked server "LNKD_Test" returned message "No transaction is active." Msg 7391, Level 16, State 2, Procedure SP__Test, Line ## The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "LNKD_Test" was unable to begin a distributed transaction. |
> 정상적으로 MSDTC를 설정하고, DTC Ping이 성공했음에도, Linked Server를 통해 분산트랜잭션 호출 시 "No transaction is active." 오류가 발생합니다.
- 환경
> Server : Amazon EC2 / r4.8XLarge
> OS : Windows Server 2012 R2 STD x64 / Non-AD
> DB : SQL Server 2014 SP2 CU2 STD x64 12.00.5532 / Standalone
- DTC 관련 테스트 항목
> 1. DTC Ping Test : 정상 완료
> 2. Hosts 설정 : Host 구성 확인
> 3. Linked Server 설정 : 분산트랜잭션 정상 동작하는 다른 서버와 동일함
> 4. Local DTC 설정 : 분산트랜잭션 정상 동작하는 다른 서버와 동일함
> 5. SP Configure 설정 : 정상 (AD-Hoc Distributed Query : 1)
- 원인
> Event Viewer등에서 원인을 특징할만한 오류메세지를 발견하지 못했지만,
아래 Reference에 따라 EC2에 구성에 사용된 OS 템플릿(SysPrep된)의
문제로 예측 됩니다. (실제 DTC 재설치 후, 분산트랜잭션 정상화 되었습니다.)
- 대응
::CMD 관리자모드로 실행 net stop MSDTC msdtc -uninstall msdtc –install ::MSDTC 서비스를 지연된 시작으로 설정 sc.exe config MSDTC start=delayed-auto net start MSDTC net stop SQLSERVERAGENT net stop MSSQLSERVER net start MSSQLSERVER net start SQLSERVERAGENT |
> DTC Service 삭제 후, 재설치 하여 문제 해결 됨
넥슨 GameDB팀 / 차태욱
'MS SQL Server > Administration&Management' 카테고리의 다른 글
SQL Server - Availability Group - AG Role Check by Database (0) | 2019.12.19 |
---|---|
CMD 명령어로 SQL Server Edition Upgrade (0) | 2019.11.27 |
SQL Server 2016 업그레이드 이후, DB 복원 성능 저하 이슈 (0) | 2018.07.31 |
SQL Server 프로그래밍기능 파라미터 검색 쿼리 (0) | 2016.03.24 |
tempdb 파일 삭제하기 (0) | 2016.03.20 |