Bagikan melalui


Tentang Akses Koneksi Klien ke Replika Ketersediaan (SQL Server)

Dalam grup ketersediaan AlwaysOn, Anda dapat mengonfigurasi satu atau lebih replika untuk mengizinkan koneksi hanya baca ketika beroperasi dalam peran sekunder (yaitu, saat beroperasi sebagai replika sekunder). Anda juga dapat mengonfigurasi setiap replika ketersediaan untuk mengizinkan atau mengecualikan koneksi baca-saja saat berjalan di bawah peran utama (yaitu, saat berjalan sebagai replika utama).

Untuk memfasilitasi akses klien ke database utama atau sekunder dari grup ketersediaan tertentu, Anda harus menentukan pendengar grup ketersediaan. Secara default, pendengar grup ketersediaan mengarahkan koneksi masuk ke replika utama. Namun, Anda dapat mengonfigurasi grup ketersediaan untuk mendukung perutean baca-saja, yang memungkinkan pendengar grup ketersediaannya mengalihkan permintaan koneksi aplikasi baca-niat ke replika sekunder yang dapat dibaca. Untuk informasi selengkapnya, Anda dapat melihat Mengonfigurasi Perutean Read-Only untuk Grup Ketersediaan (SQL Server).

Selama failover, replika sekunder beralih ke peran utama dan replika utama sebelumnya beralih ke peran sekunder. Selama proses failover, semua koneksi klien ke replika utama dan replika sekunder dihentikan. Setelah failover, ketika klien terhubung kembali ke pendengar grup ketersediaan, pendengar menyambungkan kembali klien ke replika utama baru, kecuali untuk permintaan koneksi niat baca. Jika perutean baca-saja dikonfigurasi pada klien dan instans server yang menghosting replika utama baru serta setidaknya satu replika sekunder yang terbaca, permohonan koneksi berniat baca dirutekan ulang ke replika sekunder yang mendukung jenis akses koneksi yang diinginkan oleh klien. Untuk memastikan pengalaman klien yang anggun setelah failover, penting untuk mengonfigurasi akses koneksi untuk peran sekunder dan utama dari setiap replika ketersediaan.

Nota

Untuk informasi tentang pendengar grup ketersediaan, yang menangani permintaan koneksi klien, lihat Listener Grup Ketersediaan, Konektivitas Klien, dan Failover Aplikasi (SQL Server).

Dalam Topik ini:

Jenis Akses Koneksi yang Didukung oleh Peran Sekunder

Peran sekunder mendukung tiga alternatif untuk koneksi klien, sebagai berikut:

Tidak ada koneksi
Tidak ada koneksi pengguna yang diizinkan. Database sekunder tidak tersedia untuk akses baca. Ini adalah perilaku default dalam peran sekunder.

Hanya koneksi yang ditujukan untuk membaca
Database sekunder hanya tersedia untuk koneksi yang Application Intent properti koneksinya diatur ke ReadOnly (koneksi baca-niat).

Untuk informasi tentang properti koneksi ini, lihat Dukungan Klien Asli SQL Server untuk Ketersediaan Tinggi, Pemulihan Bencana.

Perbolehkan koneksi hanya-baca
Semua database sekunder tersedia untuk koneksi akses baca. Opsi ini memungkinkan klien versi yang lebih rendah untuk terhubung.

Untuk informasi selengkapnya, lihat Mengonfigurasi akses Read-Only pada Replika Ketersediaan (SQL Server).

Jenis Akses Koneksi yang Didukung oleh Peran Utama

Peran utama mendukung dua alternatif untuk koneksi klien, sebagai berikut:

Semua koneksi diperbolehkan
Koneksi baca-tulis dan baca saja diperbolehkan untuk database utama. Ini adalah perilaku default untuk peran utama.

Perbolehkan hanya koneksi baca-tulis
Application Intent Ketika properti koneksi diatur ke ReadWrite atau tidak diatur, koneksi diizinkan. Koneksi yang Application Intent kata kunci string koneksinya diatur ke ReadOnly tidak diperbolehkan. Mengizinkan hanya koneksi baca-tulis dapat membantu mencegah pelanggan Anda menyambungkan beban kerja dengan niat baca ke replika utama secara tidak sengaja.

Untuk informasi tentang properti koneksi ini, lihat Menggunakan Kata Kunci String Koneksi dengan SQL Server Native Client.

Untuk informasi selengkapnya, lihat Mengonfigurasi akses Read-Only pada Replika Ketersediaan (SQL Server).

Bagaimana Konfigurasi Akses Koneksi Memengaruhi Konektivitas Klien

Pengaturan akses koneksi replika menentukan apakah upaya koneksi gagal atau berhasil. Tabel berikut ini meringkas apakah upaya koneksi tertentu berhasil atau gagal untuk setiap pengaturan akses koneksi.

Peran Replika Akses Sambungan Didukung di Replika Tujuan Koneksi Hasil Connection-Attempt
Menengah Semua Intensi baca, baca-tulis, atau tidak ada intensi koneksi yang ditentukan Keberhasilan
Menengah Tidak ada (Ini adalah perilaku sekunder default.) Niat baca, baca-tulis, atau tidak ada niat koneksi yang ditentukan Kegagalan
Menengah Hanya untuk dibaca Maksud membaca Keberhasilan
Menengah Hanya untuk dibaca Baca-tulis atau tidak ada tujuan koneksi yang ditentukan Kegagalan
Utama Semua (Ini adalah perilaku utama default.) Hanya baca, baca-tulis, atau tidak ada tujuan koneksi yang ditentukan Keberhasilan
Utama Baca-tulis Hanya untuk dibaca Kegagalan
Utama Baca-tulis Baca-tulis atau tidak ada niat koneksi yang ditentukan Keberhasilan

Untuk informasi tentang mengonfigurasi grup ketersediaan untuk menerima koneksi klien ke replikanya, lihat Listener Grup Ketersediaan, Konektivitas Klien, dan Failover Aplikasi (SQL Server).

Contoh Konfigurasi Connection-Access

Bergantung pada bagaimana replika ketersediaan yang berbeda dikonfigurasi untuk akses koneksi, dukungan untuk koneksi klien mungkin berubah setelah grup ketersediaan gagal. Misalnya, pertimbangkan grup ketersediaan di mana pembuatan laporan dilakukan pada replika sekunder dengan commit asinkron jarak jauh. Semua aplikasi baca-saja untuk database dalam grup ketersediaan ini mengatur properti koneksi mereka Application Intent ke ReadOnly, sehingga semua koneksi baca-saja adalah koneksi baca-niat.

Contoh grup ketersediaan ini memiliki dua replika komit sinkron pada pusat komputasi utama dan dua replika komit asinkron di situs satelit. Untuk peran utama, semua replika dikonfigurasi untuk akses baca-tulis, yang mencegah koneksi baca-niat ke replika utama dalam semua situasi. Peran sekunder penerapan sinkron menggunakan konfigurasi akses koneksi default ("tidak ada"), yang mencegah semua koneksi klien di bawah peran sekunder. Sebaliknya, replika komit asinkron dikonfigurasi untuk mengizinkan koneksi dengan tujuan membaca dalam peran sekunder. Tabel berikut ini meringkas contoh konfigurasi ini:

Replika Mode Penerapan Peran Awal Akses Koneksi untuk Peran Sekunder Akses Koneksi untuk Peran Utama
Replika1 Sinkronis Utama Tidak ada Baca-tulis
Replika2 Sinkronis Menengah Tidak ada Baca-tulis
Replika3 Asinkron Menengah Baca-intentonly Baca-tulis
Replika4 Asinkron Menengah Hanya untuk dibaca Baca-tulis

Biasanya, dalam skenario contoh ini, failover hanya terjadi di antara replika commit sinkron, dan segera setelah failover, aplikasi yang berniat membaca dapat kembali terhubung ke salah satu replika sekunder commit asinkron. Namun, ketika bencana terjadi di pusat komputasi utama, kedua replika penerapan sinkron hilang. Pengelola basis data di situs satelit merespons dengan melakukan failover manual paksa ke replika sekunder komitmen asinkron. Database sekunder pada replika sekunder yang tersisa ditangguhkan oleh failover paksa, membuatnya tidak tersedia untuk beban kerja baca-saja. Replika utama baru, yang dikonfigurasi untuk koneksi baca-tulis, mencegah beban kerja baca-niat bersaing dengan beban kerja baca-tulis. Ini berarti bahwa sampai administrator database melanjutkan database sekunder pada replika sekunder dengan komitmen asinkron yang tersisa, klien dengan tujuan membaca tidak dapat terhubung ke replika ketersediaan sistem manapun.

Tugas Terkait

Isi Terkait

Lihat Juga

Gambaran Umum Grup Ketersediaan AlwaysOn (SQL Server)
Listener Grup Ketersediaan, Konektivitas Klien, dan Kegagalan Aplikasi (SQL Server)
Statistik