Menggunakan Pencerminan Database di Klien Asli SQL Server

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Catatan

Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Gunakan grup ketersediaan AlwaysOn sebagai gantinya.

Penting

SQL Server Native Client (sering disingkat SNAC) telah dihapus dari SQL Server 2022 (16.x) dan SQL Server Management Studio 19 (SSMS). SQL Server Native Client (SQLNCLI atau SQLNCLI11) dan Penyedia Microsoft OLE DB warisan untuk SQL Server (SQLOLEDB) tidak disarankan untuk pengembangan aplikasi baru. Beralih ke Microsoft OLE DB Driver (MSOLEDBSQL) baru untuk SQL Server atau Microsoft ODBC Driver terbaru untuk SQL Server ke depannya. Untuk SQLNCLI yang dikirim sebagai komponen SQL Server Database Engine (versi 2012 hingga 2019), lihat pengecualian Siklus Hidup Dukungan ini.

Pencerminan database, yang diperkenalkan di SQL Server 2005 (9.x), adalah solusi untuk meningkatkan ketersediaan database dan redundansi data. SQL Server Native Client menyediakan dukungan implisit untuk pencerminan database, sehingga pengembang tidak perlu menulis kode apa pun atau mengambil tindakan lain setelah dikonfigurasi untuk database.

Pencerminan database, yang diimplementasikan per database, menyimpan salinan database produksi SQL Server di server siaga. Server ini adalah server siaga panas atau hangat, tergantung pada konfigurasi dan status sesi pencerminan database. Server siaga panas mendukung failover cepat tanpa kehilangan transaksi yang dilakukan, dan server siaga yang hangat mendukung memaksa layanan (dengan kemungkinan kehilangan data).

Database produksi disebut database utama, dan salinan siaga disebut database cermin. Database utama dan database cermin harus berada di instans terpisah SQL Server (instans server), dan database tersebut harus berada di komputer terpisah jika memungkinkan.

Instans server produksi, yang disebut server utama, berkomunikasi dengan instans server siaga, yang disebut server cermin. Server utama dan cermin bertindak sebagai mitra dalam sesi pencerminan database. Jika server utama gagal, server cermin dapat membuat databasenya menjadi database utama melalui proses yang disebut failover. Misalnya, Partner_A dan Partner_B adalah dua server mitra, dengan database utama awalnya pada Partner_A sebagai server utama, dan database cermin berada di Partner_B sebagai server cermin. Jika Partner_A offline, database di Partner_B dapat gagal untuk menjadi database utama saat ini. Ketika Partner_A bergabung kembali dengan sesi pencerminan, itu menjadi server cermin dan databasenya menjadi database cermin.

Konfigurasi pencerminan database alternatif menawarkan tingkat performa dan keamanan data yang berbeda, dan mendukung berbagai bentuk failover. Untuk informasi selengkapnya, lihat Pencerminan Database (SQL Server).

Dimungkinkan untuk menggunakan alias saat menentukan nama database cermin.

Catatan

Untuk informasi tentang upaya koneksi awal dan upaya koneksi ulang ke database cermin, lihat Koneksi Klien ke Sesi Pencerminan Database (SQL Server).

Pertimbangan Pemrograman

Ketika server database utama gagal, aplikasi klien menerima kesalahan sebagai respons terhadap panggilan API, yang menunjukkan bahwa koneksi ke database telah hilang. Ketika ini terjadi, setiap perubahan yang tidak dilakukan pada database hilang dan transaksi saat ini digulung balik. Jika ini terjadi, aplikasi harus menutup koneksi (atau merilis objek sumber data) dan membukanya kembali. Koneksi secara transparan diarahkan kembali ke database cermin, yang sekarang bertindak sebagai server utama.

Ketika koneksi dibuat, server prinsipal mengirimkan identitas mitra failover-nya ke klien untuk digunakan ketika failover terjadi. Ketika aplikasi mencoba membuat koneksi setelah server utama gagal, klien tidak tahu identitas mitra failover. Untuk memungkinkan klien kesempatan untuk mengatasi skenario ini, properti inisialisasi dan kata kunci string koneksi terkait memungkinkan klien menentukan identitas mitra failover sendiri. Atribut klien hanya digunakan dalam skenario ini; jika server utama tersedia, server tersebut tidak digunakan. Jika server mitra failover yang disediakan oleh klien tidak merujuk ke server yang bertindak sebagai mitra failover, koneksi ditolak oleh server. Untuk memungkinkan aplikasi beradaptasi dengan perubahan konfigurasi, identitas mitra failover aktual dapat ditentukan dengan memeriksa atribut setelah koneksi dibuat. Anda harus mempertimbangkan untuk menyimpan informasi mitra untuk memperbarui string koneksi atau menyusun strategi coba lagi jika upaya pertama untuk membuat koneksi gagal.

Catatan

Anda harus secara eksplisit menentukan database yang akan digunakan oleh koneksi jika Anda ingin menggunakan fitur ini di properti/atribut DSN, string koneksi, atau koneksi. SQL Server Native Client tidak akan mencoba failover ke database mitra jika ini tidak dilakukan.

Pencerminan adalah fitur database. Aplikasi yang menggunakan beberapa database mungkin tidak dapat mengeksploitasi fitur ini.

Selain itu, nama server tidak peka huruf besar/kecil, tetapi nama database peka huruf besar/kecil. Oleh karena itu, Anda harus memastikan bahwa Anda menggunakan casing yang sama di DSN dan string koneksi.

Penyedia OLE DB Klien Asli SQL Server

Penyedia SQL Server Native Client OLE DB mendukung pencerminan database melalui koneksi dan atribut string koneksi. Properti SSPROP_INIT_FAILOVERPARTNER telah ditambahkan ke kumpulan properti DBPROPSET_SQLSERVERDBINIT, dan kata kunci FailoverPartner adalah atribut string koneksi baru untuk DBPROP_INIT_PROVIDERSTRING. Untuk informasi selengkapnya, lihat Menggunakan Kata Kunci String Koneksi ion dengan SQL Server Native Client.

Cache failover dipertahankan selama penyedia dimuat, yaitu sampai CoUninitialize dipanggil atau selama aplikasi memiliki referensi ke beberapa objek yang dikelola oleh penyedia SQL Server Native Client OLE DB seperti objek sumber data.

Untuk detail tentang dukungan penyedia SQL Server Native Client OLE DB untuk pencerminan database, lihat Properti Inisialisasi dan Otorisasi.

Driver ODBC Klien Asli SQL Server

Driver ODBC Klien Asli SQL Server mendukung pencerminan database melalui koneksi dan atribut string koneksi. Secara khusus, atribut SQL_COPT_SS_FAILOVER_PARTNER telah ditambahkan untuk digunakan dengan fungsi SQLSet Koneksi Attr dan SQLGet Koneksi Attr; dan kata kunci Failover_Partner telah ditambahkan sebagai atribut string koneksi baru.

Cache failover dipertahankan selama aplikasi memiliki setidaknya satu handel lingkungan yang dialokasikan. Sebaliknya, itu hilang ketika handel lingkungan terakhir dibatalkan alokasinya.

Catatan

Manajer Driver ODBC telah ditingkatkan untuk mendukung spesifikasi nama server failover.

Lihat Juga

Fitur Klien Asli SQL Server
Menyambungkan Klien ke Sesi Pencerminan Database (SQL Server)
Pencerminan Database (SQL Server)