Kami memiliki grup ketersediaan Selalu Aktif dengan primer dan sekunder yang aktif untuk dibaca. Kami memiliki pengguna untuk tim implementasi yang menggunakan database untuk memeriksa kebenaran data yang ingin mereka masukkan ke dalam database.
Pengguna hanya memiliki hak untuk membaca dari database tetapi ketika mereka terhubung (melalui SSMS) melalui AG Listener mereka selalu terhubung ke node aktif.
Saya sudah mencoba untuk membuat mereka mengakses contoh read only secara langsung tetapi mereka terjebak dalam cara mereka dan setelah satu atau dua hari mereka semua kembali pada node aktif lagi.
Apakah ada cara bagi SQL Server untuk mengatakan bahwa pengguna ini akan selalu dengan maksud membaca saja dan mengarahkan mereka ke sana?
CATATAN: Saya sudah mencoba pengaturan 'ApplicationIntent = ReadOnly' di parameter koneksi tambahan tetapi ini sepertinya tidak mengarahkan ke node sekunder, dan bukan solusi yang ideal karena mereka pasti akan lupa untuk mengaturnya untuk pemula baru.
SQL Server 2012 Enterprise, grup Ketersediaan 1 primer, 1 sekunder terbaca dengan komit sinkron.
Saya tidak bermaksud agar pengguna terhubung ke server yang ditautkan, atau melalui server lain. Para pengguna terhubung langsung ke database melalui SSMS (tidak ada aplikasi lain) dan saya ingin AG Listener (atau sesuatu di sekitar sana) untuk dapat mengarahkan pengguna itu ke simpul sekunder jika tersedia (karena hanya memiliki akses baca di sana) tidak ada gunanya mengakses primer) tanpa pengguna harus melakukan apa pun, karena mereka bergerak di sekitar mesin dan akan lupa untuk menambahkan maksud aplikasi. Saya juga menemukan bahwa menambahkan ke parameter koneksi tambahan tidak selalu mengarahkan Anda ke node sekunder.
Jawaban:
Saya tidak punya jawaban untuk seluruh pertanyaan Anda (meskipun saya memberikan jawaban untuk pertanyaan serupa hari ini https://dba.stackexchange.com/a/137844/36812 ) tetapi Anda menyebutkan bahwa menggunakan ApplicationIntent = ReadOnly tidak berfungsi tepat.
Sudahkah Anda menyiapkan URL perutean hanya baca? Karena itu tidak dilakukan di luar kotak dan jika Anda tidak melakukannya maka pengaturan ini dan bendera itu tidak akan berfungsi. Saya pikir jika Anda berhasil maka Anda dapat mulai mengevaluasi kembali persyaratan Anda.
Petunjuk tentang MSDN https://msdn.microsoft.com/en-us/library/hh710054.aspx dan paling mudah dilakukan di PowerShell.
sumber
Ste, yang Anda inginkan adalah solusi titik dan klik atau pengaturan di suatu tempat. Sayangnya, tidak satu pun dari ini saat ini ada dalam bentuk "off the shelf". Akan sangat bagus jika Microsoft memasukkan ini dalam pengaturan koneksi untuk Server Terdaftar sehingga bisa disimpan, tetapi sayangnya mereka tidak.
Ini memberi Anda satu dari dua opsi:
Saya menemukan Microsoft unduhan untuk SNAC - SQL Native Access Client, mencari sesuatu yang mungkin memenuhi kebutuhan Anda. Ini akan memungkinkan Anda untuk menulis sedikit kode untuk memberi pengguna tombol untuk mengakses langsung ke sekunder Read-Only. https://blogs.msdn.microsoft.com/alwaysonpro/2013/08/02/connect-to-sql-server-using-application-intent-read-only/
Kemungkinan lainnya adalah memaksa pengguna untuk mengisi dialog parameter koneksi saat terhubung melalui SSMS. Untuk memaksakan perilaku ini, Anda harus memodifikasi login di server primer dan sekunder, menolak menyambungkan ke primer dan memungkinkan koneksi ke sekunder. Anda dapat menggunakan pekerjaan SQL Agent untuk memeriksa status server dan mengatur login yang sesuai.
Memang, saya belum mencoba melakukan yang terakhir, tetapi secara teori itu harus berhasil.
sumber
Sepertinya ini sekarang fitur di SQL Server 2019.
Dari pengalihan koneksi baca / tulis replika Sekunder ke primer (Grup Selalu Ada Ketersediaan) dalam dokumentasi resmi:
sumber