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.
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 2014 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).
Sebelum Anda mulai
Prasyarat dan Pembatasan
- Untuk mengonfigurasi akses koneksi yang berbeda, Anda harus terhubung ke instans server yang menghosting replika utama.
Keamanan
Hak akses
| Tugas | Hak akses |
|---|---|
| Untuk mengonfigurasi replika saat membuat grup ketersediaan | Memerlukan keanggotaan dalam peran server tetap sysadmin dan izin CREATE AVAILABILITY GROUP, izin ALTER ANY AVAILABILITY GROUP, atau izin CONTROL SERVER. |
| Untuk mengubah replika ketersediaan | Memerlukan izin UBAH GRUP KETERSEDIAAN pada grup ketersediaan, izin KONTROL GRUP KETERSEDIAAN, izin UBAH SEMUA GRUP KETERSEDIAAN, atau izin KONTROL 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 AlwaysOn dan node Grup Ketersediaan.
Pilih 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 untuk 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 dibaca
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 drop-down Koneksi pada 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 dengan properti koneksi Intent Aplikasi yang ditetapkan ke ReadOnly tidak diperbolehkan. Ini dapat membantu mencegah pelanggan menyambungkan beban kerja yang berfokus pada pembacaan ke replika utama tanpa sengaja. Untuk informasi selengkapnya tentang properti koneksi Niat Aplikasi, lihat Menggunakan Kata Kunci String Koneksi dengan Klien Asli SQL Server.
Menggunakan T-SQL
Untuk mengonfigurasi akses pada replika ketersediaan
Nota
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 pernyataan CREATE AVAILABILITY GROUPTransact-SQL. Jika Anda menambahkan atau memodifikasi replika grup ketersediaan yang ada, gunakan pernyataan ALTER AVAILABILITY GROUPTransact-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 } )
mana
TIDAK
Tidak ada koneksi langsung yang diizinkan ke database sekunder dari replika ini. Mereka tidak tersedia untuk akses baca. Ini adalah pengaturan default.Hanya Baca
Hanya koneksi baca-saja yang diizinkan ke database sekunder dari replika ini. Semua database sekunder tersedia untuk akses baca.SEMUANYA
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 } )
mana
Baca_Tulis
Koneksi tempat properti koneksi Niat Aplikasi diatur ke ReadOnly tidak diizinkan. Ketika properti Niat Aplikasi diatur ke ReadWrite atau properti koneksi Niat Aplikasi tidak diatur, koneksi diizinkan. Untuk informasi selengkapnya tentang properti koneksi Niat Aplikasi, lihat Menggunakan Kata Kunci String Koneksi dengan Klien Asli SQL Server.SEMUANYA
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
Nota
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 dalam grup ketersediaan, gunakan
New-SqlAvailabilityReplicacmdlet. Saat memodifikasi replika ketersediaan yang ada, gunakanSet-SqlAvailabilityReplicacmdlet . Parameter yang relevan adalah sebagai berikut:Untuk mengonfigurasi akses koneksi untuk peran sekunder, tentukan
ConnectionModeInSecondaryRoleparameter secondary_role_keyword, 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
ConnectionModeInPrimaryRoleprimary_role_keyword, di mana primary_role_keyword sama dengan salah satu nilai berikut:AllowReadWriteConnections
Koneksi dengan properti koneksi Intent Aplikasi yang diatur ke ReadOnly tidak diizinkan. Ketika properti Niat Aplikasi diatur ke ReadWrite atau properti koneksi Niat Aplikasi tidak diatur, koneksi diizinkan. Untuk informasi selengkapnya tentang properti koneksi Niat Aplikasi, lihat Menggunakan Kata Kunci String Koneksi dengan Klien Asli SQL Server.AllowAllConnections
Semua koneksi diizinkan ke database di replika utama. Ini adalah pengaturan default.
Nota
Untuk melihat sintaks cmdlet, gunakan
Get-Helpcmdlet di lingkungan PowerShell SQL Server 2014. Untuk informasi selengkapnya, lihat Mendapatkan Bantuan SQL Server PowerShell.
Untuk menyiapkan dan menggunakan penyedia PowerShell SQL Server, lihat Penyedia PowerShell SQL Server.
Contoh berikut, mengatur ConnectionModeInSecondaryRole parameter 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 Read-Only untuk Replika Ketersediaan
Akses baca-saja ke replika sekunder yang dapat dibaca
Saat menggunakan Utilitas bcp atau Utilitas sqlcmd, Anda dapat menentukan akses baca-saja ke replika sekunder apa pun yang diaktifkan untuk akses baca-saja dengan menentukan
-K ReadOnlysakelar.Untuk memungkinkan aplikasi klien terhubung ke replika sekunder yang dapat dibaca:
Prasyarat Tautan
Pastikan bahwa grup ketersediaan memiliki pendengar. Membuat atau Mengonfigurasi Availability Group Listener (SQL Server)
Konfigurasikan perutean baca-saja untuk grup ketersediaan. Mengonfigurasi Perutean Baca-Saja untuk Grup Ketersediaan (SQL Server)
Faktor-faktor yang mungkin memengaruhi trigger 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 Updatability database. Untuk mengidentifikasi database baca-saja, tentukan READ_ONLY sebagai nilai, sebagai berikut:
DATABASEPROPERTYEX([db name],'Updatability') = 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 Availability Group Listener (SQL Server)
Isi Terkait
Always On: Mengapa ada dua opsi untuk mengaktifkan replika sekunder untuk beban kerja baca?
Always On: Saya baru saja mengaktifkan Readable Secondary tetapi kueri saya diblokir?
Lihat Juga
Gambaran Umum Grup Ketersediaan AlwaysOn (SQL Server)
Sekunder Aktif: Replika Sekunder yang Dapat Dibaca (Grup Ketersediaan AlwaysOn)
Tentang Akses Koneksi Klien ke Replika Ketersediaan (SQL Server)