Masalah: Bagaimana saya bisa menjalankan Koordinator Transaksi Terdistribusi (DTC) pada semua server di AlwaysOn Availability Group (AG)? Saya TIDAK perlu memelihara transaksi selama acara failover / switchover.
Penyetelan: Saya memiliki Windows Failover Cluster (WSFC) dengan tiga server Windows 2008 R2 di mana mereka semua menjalankan SQL 2012. Dua server berada dalam satu pusat data dan merupakan bagian dari AlwaysOn Failover Cluster (FCI), sedangkan server ketiga berada di pusat data kedua. WSFC adalah multi-subnet cluster. Berikut ini sketsa pengaturan:
Saya sudah bisa menginstal dan mengkonfigurasi DTC agar berfungsi di antara dua node FCI karena keduanya berada di subnet dan berbagi penyimpanan yang sama. Saya telah mengkonfigurasi beberapa AG dan mereka telah bekerja dengan baik. Tangkapan layar ini menunjukkan DTC yang diinstal pada FCI:
Tangkapan layar ini menunjukkan bahwa saya dapat mengonfigurasi DTC di salah satu node FCI (mana yang aktif):
Saya ingin memigrasi aplikasi yang menggunakan DTC ke kluster ini dan menggunakan AG. Saya pernah membaca bahwa DTC tidak didukung dengan AG ( Referensi ). Saya belum dapat menemukan cara untuk mengkonfigurasi DTC pada simpul ketiga di pusat data kedua. Ketika saya mencoba mengkonfigurasi DTC pada simpul ketiga, sepertinya tidak tersedia, seperti yang ditunjukkan pada tangkapan layar ini:
Dalam Daftar Periksa Pengaturan Gratis Brent Ozar, PDF untuk Grup Ketersediaan, ia mendaftar:
Instalasi Cluster ...
29. Jika FCI terlibat, konfigurasikan DTC per keputusan bagian Perencanaan Anda.
Dalam komentar di SQL Server 2012 AlwaysOn Availability Groups Rock Brent mengatakan bahwa "... tidak ada yang berubah ketika AG sedang bermain. Perlu diingat bahwa database dalam Grup Availability tidak mendukung konsistensi transaksional ketika gagal bersama-sama ke replika lain. .. "
Ini membuatnya tampak bahwa DTC dapat digunakan dalam Grup yang Tersedia selama Anda memahami bahwa transaksi tidak akan dipertahankan dalam peralihan AG. Saya tidak membutuhkannya untuk mempertahankan transaksi dari node FCI. Saya hanya perlu DTC tersedia untuk aplikasi untuk digunakan dalam kasus bencana bencana (di mana saya kehilangan pusat data utama saya).
Bagaimana cara mengkonfigurasi DTC pada simpul ketiga saya? Atau, apakah saya hanya kurang beruntung ketika menggunakan AG dan aplikasi yang membutuhkan DTC?
PEMBARUAN: Solusi yang saya pilih adalah menggunakan Pengiriman Log. Namun, jika gagal, saya masih perlu DTC tersedia di Node3. Saya telah menemukan bahwa itu menjadi tersedia dengan menghapus instalan MSDTC-MSSQLSERVERCLU contoh DTC yang dibagi antara Node1 dan Node2. Setelah dihapus, saya dapat mengatur dan mengkonfigurasi instance LocalDTC di Node3. Setelah itu, saya dapat menginstal ulang instance MSDTC-MSSQLSERVERCLU yang dikelompokkan. Melakukan urutan pemasangan dalam urutan itu tampaknya berhasil. Saya sudah berlari seperti itu untuk sementara waktu sekarang dan saya belum menemukan efek buruk apa pun. Sepertinya ini juga akan berfungsi untuk menjalankan Grup Ketersediaan AlwaysOn. Saya mengerti bahwa transaksi yang didistribusikan tidak akan disimpan dalam failover AG, saya hanya perlu yang baru untuk bekerja setelah failover. Tapi aku berlindung