문제점 : AlwaysOn 가용성 그룹 (AG)의 모든 서버에서 DTC (Distributed Transaction Coordinator)를 어떻게 실행할 수 있습니까? 장애 조치 / 전환 이벤트에 대한 트랜잭션을 유지 관리 할 필요가 없습니다.
설치 : SQL 2008을 모두 실행하는 Windows 2008 R2 서버 3 개가있는 WSFC (Windows Failover Cluster)가 있습니다. 두 서버는 하나의 데이터 센터에 있고 Always On Failover Cluster (FCI)의 일부이며, 세 번째 서버는 두 번째 데이터 센터. WSFC는 다중 서브넷 클러스터입니다. 설정 스케치는 다음과 같습니다.
두 개의 FCI 노드가 동일한 서브넷에 있고 스토리지를 공유하기 때문에 두 FCI 노드간에 작동하도록 DTC를 설치 및 구성 할 수있었습니다. 몇 개의 AG를 구성했으며 정상적으로 작동했습니다. 이 스크린 샷은 FCI에 설치된 DTC를 보여줍니다.
이 스크린 샷은 FCI 노드 중 하나에서 활성화 된 DTC를 구성 할 수 있음을 보여줍니다.
DTC를 사용하는 응용 프로그램을이 클러스터로 마이그레이션하고 AG를 사용하고 싶습니다. DTC는 AG ( Reference )에서 지원되지 않는다는 것을 읽었습니다 . 두 번째 데이터 센터의 세 번째 노드에서 DTC를 구성하는 방법을 찾지 못했습니다. 세 번째 노드에서 DTC를 구성하려고하면이 스크린 샷과 같이 사용할 수없는 것 같습니다.
가용성 그룹에 대한 Brent Ozar의 무료 설정 점검 목록 PDF 에서 다음을 나열합니다.
클러스터 설치 ...
29. FCI가 관련된 경우 계획 섹션 결정에 따라 DTC를 구성하십시오.
SQL Server 2012 AlwaysOn 가용성 그룹 에 대한 의견에서 Rock Brent는 "AG가 실행 중일 때 아무것도 변경되지 않습니다. 가용성 그룹의 데이터베이스는 다른 복제본으로 함께 장애 조치 될 때 트랜잭션 일관성을 지원하지 않습니다. .. "
따라서 거래가 AG 전환으로 유지되지 않는다는 것을 이해하는 한 가용성 그룹에서 DTC를 사용할 수있는 것처럼 보입니다. FCI 노드에서 트랜잭션을 유지 관리하는 데 필요하지 않습니다. 치명적인 재난 (주 데이터 센터를 잃어버린)의 경우 응용 프로그램에서 사용할 수있는 DTC 만 있으면됩니다.
세 번째 노드에서 DTC를 어떻게 구성합니까? 아니면 AG와 DTC가 필요한 응용 프로그램을 사용할 때 운이 좋지 않은 경우입니까?
업데이트 : 내가 해결 한 해결책은 로그 전달을 사용하는 것입니다. 그러나 장애 조치 (failover)의 경우 여전히 Node3에서 DTC를 사용할 수 있어야합니다. Node1과 Node2간에 공유되는 DTC의 클러스터 된 MSDTC-MSSQLSERVERCLU 인스턴스를 제거하여 사용할 수 있음을 발견했습니다. 제거되면 Node3에서 LocalDTC 인스턴스를 설정하고 구성 할 수 있습니다. 그 후 클러스터 된 MSDTC-MSSQLSERVERCLU 인스턴스를 다시 설치할 수 있습니다. 순서대로 설치 순서를 수행하면 작동하는 것 같습니다. 나는 잠시 동안 그런 식으로 달리고 있었고 아무런 부작용을 발견하지 못했습니다. AlwaysOn 가용성 그룹을 실행하는 경우에도 작동하는 것 같습니다. 분산 트랜잭션은 AG 장애 조치에서 유지되지 않으며 장애 조치 후에 작동하려면 새 트랜잭션이 필요하다는 것을 이해합니다. 그러나 나는