SQL Management Studio (versi sebelum 2016)
Sayangnya, ada beberapa peringatan yang membuat penggunaan Application Intent di SQL Management Studio agak menyakitkan:
Untuk terhubung secara manual dengan niat ReadOnly, setelah membuka dialog Connect to Server dari Object Explorer, pengguna harus ingat untuk:
- Klik Opsi >> .
- Buka tab Parameter Koneksi Tambahan .
- Masukkan parameter tambahan sebagai ApplicationIntent = ReadOnly;
- (Catatan: Pengguna tidak boleh mengklik tombol Pilihan << setelah memasukkan Parameter Koneksi Tambahan atau parameter akan hilang.)
- Klik Hubungkan .
- Selalu luncurkan jendela kueri dengan mengklik kanan pada database yang diinginkan dalam tampilan Object Explorer dan memilih Query Baru untuk menghindari berlari ke peringatan # 3 di bawah ini.
Peringatan yang berlaku adalah sebagai berikut:
- Meskipun Anda bisa mendapatkan SQL Management Studio untuk terhubung dengan Read Only Intent, itu tidak menyimpan Parameter Koneksi Tambahan ketika koneksi ditambahkan ke Server Terdaftar.
- Perilaku ketika mengedit tangan server yang terdaftar secara lokal di file RegSrvr.xml untuk menambahkan Application Intent sangat tidak konsisten dan akan ditimpa setiap kali perubahan dilakukan melalui GUI sehingga penyelesaian masalah ini tidak dapat diandalkan.
- Database Selalu Aktif harus dipilih sebelum jendela kueri dibuka; jika tidak, koneksi akan dialihkan ke server utama. Jika Anda mencoba untuk memilih database menggunakan drop-down jendela query setelah jendela query telah dibuka ke database Non-Selalu Aktif, Anda akan mendapatkan dialog kesalahan. Jika Anda mencoba mengubah database ke database Always On dengan pernyataan USE setelah jendela kueri dibuka ke database non-Selalu Di, hasilnya terlihat seperti ini ketika Anda mencoba untuk mengeksekusi query SQL:
Msg 979, Level 14, State 1, Line 1
The target database ('AlwaysOnDatabase') is in an availability group
and currently does not allow read only connections. For more
information about application intent, see SQL Server Books Online.
SQL Management Studio (versi 2016 atau lebih baru)
SQL Server Management Studio 2016 atau lebih tinggi dapat terhubung dengan Intent Aplikasi Hanya Baca (menggunakan 6 langkah yang sama dengan versi sebelumnya) dan itu menyimpan Parameter Koneksi Tambahan. Masih ada beberapa peringatan:
- Tampilan Obyek Explorer tidak akan menghitung tabel atau objek lain dalam database AlwaysOn. Mencoba mengembangkannya menghasilkan pesan yang ditolak akses.
- Anda tidak bisa memiliki koneksi Read Only dan non-Read Only ke pendengar yang sama terbuka secara bersamaan.
- Intellisense untuk nama objek di database tidak berfungsi. (Anehnya, Objek didata dengan baik di Query Designer yang dapat Anda luncurkan menggunakan Design Query di Editor ... dari menu klik kanan.)
- Peringatan 3 dari peringatan versi sebelumnya masih berlaku.
Produk Pihak Ketiga
LinqPad menyimpan seluruh string koneksi termasuk Application Intent dan database saat Anda menyimpan koneksi dan karenanya mungkin merupakan opsi yang layak untuk melakukan kueri Read Only terhadap database Always On.
Sudahkah Anda mencoba skrip PowerShell, tetapi menggunakan ejaan lain (dengan spasi) untuk maksud aplikasi? Atau sudahkah saya menggabungkan metode koneksi?
Menyambung ke SQL Server Menggunakan Application Intent Read-Only
sumber
Apakah mungkin Anda membuat file konfigurasi dan kemudian Anda secara otomatis membuat server terdaftar yang diperlukan di SSMS? Seperti yang disebutkan dalam artikel MSSQLTips saya:
Otomatis Mendaftarkan dan Memelihara Server di SQL Server Management Studio (SSMS)
sumber
Ini telah diperbaiki di SQL 2016 SSMS saat menggunakan dengan server terdaftar. Saya dapat mendaftarkan koneksi ReadOnly Intent sebagai bagian dari grup server lokal dan membuka koneksi yang disimpan untuk penggunaan di masa mendatang. Terima kasih atas bantuannya.
sumber
Saya tidak bisa berkomentar tetapi saya menambahkan jawaban DBAUser.
Saya tidak bisa melihat opsi untuk menambahkan Intent Aplikasi di GUI ketika mengatur koneksi dalam area server terdaftar.
Saya harus terhubung menggunakan objek explorer (menggunakan
Data Source=<Listener>;Initial Catalog=<Database>;ApplicationIntent=ReadOnly
) kemudian mendaftarkan server setelah saya terhubung.Atau tambahkan
Initial Catalog=<Database>;ApplicationIntent=ReadOnly
ke string koneksi dalam file .regsrvr.sumber