Ketersediaan tinggi dan pemulihan bencana di Linux dan macOS

Unduh driver ODBC

Driver ODBC untuk Linux dan macOS mendukung grup ketersediaan AlwaysOn. Untuk informasi selengkapnya tentang grup ketersediaan AlwaysOn, lihat:

Anda dapat menentukan pendengar grup ketersediaan dari grup ketersediaan tertentu dalam string koneksi. Jika aplikasi ODBC di Linux atau macOS tersambung ke database dalam grup ketersediaan yang gagal, koneksi asli rusak. Aplikasi harus membuka koneksi baru untuk melanjutkan pekerjaan setelah failover.

Driver ODBC di Linux dan macOS melakukan iterasi secara berurutan melalui semua alamat IP yang terkait dengan nama host DNS, jika Anda tidak terhubung ke pendengar grup ketersediaan. Jika alamat IP pertama server DNS yang dikembalikan tidak dapat disambungkan, iterasi ini dapat memakan waktu.

Saat Anda menyambungkan ke pendengar grup ketersediaan, driver mencoba membuat koneksi ke semua alamat IP secara paralel. Jika upaya koneksi berhasil, driver akan membuang upaya koneksi yang tertunda.

Catatan

Karena koneksi dapat gagal karena kegagalan grup ketersediaan, Anda harus menerapkan logika coba lagi koneksi. Coba lagi koneksi yang gagal hingga koneksi tersambung kembali. Meningkatkan batas waktu koneksi dan menerapkan logika coba lagi koneksi meningkatkan kemungkinan menyambungkan ke grup ketersediaan.

Menyambungkan dengan MultiSubnetFailover

Selalu tentukan MultiSubnetFailover=Yes kapan Anda menyambungkan ke pendengar grup ketersediaan SQL Server 2012 (11.x) atau instans kluster failover SQL Server 2012 (11.x). MultiSubnetFailovermemungkinkan failover yang lebih cepat untuk semua grup ketersediaan dan instans kluster failover di SQL Server 2012 (11.x).

Properti koneksi ini juga secara signifikan mengurangi waktu failover untuk topologi Always On tunggal dan multi-subnet. Selama failover multi-subnet, klien mencoba koneksi secara paralel. Selama failover subnet, driver secara agresif mencoba kembali koneksi TCP.

Properti MultiSubnetFailover koneksi menunjukkan bahwa aplikasi sedang disebarkan dalam grup ketersediaan atau instans kluster failover. Driver mencoba menyambungkan ke database pada instans SQL Server utama dengan mencoba menyambungkan ke semua alamat IP.

Ketika Anda terhubung dengan MultiSubnetFailover=Yes, klien mencoba kembali upaya koneksi TCP lebih cepat daripada interval transmisi ulang TCP default sistem operasi. MultiSubnetFailover=Yes memungkinkan koneksi ulang yang lebih cepat setelah failover grup ketersediaan AlwaysOn, atau instans kluster failover AlwaysOn. MultiSubnetFailover=Yes berlaku untuk grup ketersediaan tunggal dan multi-subnet dan instans kluster failover.

Gunakan MultiSubnetFailover=Yes saat Anda menyambungkan ke pendengar grup ketersediaan atau instans kluster failover. Jika tidak, performa aplikasi Anda dapat terpengaruh secara negatif.

Rekomendasi

Saat Anda menyambungkan ke server dalam grup ketersediaan atau instans kluster failover:

  • Tentukan MultiSubnetFailover=Yes untuk meningkatkan performa saat Anda menyambungkan ke satu grup ketersediaan subnet atau multi-subnet.

  • Tentukan pendengar grup ketersediaan grup ketersediaan sebagai server dalam string koneksi Anda.

  • Anda tidak dapat tersambung ke instans SQL Server yang dikonfigurasi dengan lebih dari 64 alamat IP.

  • Autentikasi SQL Server atau Autentikasi Kerberos dapat digunakan dengan MultiSubnetFailover=Yes, tanpa memengaruhi perilaku aplikasi.

  • Anda dapat meningkatkan nilai loginTimeout untuk mengakomodasi waktu failover dan mengurangi upaya coba lagi koneksi aplikasi.

  • Transaksi terdistribusi tidak didukung.

Jika perutean baca-saja tidak berlaku, menyambungkan ke lokasi replika sekunder dalam grup ketersediaan gagal dalam situasi berikut:

  • Jika lokasi replika sekunder tidak dikonfigurasi untuk menerima koneksi.

  • Jika aplikasi menggunakan ApplicationIntent=ReadWrite dan lokasi replika sekunder dikonfigurasi untuk akses baca-saja.

Koneksi gagal jika replika utama dikonfigurasi untuk menolak beban kerja baca-saja, dan string koneksi berisi ApplicationIntent=ReadOnly.

Tentukan niat aplikasi

Anda dapat menentukan kata kunci ApplicationIntent dalam string koneksi Anda. Nilai yang dapat ditetapkan adalah ReadWrite (default) atau ReadOnly.

Saat Anda mengatur ApplicationIntent=ReadOnly, klien meminta beban kerja baca saat menyambungkan. Server memberlakukan niat pada waktu koneksi, dan selama USE pernyataan database.

Kata ApplicationIntent kunci tidak berfungsi dengan database baca-saja warisan.

Target ReadOnly

Saat koneksi memilih ReadOnly, koneksi ditetapkan ke salah satu konfigurasi khusus berikut yang mungkin ada untuk database:

  • Selalu Aktif. Database dapat mengizinkan atau melarang beban kerja baca pada database grup ketersediaan yang ditargetkan. Pilihan ini dikendalikan dengan menggunakan ALLOW_CONNECTIONS klausul PRIMARY_ROLE pernyataan Transact-SQL dan SECONDARY_ROLE .

  • Replikasi lokasi geografis

  • Peluasan skala

Jika tidak ada target khusus yang tersedia, database reguler dibaca.

Kata ApplicationIntent kunci memungkinkan perutean baca-saja.

Perutean baca-saja

Perutean baca-saja adalah fitur yang dapat memastikan ketersediaan replika database baca-saja. Untuk mengaktifkan perutean baca-saja, semua hal berikut ini berlaku:

  • Anda harus tersambung ke listener grup ketersediaan AlwaysOn.

  • Kata ApplicationIntent kunci string koneksi harus diatur ke ReadOnly.

  • Administrator database harus mengonfigurasi grup ketersediaan untuk mengaktifkan perutean baca-saja.

Beberapa koneksi yang masing-masing menggunakan perutean baca-saja mungkin tidak semuanya tersambung ke replika baca-saja yang sama. Perubahan sinkronisasi database atau perubahan konfigurasi perutean server dapat mengakibatkan koneksi klien ke replika baca-saja yang berbeda.

Anda dapat memastikan bahwa semua permintaan baca-saja tersambung ke replika baca-saja yang sama dengan tidak meneruskan pendengar grup ketersediaan ke Server kata kunci string koneksi. Sebagai gantinya, tentukan nama instans baca-saja.

Perutean baca-saja mungkin memakan waktu lebih lama daripada menyambungkan ke primer. Ini karena perutean baca-saja pertama kali terhubung ke primer, dan kemudian mencari sekunder yang dapat dibaca terbaik yang tersedia. Karena beberapa langkah ini, Anda harus meningkatkan batas waktu anda login menjadi setidaknya 30 detik.

Sintaks ODBC

Dua kata kunci string koneksi ODBC mendukung grup ketersediaan AlwaysOn:

  • ApplicationIntent

  • MultiSubnetFailover

Untuk informasi selengkapnya tentang kata kunci string koneksi ODBC, lihat Menggunakan kata kunci string koneksi dengan SQL Server Native Client.

Atribut koneksi yang setara adalah:

  • SQL_COPT_SS_APPLICATION_INTENT

  • SQL_COPT_SS_MULTISUBNET_FAILOVER

Untuk informasi selengkapnya tentang atribut koneksi ODBC, lihat SQLSetConnectAttr.

Aplikasi ODBC yang menggunakan grup ketersediaan AlwaysOn dapat menggunakan salah satu dari dua fungsi untuk membuat koneksi:

Fungsi Deskripsi
Fungsi SQLConnect SQLConnect mendukung dan ApplicationIntentMultiSubnetFailover melalui nama sumber data (DSN) atau atribut koneksi.
Fungsi SQLDriverConnect SQLDriverConnectApplicationIntent mendukung dan MultiSubnetFailover melalui DSN, kata kunci string koneksi, atau atribut koneksi.

Lihat juga

Kata kunci string koneksi dan nama sumber data (DSN)

Panduan pemrograman

Catatan rilis