Bagikan melalui


Interoperabilitas fitur dengan SQL Server FCI & 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 sumber daya nama jaringan terdistribusi (DNN) dengan instans kluster failover dan SQL Server pada komputer virtual Azure, ada beberapa pertimbangan tambahan.

Dalam artikel ini, pelajari cara mengonfigurasi alias jaringan saat menggunakan sumber daya DNN, serta fitur SQL Server mana yang memerlukan pertimbangan tambahan.

Membuat alias jaringan (FCI)

Beberapa komponen sisi server mengandalkan nilai VNN yang dikodekan secara permanen, dan memerlukan alias jaringan yang memetakan VNN ke nama DNS DNN agar berfungsi dengan baik. Ikuti langkah-langkah dalam Membuat alias server untuk membuat alias yang memetakan VNN ke nama DNS DNN.

Untuk instans default, Anda dapat memetakan VNN ke nama DNS DNN secara langsung, sehingga VNN = nama DNS DNN. Misalnya, jika nama VNN adalah FCI1, nama instans adalah MSSQLSERVER, dan DNN adalah FCI1DNN (klien yang sebelumnya terhubung ke FCI, dan sekarang mereka terhubung ke FCI1DNN) maka petakan VNN FCI1 ke DNN FCI1DNN.

Untuk instans yang dinamai, pemetaan alias jaringan harus dilakukan untuk instans lengkap, seperti VNN\Instance = DNN\Instance. Misalnya, jika nama VNN adalah FCI1, nama instans adalah instA, dan DNN adalah FCI1DNN (klien yang sebelumnya terhubung ke FCI1\instA, dan sekarang mereka terhubung ke FCI1DNN\instaA) maka petakan VNN FCI1\instaA ke DNN FCI1DNN\instaA.

Driver klien

Untuk driver ODBC, OLEDB, ADO.NET, JDBC, PHP, dan Node.js, pengguna harus secara eksplisit menentukan nama DNS 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 DNS DNN sebagai nama server dalam string koneksi.

Grup ketersediaan dan FCI

Anda dapat mengonfigurasi grup ketersediaan AlwaysOn dengan menggunakan instans kluster failover sebagai salah satu replika. 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://<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://<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.

Replikasi

Replikasi memiliki tiga komponen: Penerbit, Distributor, Pelanggan. Salah satu komponen ini dapat menjadi instans kluster failover. Karena FCI VNN banyak digunakan dalam konfigurasi replikasi, baik secara eksplisit maupun implisit, alias jaringan yang memetakan VNN ke DNN mungkin diperlukan agar replikasi berfungsi.

Tetap gunakan nama VNN sebagai nama FCI dalam replikasi, tetapi buat alias jaringan dalam situasi jarak jauh berikut sebelum Anda mengonfigurasi replikasi:

Komponen replikasi (FCI dengan DNN) Komponen jarak jauh Peta alias jaringan Server dengan peta jaringan
Publisher Distributor Penerbit VNN ke Penerbit DNN Distributor
Distributor Pelanggan Distributor VNN ke Distributor DNN Pelanggan
Distributor Publisher Distributor VNN ke Distributor DNN Publisher
Pelanggan Distributor Pelanggan VNN ke Pelanggan DNN Distributor

Contohnya, misalnya Anda memiliki Penerbit yang dikonfigurasi sebagai FCI menggunakan DNN dalam topologi replikasi, dan Distributornya jarak jauh. Dalam hal ini, buat alias jaringan di server Distributor untuk memetakan Penerbit VNN ke Penerbit DNN:

Configure the DNN DNS name as the network alias using SQL Server Configuration Manager.

Gunakan nama instans lengkap untuk instans yang dinamai, seperti contoh gambar berikut:

Use the full instance name when configuring a network alias for a named instance.

Pencerminan Database

Anda dapat mengonfigurasi pencerminan database dengan FCI sebagai salah satu mitra pencerminan database. Konfigurasikan dengan menggunakan T-SQL daripada GUI SQL Server Management Studio. Menggunakan T-SQL akan memastikan bahwa titik akhir pencerminan database dibuat menggunakan DNN, bukan VNN.

Misalnya, jika nama DNS DNN Anda adalah dnnlsnr, dan titik akhir pencerminan database adalah 7022, cuplikan kode T-SQL berikut akan mengonfigurasi mitra pencerminan database:

ALTER DATABASE AdventureWorks
    SET PARTNER =
    'TCP://dnnlsnr:7022'
GO 

Untuk akses klien, properti Mitra Partner dapat menghandel kegagalan pencerminan database, tetapi tidak dengan kegagalan FCI.

MSDTC

FCI dapat berpartisipasi dalam transaksi terdistribusi yang dikoordinasikan oleh Koordinator Transaksi Terdistribusi (MSDTC). MSDTC berkluster dan MSDTC lokal didukung dengan FCI DNN. Di Azure, Azure Load Balancer diperlukan untuk penyebaran MSDTC berkluster.

Tip

DNN yang ditetapkan dalam FCI tidak menggantikan persyaratan Azure Load Balancer untuk MSDTC berkluster.

FileStream

Meskipun FileStream didukung untuk database di FCI, mengakses FileStream atau FileTable menggunakan API Sistem File dengan DNN tidak didukung.

Server yang ditautkan

Gunakan server tertaut dengan FCI DNN didukung. Gunakan DNN secara langsung untuk mengonfigurasi server yang ditautkan, atau gunakan alias jaringan untuk memetakan VNN ke DNN.

Misalnya, untuk membuat server tertaut dengan nama DNS DNN dnnlsnr untuk instans yang dinamai insta1, gunakan perintah T-SQL berikut:

USE [master]   
GO   

EXEC master.dbo.sp_addlinkedserver    
    @server = N'dnnlsnr\inst1',    
    @srvproduct=N'SQL Server' ;   
GO 

Atau, Anda dapat membuat server yang ditautkan menggunakan nama jaringan virtual (VNN) sebagai gantinya, tetapi Anda kemudian perlu menentukan alias jaringan untuk memetakan VNN ke DNN.

Misalnya, untuk nama instans insta1, nama VNN vnnname, dan nama DNN dnnlsnr, gunakan perintah Transact-SQL (T-SQL) berikut untuk membuat server yang ditautkan menggunakan VNN:

USE [master]
GO   

EXEC master.dbo.sp_addlinkedserver   
    @server = N'vnnname\inst1',    
    @srvproduct=N'SQL Server' ;   
GO 

Kemudian, buat alias jaringan untuk memetakan vnnname\insta1 ke dnnlsnr\insta1.

Pertanyaan yang Sering Ditanyakan

  • Versi SQL Server mana yang membawa dukungan DNN?

    SQL Server 2019 CU2 dan yang lebih baru.

  • Berapa waktu failover yang diharapkan ketika DNN digunakan?

    Untuk DNN, waktu failover hanya akan menjadi waktu failover FCI, tanpa penambahan waktu (seperti waktu probe 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 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 untuk menggunakan DNN, tetapi beberapa fitur SQL Server mungkin memerlukan lebih banyak pertimbangan.

  • Apakah DNN mendukung kluster multi-subnet?

    Ya. Kluster mengikat DNN di DNS dengan alamat IP fisik dari semua simpul dalam kluster terlepas dari subnetnya. Klien SQL mencoba semua alamat IP nama DNS terlepas dari subnetnya.

Langkah berikutnya

Untuk mempelajari selengkapnya, lihat: