Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Secara default, akses baca-tulis dan baca-niat diizinkan ke replika utama dan tidak ada koneksi yang diizinkan untuk replika sekunder dari grup ketersediaan AlwaysOn. Topik ini menjelaskan cara mengonfigurasi akses koneksi pada replika ketersediaan grup ketersediaan AlwaysOn di SQL Server dengan menggunakan SQL Server Management Studio, Transact-SQL, atau PowerShell.
Untuk informasi tentang implikasi mengaktifkan akses baca-saja untuk replika sekunder dan untuk pengenalan akses koneksi, lihat Tentang Akses Koneksi Klien ke Replika Ketersediaan (SQL Server) dan Sekunder Aktif: Replika Sekunder yang Dapat Dibaca (Grup Ketersediaan AlwaysOn).
Prasyarat dan Pembatasan
- Untuk mengonfigurasi akses koneksi yang berbeda, Anda harus terhubung ke instans server yang menghosting replika utama.
Izin
| Tugas | Izin |
|---|---|
| Untuk mengonfigurasi replika saat membuat grup ketersediaan | Memerlukan keanggotaan dalam peran server tetap sysadmin serta salah satu dari izin server CREATE AVAILABILITY GROUP, izin ALTER ANY AVAILABILITY GROUP, atau izin CONTROL SERVER. |
| Memodifikasi replika ketersediaan | Memerlukan izin ALTER AVAILABILITY GROUP pada grup ketersediaan, izin CONTROL AVAILABILITY GROUP, izin ALTER ANY AVAILABILITY GROUP, atau izin CONTROL SERVER. |
Menggunakan SQL Server Management Studio
Untuk mengonfigurasi akses pada replika ketersediaan
Di Object Explorer, sambungkan ke instans server yang menghosting replika utama, dan memperluas pohon server.
Perluas node Ketersediaan Tinggi Always On dan node Grup Ketersediaan.
Klik grup ketersediaan yang replikanya ingin Anda ubah.
Klik kanan replika ketersediaan, dan klik Properti.
Dalam kotak dialog Properti Replika Ketersediaan, Anda dapat mengubah akses koneksi untuk peran utama dan peran sekunder, sebagai berikut:
Untuk peran sekunder, pilih nilai baru dari daftar drop sekunder yang dapat dibaca, sebagai berikut:
Tidak
Tidak ada koneksi pengguna yang diizinkan ke database sekunder dari replika ini. Mereka tidak tersedia untuk akses baca. Ini adalah pengaturan default.Hanya untuk baca
Hanya koneksi baca-saja yang diizinkan ke database sekunder dari replika ini. Semua database sekunder tersedia untuk akses baca.Ya
Semua koneksi diizinkan ke database sekunder replika ini, tetapi hanya untuk akses baca. Semua database sekunder tersedia untuk akses baca.Untuk peran utama, pilih nilai baru dari daftar tarik-turun Koneksi dalam peran utama, sebagai berikut:
Perbolehkan semua koneksi
Semua koneksi diizinkan ke database di replika utama. Ini adalah pengaturan default.Perbolehkan koneksi baca/tulis
Ketika properti Niat Aplikasi diatur ke ReadWrite atau properti koneksi Niat Aplikasi tidak diatur, koneksi diizinkan. Koneksi yang properti koneksi Application Intent-nya diatur ke ReadOnly tidak diizinkan. Ini dapat membantu mencegah pelanggan secara tidak sengaja menghubungkan beban kerja dengan maksud baca ke replika utama. Untuk informasi selengkapnya tentang properti koneksi Application Intent, lihat Menggunakan Kata Kunci String Koneksi dengan SQL Server Native Client.
Menggunakan T-SQL
Untuk mengonfigurasi akses pada replika ketersediaan
Catatan
Untuk contoh prosedur ini, lihat Contoh (Transact-SQL), nanti di bagian ini.
Sambungkan ke instans server yang menghosting replika utama.
Jika Anda menentukan replika untuk grup ketersediaan baru, gunakan CREATE AVAILABILITY GROUP pernyataanTransact-SQL. Jika Anda menambahkan atau memodifikasi replika grup ketersediaan yang ada, gunakan ALTER AVAILABILITY GROUP pernyataanTransact-SQL.
Untuk mengonfigurasi akses koneksi untuk peran sekunder, dalam klausa ADD REPLICA atau MODIFY REPLICA WITH, tentukan opsi SECONDARY_ROLE, sebagai berikut:
SECONDARY_ROLE ( ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL } )
di mana,
TIDAK
Tidak ada koneksi langsung yang diizinkan ke database sekunder dari replika ini. Mereka tidak tersedia untuk akses baca. Ini adalah pengaturan default.READ_ONLY
Hanya koneksi baca-saja yang diizinkan ke database sekunder dari replika ini. Semua database sekunder tersedia untuk akses baca.SEMUA
Semua koneksi diizinkan ke database sekunder replika ini, tetapi hanya untuk akses baca. Semua database sekunder tersedia untuk akses baca.
Untuk mengonfigurasi akses koneksi untuk peran utama, dalam klausa ADD REPLICA atau MODIFY REPLICA WITH, tentukan opsi PRIMARY_ROLE, sebagai berikut:
PRIMARY_ROLE ( ALLOW_CONNECTIONS = { READ_WRITE | ALL } )
di mana,
BACA_TULIS
Koneksi dengan properti koneksi Application Intent yang diatur ke ReadOnly tidak diperbolehkan. Ketika properti Niat Aplikasi diatur ke ReadWrite atau properti koneksi Niat Aplikasi tidak diatur, koneksi diizinkan. Untuk informasi selengkapnya tentang properti koneksi Application Intent, lihat Menggunakan Kata Kunci String Koneksi dengan SQL Server Native Client.SEMUA
Semua koneksi diizinkan ke database di replika utama. Ini adalah pengaturan default.
Contoh (Transact-SQL)
Contoh berikut menambahkan replika sekunder ke grup ketersediaan bernama AG2. Instans server mandiri, COMPUTER03\HADR_INSTANCE, ditentukan untuk menghosting replika ketersediaan baru. Replika ini dikonfigurasi untuk hanya mengizinkan koneksi baca-tulis untuk peran utama dan hanya mengizinkan koneksi niat baca untuk peran sekunder.
ALTER AVAILABILITY GROUP AG2
ADD REPLICA ON
'COMPUTER03\HADR_INSTANCE' WITH
(
ENDPOINT_URL = 'TCP://COMPUTER03:7022',
PRIMARY_ROLE ( ALLOW_CONNECTIONS = READ_WRITE ),
SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY )
);
GO
Menggunakan PowerShell
Untuk mengonfigurasi akses pada replika ketersediaan
Catatan
Untuk contoh kode, lihat Contoh (PowerShell), nanti di bagian ini.
Ubah direktori (cd) ke instans server yang menghosting replika utama.
Saat menambahkan replika ketersediaan ke grup ketersediaan, gunakan cmdlet New-SqlAvailabilityReplica . Saat memodifikasi replika ketersediaan yang ada, gunakan cmdlet Set-SqlAvailabilityReplica . Parameter yang relevan adalah sebagai berikut:
Untuk mengonfigurasi akses koneksi untuk peran sekunder, tentukan parameter secondary_role_keyword ConnectionModeInSecondaryRole, di mana secondary_role_keyword sama dengan salah satu nilai berikut:
AllowNoConnections
Tidak ada koneksi langsung yang diizinkan ke database di replika sekunder dan database tidak tersedia untuk akses baca. Ini adalah pengaturan default.AllowReadIntentConnectionsOnly
Koneksi hanya diperbolehkan ke database di replika sekunder tempat properti Niat Aplikasi diatur ke ReadOnly. Untuk informasi selengkapnya tentang properti ini, lihat Menggunakan Kata Kunci String Koneksi dengan SQL Server Native Client.AllowAllConnections
Semua koneksi diizinkan ke database di replika sekunder untuk akses baca-saja.Untuk mengonfigurasi akses koneksi untuk peran utama, tentukan primary_role_keyword ConnectionModeInPrimaryRole, di mana primary_role_keyword sama dengan salah satu nilai berikut:
AllowReadWriteConnections
Koneksi yang properti koneksi Application Intent-nya diatur ke ReadOnly tidak diizinkan. Ketika properti Application Intent diatur ke ReadWrite atau properti koneksi Application Intent tidak diatur, koneksi diperbolehkan. Untuk informasi selengkapnya tentang properti koneksi Application Intent, lihat Menggunakan Kata Kunci String Koneksi dengan SQL Server Native Client.AllowAllConnections
Semua koneksi diizinkan ke database di replika utama. Ini adalah pengaturan default.
Catatan
Untuk melihat sintaks cmdlet, gunakan cmdlet Get-Help di lingkungan PowerShell SQL Server. Untuk informasi selengkapnya, lihat Mendapatkan Bantuan SQL Server PowerShell.
Untuk menyiapkan dan menggunakan penyedia PowerShell SQL Server
Contoh (PowerShell)
Contoh berikut, mengatur parameter ConnectionModeInSecondaryRole dan ConnectionModeInPrimaryRole ke AllowAllConnections.
Set-Location SQLSERVER:\SQL\PrimaryServer\default\AvailabilityGroups\MyAg
$primaryReplica = Get-Item "AvailabilityReplicas\PrimaryServer"
Set-SqlAvailabilityReplica -ConnectionModeInSecondaryRole "AllowAllConnections" `
-InputObject $primaryReplica
Set-SqlAvailabilityReplica -ConnectionModeInPrimaryRole "AllowAllConnections" `
-InputObject $primaryReplica
Tindak Lanjut: Setelah Mengonfigurasi Akses Baca-Saja untuk Replika Ketersediaan
Akses baca-saja ke replika sekunder yang dapat dibaca
Saat menggunakan utilitas bcp atau utilitas sqlcmd, Anda dapat menetapkan akses baca-saja ke replika sekunder mana pun yang diaktifkan untuk akses baca-saja dengan menentukan sakelar -K ReadOnly.
Untuk memungkinkan aplikasi klien terhubung ke replika sekunder yang dapat dibaca:
| Prasyarat | Tautan |
|---|---|
| Pastikan bahwa grup ketersediaan memiliki pendengar. | Membuat atau Mengonfigurasi Listener Grup Ketersediaan (SQL Server) |
| Konfigurasikan perutean baca-saja untuk grup ketersediaan. | Mengonfigurasi Perutean Baca-Saja untuk Grup Ketersediaan (SQL Server) |
Faktor-faktor yang mungkin memengaruhi pemicu dan tugas setelah failover
Jika Anda memiliki pemicu dan pekerjaan yang akan gagal saat berjalan pada database sekunder yang tidak dapat dibaca atau pada database sekunder yang dapat dibaca, Anda perlu membuat skrip pemicu dan pekerjaan untuk memeriksa replika tertentu untuk menentukan apakah database adalah database utama atau merupakan database sekunder yang dapat dibaca. Untuk mendapatkan informasi ini, gunakan fungsi DATABASEPROPERTYEX untuk mengembalikan properti Kemampuan Pembaruan dari database. Untuk mengidentifikasi database baca-saja, tentukan READ_ONLY sebagai nilai, sebagai berikut:
DATABASEPROPERTYEX([db name],'UpdateAbility') = N'READ_ONLY'
Untuk mengidentifikasi database baca-tulis, tentukan READ_WRITE sebagai nilai.
Tugas Terkait
Mengonfigurasi Perutean Baca-Saja untuk Grup Ketersediaan (SQL Server)
Membuat atau Mengonfigurasi Listener Grup Ketersediaan (SQL Server)
Konten terkait
- Always On: Proposisi Nilai Sekunder yang Dapat Dibaca
- Always On: Mengapa ada dua opsi untuk mengaktifkan replika sekunder untuk beban kerja baca?
- Always On: Menyiapkan Replika Sekunder yang Dapat Dibaca
- Always On: Saya baru saja mengaktifkan Readable Secondary tetapi kueri saya diblokir?
- Always On: Membuat statistik terbaru tersedia di Database Sekunder, Baca-Saja, dan Rekam Jepret Database yang Dapat Dibaca
- Always On: Tantangan dengan statistik pada database ReadOnly, Rekam Jepret Database, dan Replika Sekunder
- Always On: Dampak pada beban kerja utama saat Anda menjalankan beban kerja pelaporan pada replika sekunder
- Always On: Dampak pemetaan beban kerja pelaporan pada Secondary yang Dapat Dibaca terhadap Isolasi Snapshot
- Always On: Meminimalkan pemblokiran utas REDO saat menjalankan beban kerja pelaporan pada Replika Sekunder
- Always On: Latensi sekunder dan data yang Dapat Dibaca
- Apa itu grup ketersediaan AlwaysOn?
- Mengalihkan beban kerja baca-saja ke replika sekunder grup ketersediaan Always On
- Jenis koneksi klien ke replika dalam grup ketersediaan AlwaysOn