장애 조치 기능이있는 AlwaysOn AG, DTC


14

문제점 : 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 장애 조치에서 유지되지 않으며 장애 조치 후에 작동하려면 새 트랜잭션이 필요하다는 것을 이해합니다. 그러나 나는

답변:


15

엘리야. 여기에는 두 가지 별도의 질문이 있습니다.

1. AlwaysOn 가용성 그룹에서 DTC가 지원됩니까?

Microsoft가 큰 글씨로 말했듯이 아닙니다. 나는 당신이 어쨌든 시도하고 싶다는 것을 완전히 이해하지만, 이제는 Microsoft가 단순히 지원하지 않는 무언가를 프로덕션에 넣고 있으며 두 가지 별도의 틈새 기능 (AGs 및 DTC)을 함께 사용하고 있음을 명심하십시오. 무엇이든 잘못되면, 당신은 상처의 세계에있을 것입니다. 이것은 단지 생산 시도에 대해 생각조차하지 않은 것입니다.

관리자가 Microsoft가 구체적으로 "대표 할 수 없습니다"라는 큰 글자를 배포 한 것을 발견하고 지원을 위해 Microsoft에 전화해야 할 경우 모든 종류의 중단이 발생한다는 사실을 명심하십시오. 추악한 설명이 있습니다.

2. 다중 노드, 다중 서브넷 클러스터에서 DTC를 어떻게 구성해야합니까?

읽기 앨런 허트의 DTC를 구성하는 방법에 대한 포스트 클러스터에 SQL Server의 여러 인스턴스와는 게시물에 링크의 모든뿐만 아니라 읽을 수 있는지 확인하십시오.


Allan Hirt의 게시물에 대한 훌륭한 정보. 당신의 경고는 내가 운이
나쁘고
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.