Interoperabilitas fitur dengan listener AG dan DNN

Berlaku untuk:SQL Server di Azure VM

Tip

Ada banyak metode untuk menyebarkan grup ketersediaan. Sederhanakan penyebaran Anda dan hilangkan kebutuhan akan Azure Load Balancer atau nama jaringan terdistribusi (DNN) untuk grup ketersediaan AlwaysOn Anda dengan membuat komputer virtual (VM) SQL Server Anda di beberapa subnet dalam jaringan virtual Azure yang sama. Jika Anda telah membuat grup ketersediaan dalam satu subnet, Anda dapat memigrasikannya ke lingkungan multi-subnet.

Ada fitur SQL Server tertentu yang mengandalkan nama jaringan virtual (VNN) yang dikodekan secara permanen. Dengan demikian, saat menggunakan listener nama jaringan terdistribusi (DNN) dengan grup ketersediaan AlwaysOn dan SQL Server di Azure VM dalam subnet tunggal, mungkin ada beberapa pertimbangan tambahan.

Artikel ini menjelaskan fitur SQL Server dan interoperabilitas dengan grup ketersediaan listener DNN.

Perbedaan perilaku

Ada beberapa perbedaan perilaku antara fungsionalitas pendengar VNN dan pendengar DNN yang penting untuk diperhatikan:

  • Waktu failover: Waktu failover lebih cepat saat menggunakan pendengar DNN karena tidak perlu menunggu penyeimbang muatan jaringan untuk mendeteksi peristiwa kegagalan dan mengubah peruteannya.
  • Koneksi yang ada: Koneksi yang dibuat ke database tertentu dalam grup ketersediaan yang gagal ditutup, tetapi koneksi lain ke replika utama tetap terbuka, karena DNN tetap online selama proses failover. Ini berbeda dari lingkungan VNN tradisional tempat semua koneksi ke replika utama biasanya ditutup ketika grup ketersediaan gagal, pendengar menjadi offline, dan replika utama bertransisi ke peran sekunder. Saat menggunakan pendengar DNN, Anda mungkin perlu menyesuaikan string koneksi aplikasi untuk memastikan bahwa koneksi dialihkan ke replika utama baru setelah kegagalan.
  • Transaksi terbuka: Buka transaksi terhadap database dalam grup ketersediaan failover tutup dan gulung balik, dan Anda perlu menyambungkan kembali secara manual. Misalnya, di SQL Server Management Studio, tutup jendela kueri dan buka yang baru.

Driver klien

Untuk driver ODBC, OLE DB, ADO.NET, JDBC, PHP, dan Node.js, pengguna perlu secara eksplisit menentukan nama listener dan port DNN sebagai nama server dalam string koneksi. Untuk memastikan konektivitas cepat terhadap kegagalan, tambahkan MultiSubnetFailover=True ke string koneksi jika klien SQL mendukungnya.

Alat

Pengguna SQL Server Management Studio, sqlcmd, Azure Data Studio, dan SQL Server Data Tools perlu secara eksplisit menentukan nama listener dan port DNN sebagai nama server dalam string koneksi untuk tersambung ke listener.

Membuat listener DNN melalui GUI SQL Server Management Studio (SSMS) saat ini tidak didukung.

Grup ketersediaan dan FCI

Anda dapat mengonfigurasi grup ketersediaan Always On dengan menggunakan instans kluster failover (FCI) sebagai salah satu replika. Agar konfigurasi ini berfungsi dengan listener DNN, instans kluster failover juga harus menggunakan DNN karena tidak ada cara untuk memasukkan alamat IP virtual FCI ke dalam daftar IP AG DNN.

Dalam konfigurasi ini, URL titik akhir pencerminan untuk replika FCI perlu menggunakan FCI DNN. Demikian juga, jika FCI digunakan sebagai replika baca-saja, perutean baca-saja ke replika FCI perlu menggunakan FCI DNN.

Format untuk titik akhir pencerminan adalah: ENDPOINT_URL = 'TCP://<FCI DNN DNS name>:<mirroring endpoint port>'.

Misalnya, jika nama DNS FCI DNN Anda adalah dnnlsnr, dan 5022 merupakan port dari titik akhir pencerminan FCI, cuplikan kode Transact-SQL (T-SQL) untuk membuat URL titik akhir terlihat seperti:

ENDPOINT_URL = 'TCP://dnnlsnr:5022'

Demikian juga, format untuk URL perutean baca-saja adalah: TCP://<FCI DNN DNS name>:<SQL Server instance port>.

Misalnya, jika nama DNS DNN Anda adalah dnnlsnr, dan 1444 merupakan port yang digunakan oleh target baca-saja SQL Server FCI, cuplikan kode T-SQL untuk membuat URL perutean baca-saja terlihat seperti:

READ_ONLY_ROUTING_URL = 'TCP://dnnlsnr:1444'

Anda dapat menghilangkan port di URL jika itu merupakan port 1433 default. Untuk instans yang dinamai, konfigurasikan port statik untuk instans yang dinamai dan tentukan dalam URL perutean baca-saja.

Grup ketersediaan terdistribusi

Jika pendengar grup ketersediaan Anda dikonfigurasi menggunakan nama jaringan terdistribusi (DNN), maka mengonfigurasi grup ketersediaan terdistribusi di atas grup ketersediaan Anda tidak didukung.

Replikasi

Transaksional, Gabungkan, dan Replikasi Snapshot semuanya mendukung penggantian listener VNN dengan listener DNN dan port dalam objek replikasi yang tersambung ke listener.

Untuk informasi selengkapnya tentang cara menggunakan replikasi dengan grup ketersediaan, lihat Penerbit dan AG, Pelanggan dan AG, dan Distributor dan AG.

MSDTC

Koordinator Transaksi Terdistribusi lokal dan terkluster didukung tetapi Koordinator Transaksi Terdistribusi menggunakan port dinamis, yang memerlukan Azure Load Balancer standar untuk mengonfigurasi port ketersediaan tinggi. Dengan demikian, VM harus menggunakan reservasi IP standar, atau tidak dapat diekspos ke internet.

Tentukan dua aturan, satu untuk port Pemeta Titik Akhir RPC 135, dan satu untuk port Koordinator Transaksi Terdistribusi nyata. Setelah kegagalan, ubah aturan LB ke port Koordinator Transaksi Terdistribusi baru setelah berubah pada node baru.

Jika Koordinator Transaksi Terdistribusi bersifat lokal, pastikan mengizinkan komunikasi outbound.

Kueri terdistribusi

Kueri terdistribusi bergantung pada server yang ditautkan, yang dapat dikonfigurasi menggunakan listener dan port AG DNN. Jika port bukan 1433, pilih opsi Gunakan sumber data lain di SQL Server Management Studio (SSMS) saat mengonfigurasi server tertaut Anda.

FILESTREAM

FILESTREAM didukung tetapi tidak untuk skenario di mana pengguna mengakses berbagi file terlingkup dengan menggunakan Windows File API.

FileTable

FileTable didukung tetapi tidak untuk skenario di mana pengguna mengakses berbagi file terlingkup dengan menggunakan Windows File API.

Server yang ditautkan

Konfigurasikan server yang ditautkan menggunakan nama listener dan port AG DNN. Jika port bukan 1433, pilih opsi Gunakan sumber data lain di SQL Server Management Studio (SSMS) saat mengonfigurasi server tertaut Anda.

Tanya jawab umum

Versi SQL Server mana yang memberikan dukungan listener AG DNN?

SQL Server 2019 CU 8 dan yang lebih baru.

Berapa lama waktu kegagalan yang diharapkan ketika listener DNN digunakan?

Untuk pendengar DNN, waktu failover sama dengan waktu failover AG, tanpa waktu tambahan (seperti waktu pemeriksaan saat Anda menggunakan Azure Load Balancer).

Apakah ada persyaratan versi untuk klien SQL untuk mendukung DNN dengan OLEDB dan ODBC?

Kami merekomendasikan dukungan string koneksi MultiSubnetFailover=True untuk listener DNN. Ini tersedia dimulai dengan SQL Server 2012 (11.x).

Apakah ada perubahan konfigurasi SQL Server yang diperlukan bagi saya untuk menggunakan listener DNN?

SQL Server tidak memerlukan perubahan konfigurasi apa pun untuk menggunakan DNN, tetapi beberapa fitur SQL Server mungkin memerlukan pertimbangan lebih lanjut.

Apakah DNN mendukung kluster multi-subnet?

Ya. Kluster mengikat DNN di DNS dengan alamat IP fisik semua replika dalam grup ketersediaan terlepas dari subnet. Klien SQL mencoba semua alamat IP nama DNS terlepas dari subnetnya.

Apakah listener DNN grup ketersediaan mendukung perutean baca-saja?

Ya. Perutean baca-saja didukung dengan listener DNN.