

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
<a name="USER_SQLServerMultiAZ"></a>

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 penerapan Multi-AZ untuk Microsoft SQL Server dengan menggunakan SQL Server Database Mirroring (DBM), Always On Availability Groups (), atau replikasi tingkat blok. AGs 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 mengatur SQL Server Multi-AZ, RDS secara otomatis mengonfigurasi semua database pada instans untuk menggunakan DBM,, atau replikasi tingkat blok. AGs Amazon RDS menangani instans DB primer, saksi, dan sekunder untuk Anda saat Anda mengonfigurasi DBM atau. AGs Untuk replikasi tingkat blok, RDS menangani instance DB primer dan sekunder. Karena konfigurasi otomatis, RDS memilih DBM, Selalu Aktif AGs, atau replikasi tingkat blok berdasarkan versi SQL Server yang Anda gunakan.

Amazon RDS mendukung Multi-AZ dengan Selalu Aktif AGs 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 

Amazon RDS mendukung Multi-AZ dengan replikasi tingkat blok untuk SQL Server 2022 Web Edition 16.00.4215.2 ke atas.

**catatan**  
Hanya instans DB baru yang dibuat dengan 16.00.4215.2 atau lebih tinggi yang mendukung penerapan Multi-AZ dengan replikasi level blok. Pembatasan berikut berlaku untuk instans SQL Server 2022 Web Edition yang ada:  
Untuk instance yang ada di versi 16.00.4215.2, Anda harus mengembalikan snapshot ke instance baru dengan versi minor yang sama atau lebih tinggi untuk mengaktifkan replikasi level blok.
SQL Server 2022 Instance Web dengan versi minor yang lebih lama dapat ditingkatkan ke versi minor 16.00.4215.2 atau lebih tinggi untuk mengaktifkan replikasi tingkat blok.

Anda dapat menggunakan kueri SQL berikut untuk menentukan apakah instans SQL Server DB Anda adalah Single-AZ, Multi-AZ dengan DBM, atau Multi-AZ dengan Selalu Aktif. AGs Kueri ini tidak berlaku untuk penerapan Multi-AZ di SQL Server Web Edition.

```
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 menyerupai berikut ini:

```
high_availability
Multi-AZ (AlwaysOn)
```

## Menambahkan Multi-AZ ke instans DB Microsoft SQL Server
<a name="USER_SQLServerMultiAZ.Adding"></a>

Saat Anda membuat instans SQL Server DB baru menggunakan Konsol Manajemen AWS, Anda dapat menambahkan Multi-AZ dengan Database Mirroring (DBM), Always On AGs atau replikasi tingkat blok. Anda melakukannya dengan memilih **Ya (Mirroring/Selalu Aktif/Replikasi Tingkat Blok)** dari penerapan **Multi-AZ**. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).

**Saat Anda memodifikasi instans SQL Server DB yang ada menggunakan konsol, Anda dapat menambahkan Multi-AZ dengan DBM, AGs, atau replikasi tingkat blok dengan memilih **Ya (Mirroring/Selalu Aktif/Replikasi Tingkat Blok) dari penerapan **Multi-AZ** di** halaman instans Modify DB.** Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

**catatan**  
Jika instans DB Anda menjalankan Database Mirroring (DBM) —tidak Selalu Pada Grup Ketersediaan (AGs) —Anda mungkin perlu menonaktifkan pengoptimalan dalam memori sebelum menambahkan Multi-AZ. Nonaktifkan optimasi dalam memori dengan DBM sebelum Anda menambahkan Multi-AZ jika instans DB Anda menjalankan SQL Server 2016 atau 2017 Enterprise Edition dan mengaktifkan optimasi dalam memori.   
Jika instans DB Anda menjalankan AGs atau memblokir replikasi tingkat untuk SQL Server Web Editions, itu tidak memerlukan langkah ini. 

## Menghapus Multi-AZ dari instans DB Microsoft SQL Server
<a name="USER_SQLServerMultiAZ.Removing"></a>

Saat Anda memodifikasi instans SQL Server DB yang ada menggunakan Konsol Manajemen AWS, Anda dapat menghapus Multi-AZ dengan DBM, AGs, atau replikasi tingkat blok. Anda dapat melakukannya dengan memilih **No (Mirroring/Always On/Block Level Replication)** dari **penerapan Multi-AZ** di halaman instans **Modify** DB. Lihat informasi yang lebih lengkap di [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

# Batasan, catatan dan rekomendasi deployment Multi-AZ Microsoft SQL Server
<a name="USER_SQLServerMultiAZ.Recommendations"></a>

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 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 Nama Prinsipal Layanan (SPN).
+ Multi-AZ dengan replikasi tingkat blok saat ini hanya didukung untuk instance SQL Server Web Edition.
+ 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 Dukungan. Buka halaman [Pusat AWS Dukungan](https://console.aws.amazon.com/support/home#/), 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.
+ RDS untuk SQL Server tidak mereplikasi izin database MSDB ke instance sekunder. Jika Anda memerlukan izin ini pada instance sekunder, Anda harus membuatnya ulang secara manual.
+ Metrik volume tidak tersedia untuk host sekunder instance menggunakan replikasi tingkat blok.

Berikut ini adalah beberapa catatan tentang penggunaan deployment Multi-AZ di instans DB SQL Server:
+ Amazon RDS mengekspos titik akhir [pendengar grup AGs ketersediaan](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/listeners-client-connectivity-application-failover) 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](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/listeners-client-connectivity-application-failover).
+ 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, AGs, atau replikasi tingkat blok 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 direplikasi dalam instance DB yang menggunakan Always On AGs atau replikasi level blok untuk penerapan Multi-AZ. 
+ Dalam penerapan Multi-AZ, RDS untuk SQL Server membuat login SQL Server untuk memungkinkan Selalu Aktif atau Pencerminan Database. AGs RDS membuat login dengan pola berikut,, `db_<dbiResourceId>_node1_login``db_<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](Appendix.SQLServer.CommonDBATasks.Agent.md#SQLServerAgent.Replicate).
+ 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 AZs di semua AWS wilayah tertentu.
+ Untuk kinerja terbaik, jangan aktifkan Pencerminan Database, Selalu Aktif AGs, atau replikasi tingkat blok 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 basis data SQL Server harus memiliki penanganan pengecualian yang mengambil kesalahan koneksi. Contoh kode berikut menunjukkan try/catch blok yang menangkap 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 `Set Partner Off` perintah saat bekerja dengan instance Multi-AZ menggunakan DBM atau. AGs Perintah ini tidak didukung pada instance menggunakan replikasi tingkat blok. 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 `DEFAULT_DATABASE` parameter saat membuat login baru pada instans DB multi-AZ kecuali menggunakan replikasi tingkat blok untuk ketersediaan tinggi, karena pengaturan ini tidak dapat diterapkan ke cermin 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] WITH DEFAULT_DATABASE=[db3]
  ```

# Menentukan lokasi instans sekunder
<a name="USER_SQLServerMultiAZ.Location"></a>

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

![\[AZ sekunder\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/SQLSvr-MultiAZ.png)


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
<a name="USER_SQLServerMultiAZ.Migration"></a>

Dalam versi 14.00.3049.1 SQL Microsoft Server Enterprise Edition, Always On Availability Groups AGs () diaktifkan secara default.

Untuk bermigrasi dari Database Mirroring (DBM) keAGs, pertama 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 memutakhirkan instans DB cermin untuk digunakanAGs, jalankan pemutakhiran terlebih dahulu, ubah instance untuk menghapus Multi-AZ, lalu modifikasi lagi untuk menambahkan Multi-AZ. Ini mengubah instance Anda untuk menggunakan Always OnAGs.