Deployment Multi-AZ untuk Amazon RDS for Microsoft SQL Server - Layanan Basis Data Relasional Amazon

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

Deployment Multi-AZ untuk Amazon RDS for Microsoft SQL Server

Deployment Multi-AZ memberikan ketersediaan, durabilitas data, dan toleransi kesalahan yang lebih tinggi untuk instans basis data. Jika terjadi pemeliharaan basis data yang direncanakan atau gangguan layanan yang tidak direncanakan, Amazon RDS secara otomatis gagal ke instans DB up-to-date sekunder. Fungsi ini memungkinkan operasi basis data berlanjut dengan cepat tanpa gangguan manual. Instans primer dan siaga menggunakan titik akhir yang sama, yang alamat jaringan fisiknya beralih ke replika sekunder sebagai bagian dari proses failover. Anda tidak perlu mengonfigurasi ulang aplikasi Anda saat terjadi failover.

Amazon RDS mendukung deployment Multi-AZ untuk Microsoft SQL Server menggunakan Pencerminan Basis Data (DBM) atau Grup Ketersediaan (AG) Selalu Aktif SQL Server. Amazon RDS memantau dan menjaga kondisi deployment Multi-AZ Anda. Jika terjadi masalah, RDS secara otomatis memperbaiki instans DB yang tidak berkondisi baik, menetapkan ulang sinkronisasi, dan memulai failover. Failover hanya terjadi jika replika siaga dan primer disinkronkan sepenuhnya. Anda tidak perlu mengatur apa pun.

Saat Anda menyiapkan Multi-AZ SQL Server, RDS secara otomatis mengonfigurasi semua basis data pada instans untuk menggunakan DBM atau AG. Amazon RDS menangani instans DB primer, saksi, dan sekunder untuk Anda. Karena konfigurasinya otomatis, RDS memilih DBM atau AG Selalu Aktif berdasarkan versi SQL Server yang Anda deploy.

Amazon RDS mendukung Multi-AZ dengan AG Selalu Aktif untuk versi dan edisi SQL Server berikut:

  • SQL Server 2022:

    • Standard Edition

    • Enterprise Edition

  • SQL Server 2019:

    • Standard Edition 15.00.4073.23 dan lebih tinggi

    • Enterprise Edition

  • SQL Server 2017:

    • Standard Edition 14.00.3401.7 dan lebih tinggi

    • Enterprise Edition 14.00.3049.1 dan lebih baru

  • SQL Server 2016: Enterprise Edition 13.00.5216.0 dan lebih tinggi

Amazon RDS mendukung Multi-AZ dengan DBM untuk versi dan edisi SQL Server berikut, kecuali untuk versi yang disebutkan sebelumnya:

  • SQL Server 2019: Standard Edition 15.00.4043.16

  • SQL Server 2017: Standard Edition dan Enterprise Edition

  • SQL Server 2016: Standard Edition dan Enterprise Edition

  • SQL Server 2014: Standard Edition dan Enterprise Edition

Anda dapat menggunakan kueri SQL berikut untuk menentukan apakah instans DB SQL Server Anda adalah AZ Tunggal, Multi-AZ dengan DBM, atau Multi-AZ dengan AG Selalu Aktif:

SELECT CASE WHEN dm.mirroring_state_desc IS NOT NULL THEN 'Multi-AZ (Mirroring)' WHEN dhdrs.group_database_id IS NOT NULL THEN 'Multi-AZ (AlwaysOn)' ELSE 'Single-AZ' END 'high_availability' FROM sys.databases sd LEFT JOIN sys.database_mirroring dm ON sd.database_id = dm.database_id LEFT JOIN sys.dm_hadr_database_replica_states dhdrs ON sd.database_id = dhdrs.database_id AND dhdrs.is_local = 1 WHERE DB_NAME(sd.database_id) = 'rdsadmin';

Output-nya seperti berikut:

high_availability Multi-AZ (AlwaysOn)

Menambahkan Multi-AZ ke instans DB Microsoft SQL Server

Saat Anda membuat instance SQL Server DB baru menggunakan AWS Management Console, Anda dapat menambahkan Multi-AZ dengan Database Mirroring (DBM) atau Always On AG. Anda melakukannya dengan memilih Ya (Pencerminan/Selalu Aktif) dari Deployment Multi-AZ. Untuk informasi selengkapnya, lihat Membuat instans DB Amazon RDS.

Saat Anda mengubah instans DB SQL Server yang ada menggunakan konsol, Anda dapat menambahkan Multi-AZ dengan DBM atau AG dengan memilih Ya (Pencerminan/Selalu Aktif) dari daftar Deployment Multi-AZ di halaman Modifikasi instans DB. Untuk informasi selengkapnya, lihat Memodifikasi instans DB Amazon RDS.

catatan

Jika instans DB Anda menjalankan Pencerminan Basis Data (DBM)—bukan Grup Ketersediaan (AG) Selalu Aktif—Anda mungkin perlu menonaktifkan optimisasi dalam memori sebelum menambahkan Multi-AZ. Nonaktifkan optimisasi dalam memori sebelum menambahkan Multi-AZ jika instans DB Anda menjalankan SQL Server 2014, 2016, atau 2017 Enterprise Edition dan telah mengaktifkan optimisasi dalam memori.

Jika instans DB Anda sedang menjalankan AG, langkah ini tidak diperlukan.

Menghapus Multi-AZ dari instans DB Microsoft SQL Server

Saat Anda memodifikasi instans SQL Server DB yang ada menggunakan AWS Management Console, Anda dapat menghapus Multi-AZ dengan DBM atau AG. Anda dapat melakukannya dengan memilih Tidak (Pencerminan/Selalu Aktif) dari Deployment Multi-AZ di halaman Modifikasi instans DB. Untuk informasi selengkapnya, lihat Memodifikasi instans DB Amazon RDS.

Batasan, catatan dan rekomendasi deployment Multi-AZ Microsoft SQL Server

Berikut ini adalah beberapa batasan saat melakukan deployment Multi-AZ di instans DB SQL Server:

  • Multi-AZ Lintas Wilayah tidak didukung.

  • Menghentikan instans DB RDS for SQL Server dalam deployment Multi-AZ tidak didukung.

  • Anda tidak dapat mengonfigurasi instans DB sekunder untuk menerima aktivitas baca basis data.

  • Multi-AZ dengan Grup Ketersediaan (AG) Selalu Aktif mendukung optimisasi dalam memori.

  • Multi-AZ dengan Grup Ketersediaan (AG) Selalu Aktif tidak mendukung autentikasi Kerberos untuk pendengar grup ketersediaan. Hal ini karena pendengar tidak memiliki Nama Prinsipal Layanan (SPN).

  • Anda tidak dapat mengubah nama basis data di instans DB SQL Server dalam deployment Multi-AZ SQL Server. Jika Anda perlu mengubah nama basis data pada instans tersebut, pertama nonaktifkan Multi-AZ untuk instans DB, kemudian ubah nama basis datanya. Terakhir, aktifkan kembali Multi-AZ untuk instans DB.

  • Anda hanya dapat memulihkan instans DB Multi-AZ yang dicadangkan menggunakan model pemulihan penuh.

  • Deployment Multi-AZ memiliki batas 10.000 pekerjaan SQL Server Agent.

    Jika Anda membutuhkan batas yang lebih tinggi, minta kenaikan dengan menghubungi AWS Support. Buka halaman Pusat AWS Support, masuk jika perlu, dan pilih Buat kasus. Pilih Peningkatan batas layanan. Lengkapi dan kirimkan formulir.

Berikut ini adalah beberapa catatan tentang penggunaan deployment Multi-AZ di instans DB SQL Server:

  • Amazon RDS mengekspos titik akhir pendengar grup ketersediaan AG Selalu Aktif. Titik akhir terlihat di konsol, dan ditampilkan oleh operasi API DescribeDBInstances sebagai entri di bidang titik akhir.

  • Amazon RDS mendukung failover multisubnet grup ketersediaan.

  • Untuk menggunakan Multi-AZ SQL Server dengan instans DB SQL Server dalam cloud privat virtual (VPC), pertama, buat grup subnet DB yang memiliki subnet di setidaknya dua Zona Ketersediaan yang berbeda. Kemudian, tetapkan grup subnet DB menjadi replika primer instans DB SQL Server.

  • Ketika instans DB diubah menjadi deployment Multi-AZ, selama modifikasi, statusnya adalah mengubah. Amazon RDS membuat replika siaga dan membuat cadangan instans DB primer. Setelah proses tersebut selesai, status instans DB primer menjadi tersedia.

  • Deployment Multi-AZ mempertahankan semua basis data pada simpul yang sama. Jika terjadi failover pada basis data di host primer, semua basis data SQL Server Anda akan melakukan failover sebagai satu unit atomis ke host siaga. Amazon RDS menyediakan host baru yang berkondisi baik dan mengganti host yang tidak berkondisi baik.

  • Multi-AZ dengan DBM atau AG mendukung replika siaga tunggal.

  • Pengguna, login, dan izin akan direplikasi secara otomatis untuk Anda pada instans sekunder. Anda tidak perlu membuat ulang hal ini. Peran server yang ditentukan pengguna hanya direplikasi dalam instans DB yang menggunakan AG Selalu Aktif untuk deployment Multi-AZ.

  • Dalam penerapan Multi-AZ, RDS untuk SQL Server membuat login SQL Server untuk memungkinkan Always On AG atau Pencerminan Database. RDS membuat login dengan pola berikut,, db_<dbiResourceId>_node1_logindb_<dbiResourceId>_node2_login, dan. db_<dbiResourceId>_witness_login

  • RDS untuk SQL Server membuat login SQL Server untuk memungkinkan akses membaca replika. RDS membuat login dengan pola berikut,db_<readreplica_dbiResourceId>_node_login.

  • Dalam deployment Multi-AZ, pekerjaan SQL Server Agent direplikasi dari host utama ke host sekunder saat fitur replikasi pekerjaan diaktifkan. Untuk informasi selengkapnya, lihat Mengaktifkan replikasi pekerjaan SQL Server Agent.

  • Anda mungkin menemukan adanya peningkatan latensi dibandingkan dengan deployment instans DB standar (dalam satu Zona Ketersediaan) karena replikasi data yang sinkron.

  • Waktu failover dipengaruhi oleh waktu yang diperlukan untuk menyelesaikan proses pemulihan. Transaksi besar akan meningkatkan waktu failover.

  • Dalam deployment Multi-AZ SQL Server, boot ulang dengan failover akan mem-boot ulang hanya instans DB primer. Setelah failover, instans DB primer akan menjadi instans DB sekunder baru. Parameter mungkin tidak diperbarui untuk instans Multi-AZ. Untuk mem-boot ulang tanpa failover, instans DB primer dan sekunder, serta parameter diperbarui setelah boot ulang. Jika instans DB tidak responsif, kami sarankan boot ulang tanpa failover.

Berikut ini adalah beberapa rekomendasi penggunaan deployment Multi-AZ di instans DB Microsoft SQL Server:

  • Untuk basis data yang digunakan dalam produksi atau praproduksi, kami merekomendasikan opsi berikut:

    • Deployment Multi-AZ untuk ketersediaan tinggi

    • "IOPS yang Tersedia" untuk performa yang cepat dan konsisten

    • "Memori dioptimalkan" alih-alih "Tujuan umum"

  • Anda tidak dapat memilih Zona Ketersediaan (AZ) untuk instans sekunder, jadi ketika Anda melakukan deployment host aplikasi, pertimbangkan hal ini. Basis data Anda mungkin akan melakukan failover ke AZ lain, dan host aplikasi mungkin tidak berada di AZ yang sama dengan basis data. Untuk alasan ini, kami menyarankan Anda menyeimbangkan host aplikasi Anda di semua AZ di AWS Wilayah tertentu.

  • Untuk performa terbaik, jangan aktifkan Pencerminan Basis Data atau AG Selalu Aktif selama operasi pemuatan data besar. Jika Anda ingin pemuatan data secepat mungkin, selesaikan pemuatan data sebelum mengonversi instans DB ke deployment Multi-AZ.

  • Aplikasi yang mengakses basis data SQL Server harus memiliki penanganan pengecualian yang mengambil kesalahan koneksi. Sampel kode berikut menunjukkan try/catch block yang mengambil kesalahan komunikasi. Dalam contoh ini, pernyataan break keluar dari loop while jika koneksi berhasil, tetapi mencoba ulang hingga 10 kali jika pengecualian ditampilkan.

    int RetryMaxAttempts = 10; int RetryIntervalPeriodInSeconds = 1; int iRetryCount = 0; while (iRetryCount < RetryMaxAttempts) { using (SqlConnection connection = new SqlConnection(DatabaseConnString)) { using (SqlCommand command = connection.CreateCommand()) { command.CommandText = "INSERT INTO SOME_TABLE VALUES ('SomeValue');"; try { connection.Open(); command.ExecuteNonQuery(); break; } catch (Exception ex) { Logger(ex.Message); iRetryCount++; } finally { connection.Close(); } } } Thread.Sleep(RetryIntervalPeriodInSeconds * 1000); }
  • Jangan gunakan perintah Set Partner Off saat menggunakan instans Multi-AZ. Misalnya, jangan melakukan hal berikut.

    --Don't do this ALTER DATABASE db1 SET PARTNER off
  • Jangan tetapkan mode pemulihan ke simple. Misalnya, jangan melakukan hal berikut.

    --Don't do this ALTER DATABASE db1 SET RECOVERY simple
  • Jangan gunakan parameter DEFAULT_DATABASE saat membuat login baru pada instans DB Multi-AZ karena pengaturan ini tidak dapat diterapkan pada instans cerminan siaga. Misalnya, jangan melakukan hal berikut.

    --Don't do this CREATE LOGIN [test_dba] WITH PASSWORD=foo, DEFAULT_DATABASE=[db2]

    Selain itu, jangan melakukan hal berikut.

    --Don't do this ALTER LOGIN [test_dba] SET DEFAULT_DATABASE=[db3]

Menentukan lokasi instans sekunder

Anda dapat menentukan lokasi replika sekunder dengan menggunakan AWS Management Console. Anda harus mengetahui lokasi instans sekunder jika Anda menyiapkan instans DB primer Anda dalam VPC.

AZ sekunder

Anda juga dapat melihat Availability Zone sekunder menggunakan AWS CLI perintah describe-db-instances atau operasi DescribeDBInstances RDS API. Output ini menunjukkan AZ sekunder tempat instans cerminan siaga berada.

Bermigrasi dari Pencerminan Basis Data ke Grup Ketersediaan Selalu Aktif

Di Microsoft SQL Server Enterprise Edition versi 14.00.3049.1, Grup Ketersediaan (AG) Selalu Aktif diaktifkan secara default.

Untuk bermigrasi dari Pencerminan Basis Data (DBM) ke AG, pertama-tama periksa versi Anda. Jika Anda menggunakan instans DB dengan versi sebelum Enterprise Edition 13.00.5216.0, ubah instans tersebut agar di-patch ke versi 13.00.5216.0 atau yang lebih baru. Jika Anda menggunakan instans DB dengan versi sebelum Enterprise Edition 14.00.3049.1, ubah instans tersebut agar di-patch ke versi 14.00.3049.1 atau yang lebih baru.

Jika Anda ingin meningkatkan instans DB yang dicerminkan agar menggunakan AG, jalankan peningkatan terlebih dahulu, ubah instans tersebut untuk menghapus Multi-AZ, lalu ubah kembali untuk menambahkan Multi-AZ. Tindakan ini akan mengonversi instans Anda untuk menggunakan AG Selalu Aktif.