Konfigurasikan perutean hanya-baca dalam grup ketersediaan Selalu Aktif di SQL Server di AWS - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konfigurasikan perutean hanya-baca dalam grup ketersediaan Selalu Aktif di SQL Server di AWS

Subhani Shaik, Amazon Web Services

Ringkasan

Pola ini mencakup cara menggunakan replika sekunder siaga di SQL Server Always On dengan menurunkan beban kerja read-only dari replika primer ke replika sekunder.

Pencerminan database memiliki one-to-one pemetaan. Anda tidak dapat membaca database sekunder secara langsung, jadi Anda harus membuat snapshot. Fitur grup ketersediaan Selalu Aktif diperkenalkan di Microsoft SQL Server 2012. Dalam versi yang lebih baru, fungsionalitas utama telah diperkenalkan, termasuk perutean hanya-baca. Di grup ketersediaan Selalu Aktif, Anda dapat membaca data langsung dari replika sekunder dengan mengubah mode replika menjadi hanya-baca.

Solusi grup ketersediaan Always On mendukung ketersediaan tinggi (HA), pemulihan bencana (DR), dan alternatif untuk pencerminan basis data. Grup ketersediaan Always On bekerja di tingkat database dan memaksimalkan ketersediaan satu set database pengguna.

SQL Server menggunakan mekanisme routing read-only untuk mengarahkan koneksi read-only yang masuk ke replika baca sekunder. Untuk mencapai ini, Anda harus menambahkan parameter dan nilai berikut dalam string koneksi:

  • ApplicationIntent=ReadOnly

  • Initial Catalog=<database name>

Prasyarat dan batasan

Prasyarat

  • Akun AWS aktif dengan virtual private cloud (VPC), dua Availability Zone, subnet pribadi, dan grup keamanan

  • Dua mesin Amazon Elastic Compute Cloud (Amazon EC2) dengan SQL Server 2019 Enterprise Edition Amazon Machine Image dengan Windows Server Failover Clustering (WSFC) yang dikonfigurasi pada tingkat instans dan grup ketersediaan Selalu Aktif yang dikonfigurasi pada tingkat SQL Server antara node primer (WSFCNODE1) dan node sekunder (WSFCNODE2), yang merupakan bagian dari direktori AWS Directory Service untuk Microsoft Active Directory bernama tagechtalk.com

  • Satu atau lebih node dikonfigurasi untuk menerima read-only dalam replika sekunder

  • Pendengar bernama SQLAG1 untuk grup ketersediaan Selalu Aktif

  • SQL Server Database Engine berjalan dengan akun layanan yang sama pada dua node

  • Studio Manajemen SQL Server (SSMS)

  • Database uji bernama test

Versi Produk

  • SQL Server 2014 dan yang lebih baru

Arsitektur

Tumpukan teknologi target

  • Amazon EC2

  • AWS Dikelola Microsoft AD

  • Amazon FSx

Arsitektur target

Diagram berikut menunjukkan bagaimana pendengar Always On availability group (AG) mengalihkan kueri yang berisi ApplicationIntent parameter dalam koneksi ke node sekunder yang sesuai.

Tiga langkah proses antara dua Availability Zone untuk node 1 WSFC dan node 2 WSFC dengan Amazon EFS.
  1. Permintaan dikirim ke pendengar grup ketersediaan Selalu Aktif.

  2. Jika string koneksi tidak memiliki ApplicationIntent parameter, permintaan dikirim ke instance utama.

  3. Jika string koneksi berisiApplicationIntent=ReadOnly, permintaan dikirim ke instance sekunder dengan konfigurasi routing read-only, yaitu WSFC dengan grup ketersediaan Selalu Aktif.

Alat

Layanan AWS

Layanan lainnya

  • SQL Server Management Studio (SSMS) adalah alat untuk menghubungkan, mengelola, dan mengelola instance SQL Server.

  • sqlcmd adalah utilitas baris perintah.

Praktik terbaik

Untuk informasi selengkapnya tentang grup ketersediaan Selalu Aktif, lihat dokumentasi SQL Server.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Perbarui replika menjadi hanya-baca.

Untuk memperbarui replika primer dan sekunder menjadi hanya-baca, sambungkan ke replika utama dari SSMS, dan jalankan kode Langkah 1 dari bagian Informasi tambahan.

DBA

Buat URL perutean.

Untuk membuat URL routing untuk kedua replika, jalankan kode Langkah 2 dari bagian Informasi tambahan. Dalam kode ini, tagechtalk.com adalah nama direktori AWS Managed Microsoft AD.

DBA

Buat daftar routing.

Untuk membuat daftar routing untuk kedua replika, jalankan kode Langkah 3 dari bagian Informasi tambahan.

DBA

Validasi daftar routing.

Connect ke instance utama dari SQL Server Management Studio, dan jalankan kode Langkah 4 dari bagian Informasi tambahan untuk memvalidasi daftar routing.

DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Connect dengan menggunakan ApplicationIntent parameter.

  1. Dari SSMS, sambungkan ke nama pendengar grup ketersediaan Selalu Aktif dengan. ApplicationIntent=ReadOnly;Initial Catalog=test

  2. Koneksi dibuat dengan replika sekunder. Untuk menguji ini, jalankan perintah berikut untuk menunjukkan nama server yang terhubung.

    SELECT SERVERPROPERTY('ComputernamePhysicalNetBios')

    Output akan menampilkan nama replika sekunder saat ini (WSFCNODE2).

DBA

Lakukan failover.

  1. Dari SSMS, sambungkan ke nama pendengar grup ketersediaan Selalu Aktif.

  2. Verifikasi bahwa database primer dan sekunder sinkron, tanpa kehilangan data.

  3. Lakukan failover sehingga replika primer saat ini menjadi replika sekunder, dan replika sekunder menjadi replika utama.

  4. Dari SSMS, sambungkan ke nama pendengar grup ketersediaan Selalu Aktif dengan. ApplicationIntent=ReadOnly;Initial Catalog=test

  5. Koneksi dibuat dengan replika sekunder. Untuk menguji ini, tunjukkan nama server yang terhubung dengan menjalankan perintah berikut.

    SELECT SERVERPROPERTY('ComputernamePhysicalNetBios')

    Ini akan menampilkan nama replika sekunder saat ini (WSFCNODE1).

DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Connect dengan menggunakan sqlcmd.

Untuk terhubung dari sqlcmd, jalankan kode Langkah 5 dari bagian Informasi tambahan di prompt perintah. Setelah Anda terhubung, jalankan perintah berikut untuk menunjukkan nama server yang terhubung.

SELECT SERVERPROPERTY('ComputernamePhysicalNetBios') .

Output akan menampilkan nama replika sekunder saat ini (WSFCNODE1).

DBA

Pemecahan Masalah

IsuSolusi

Membuat pendengar gagal dengan pesan 'Kluster WSFC tidak dapat membawa sumber daya Nama Jaringan online'.

Untuk selengkapnya, lihat posting blog Microsoft Buat Pendengar Gagal dengan Pesan 'Kluster WSFC tidak dapat membawa sumber daya Nama Jaringan online'.

Masalah potensial, termasuk masalah pendengar lainnya atau masalah akses jaringan.

Lihat Memecahkan Masalah Selalu Pada Konfigurasi Grup Ketersediaan (SQL Server) di dokumentasi Microsoft.

Sumber daya terkait

Informasi tambahan

Langkah 1. Perbarui replika menjadi hanya-baca

ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE1' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)) GO ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE2' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)) GO

Langkah 2. Buat URL perutean

ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE1' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://WSFCNode1.tagechtalk.com:1433')) GO ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE2' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://WSFCNode2.tagechtalk.com:1433')) GO

Langkah 3. Buat daftar perutean

ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE1' WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST=('WSFCNODE2','WSFCNODE1'))); GO ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE2' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('WSFCNODE1','WSFCNODE2'))); GO

Langkah 4. Validasi daftar perutean

SELECT AGSrc.replica_server_name AS PrimaryReplica, AGRepl.replica_server_name AS ReadOnlyReplica, AGRepl.read_only_routing_url AS RoutingURL , AGRL.routing_priority AS RoutingPriority FROM sys.availability_read_only_routing_lists AGRL INNER JOIN sys.availability_replicas AGSrc ON AGRL.replica_id = AGSrc.replica_id INNER JOIN sys.availability_replicas AGRepl ON AGRL.read_only_replica_id = AGRepl.replica_id INNER JOIN sys.availability_groups AV ON AV.group_id = AGSrc.group_id ORDER BY PrimaryReplica

Langkah 5. Utilitas Perintah SQL

sqlcmd -S SQLAG1,1433 -E -d test -K ReadOnly