Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Batasan, catatan, dan rekomendasi penerapan Multi-AZ Microsoft SQL Server
Berikut ini adalah beberapa batasan saat bekerja dengan penerapan Multi-AZ RDS untuk instans SQL Server DB:
-
Multi-AZ Lintas Wilayah tidak didukung.
Menghentikan instans RDS for SQL Server DB dalam penerapan Multi-AZ tidak didukung.
-
Anda tidak dapat mengonfigurasi instans DB sekunder untuk menerima aktivitas baca basis data.
-
Multi-AZ dengan Always On Availability Groups (AGs) mendukung optimasi dalam memori.
-
Multi-AZ dengan Always On Availability Groups (AGs) tidak mendukung otentikasi Kerberos untuk pendengar grup ketersediaan. Hal ini karena pendengar tidak memiliki Service Principal Name (SPN).
-
Anda tidak dapat mengganti nama database pada instans SQL Server DB yang ada dalam penyebaran SQL Server Multi-AZ. 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.
-
Penerapan multi-AZ memiliki batas 10.000 pekerjaan Agen SQL Server.
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 ini. -
Anda tidak dapat memiliki database offline pada instans SQL Server DB yang ada dalam penyebaran SQL Server Multi-AZ.
Berikut ini adalah beberapa catatan tentang bekerja dengan penerapan Multi-AZ RDS untuk instance SQL Server DB:
-
Amazon RDS mengekspos titik akhir pendengar grup AGs ketersediaan
Selalu Aktif. Titik akhir terlihat di konsol, dan dikembalikan oleh DescribeDBInstances
API operasi sebagai entri di bidang titik akhir. -
Amazon RDS mendukung failover multisubnet grup ketersediaan
. -
Untuk menggunakan SQL Server Multi-AZ dengan instans SQL Server DB di virtual private cloud (VPC), pertama-tama buat grup subnet DB yang memiliki subnet di setidaknya dua Availability Zone yang berbeda. Kemudian tetapkan grup subnet DB ke replika utama instance SQL Server DB.
-
Ketika instans DB diubah menjadi deployment Multi-AZ, selama modifikasi, statusnya adalah mengubah. Amazon RDS membuat standby, dan membuat cadangan instans DB utama. Setelah proses tersebut selesai, status instans DB primer menjadi tersedia.
-
Deployment Multi-AZ mempertahankan semua basis data pada simpul yang sama. Jika database pada host utama gagal, semua database SQL Server Anda gagal sebagai satu unit atom ke host siaga Anda. Amazon RDS menyediakan inang sehat baru, dan menggantikan inang yang tidak sehat.
-
Multi-AZ dengan DBM atau AGs 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 instance DB yang menggunakan Selalu Aktif untuk penerapan Multi-AZ. AGs
-
Dalam penerapan Multi-AZ, RDS untuk SQL Server membuat login SQL Server untuk memungkinkan Selalu Aktif atau Pencerminan Database. AGs RDSmembuat login dengan pola berikut,,
db_<dbiResourceId>_node1_login
db_<dbiResourceId>_node2_login
, dandb_<dbiResourceId>_witness_login
. -
RDSuntuk SQL Server membuat login SQL Server untuk memungkinkan akses membaca replika. RDSmembuat login dengan pola berikut,
db_<readreplica_dbiResourceId>_node_login
. -
Dalam penerapan Multi-AZ, pekerjaan Agen SQL Server direplikasi dari host utama ke host sekunder saat fitur replikasi pekerjaan diaktifkan. Untuk informasi selengkapnya, lihat Mengaktifkan replikasi pekerjaan Agen SQL Server.
-
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 penerapan SQL Server Multi-AZ, reboot dengan failover reboot hanya instans DB utama. 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 untuk bekerja dengan penerapan Multi-AZ pada instans RDS Microsoft SQL Server DB:
-
Untuk basis data yang digunakan dalam produksi atau praproduksi, kami merekomendasikan opsi berikut:
Deployment Multi-AZ untuk ketersediaan tinggi
“DisediakanIOPS” untuk kinerja 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 AZs di semua AWS wilayah tertentu.
-
Untuk kinerja terbaik, jangan aktifkan Pencerminan Database atau Selalu Aktif AGs selama operasi pemuatan data yang besar. Jika Anda ingin pemuatan data secepat mungkin, selesaikan pemuatan data sebelum mengonversi instans DB ke deployment Multi-AZ.
-
Aplikasi yang mengakses database SQL Server harus memiliki penanganan pengecualian yang menangkap kesalahan koneksi. Sampel kode berikut menunjukkan try/catch block yang mengambil kesalahan komunikasi. Dalam contoh ini, pernyataan
break
keluar dari loopwhile
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]