AlwaysOn AG, DTC dengan failover

14

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: masukkan deskripsi gambar di sini

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:

masukkan deskripsi gambar di sini

Tangkapan layar ini menunjukkan bahwa saya dapat mengonfigurasi DTC di salah satu node FCI (mana yang aktif): masukkan deskripsi gambar di sini

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:

masukkan deskripsi gambar di sini

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

Elijah W. Gagne
sumber

Jawaban:

15

Elia. Ada dua pertanyaan terpisah di sini:

1. Apakah DTC didukung dengan Grup Ketersediaan AlwaysOn?

Seperti yang dikatakan Microsoft dalam huruf besar, tidak. Saya benar-benar mengerti bahwa Anda ingin mencobanya, tetapi perlu diingat bahwa Anda sekarang memasukkan sesuatu ke dalam produksi yang Microsoft tidak akan mendukung, DAN Anda menggunakan dua fitur niche yang terpisah bersama-sama (AG dan DTC). Jika ada yang salah, Anda akan berada di dunia yang terluka. Ini bukan sesuatu yang pernah saya pikirkan tentang mencoba dalam produksi.

Ingatlah bahwa jika manajer Anda mengetahui bahwa Anda menggunakan sesuatu yang secara spesifik dikatakan Microsoft dalam surat-surat besar, "ANDA TIDAK BISA MELAKUKANNYA," dan Anda memiliki pemadaman apa pun di mana Anda harus menghubungi Microsoft untuk mendapatkan dukungan, Anda akan memiliki beberapa penjelasan yang buruk untuk dilakukan.

2. Bagaimana seharusnya DTC dikonfigurasi dalam multi-node, multi-subnet cluster?

Baca posting Allan Hirt tentang konfigurasi DTC dengan beberapa contoh SQL Server dalam sebuah cluster, dan pastikan untuk membaca semua tautan dalam posting juga.

Brent Ozar
sumber
Info hebat di pos Allan Hirt. Peringatan Anda telah meyakinkan saya bahwa saya kurang beruntung dan tidak bisa melakukan ini
Elijah W. Gagne