

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

# Amazon RDS for Microsoft SQL Server
<a name="CHAP_SQLServer"></a>

Amazon RDS mendukung beberapa versi dan edisi Microsoft SQL Server. Tabel berikut menunjukkan versi minor terbaru yang didukung dari masing-masing versi utama. Untuk daftar lengkap versi, edisi, dan versi mesin RDS yang didukung, lihat [Versi Microsoft SQL Server di Amazon RDS](SQLServer.Concepts.General.VersionSupport.md).




| Versi utama | Paket Layanan/GDR | Pembaruan kumulatif | Versi minor | Artikel Dasar Pengetahuan | Tanggal rilis | 
| --- | --- | --- | --- | --- | --- | 
| SQL Server 2022 | Tidak berlaku | CU23 |  16.0.4236.2  | [KB5078297](https://learn.microsoft.com/en-us/troubleshoot/sql/releases/sqlserver-2022/cumulativeupdate23) | Januari 29, 2026 | 
| SQL Server 2019 | GDR | CU32 GDR |  15.0.4455.2  | [KB5068404](https://support.microsoft.com/en-us/topic/kb5068404-description-of-the-security-update-for-sql-server-2019-cu32-november-11-2025-c203bfbf-036e-46d2-bc10-6c01200dc48a) | November 11, 2025 | 
| SQL Server 2017 | GDR | CU31 GDR |  14.0.3515.1  | [KB5068402](https://support.microsoft.com/en-us/topic/kb5068402-description-of-the-security-update-for-sql-server-2017-cu31-november-11-2025-1be08efe-ad14-4b95-a0de-ecbbf2703114) | November 11, 2025 | 
| SQL Server 2016 | SP3 GDR | Tidak berlaku |  13.0.6475.1  | [KB5068401](https://support.microsoft.com/en-us/topic/kb5068401-description-of-the-security-update-for-sql-server-2016-sp3-gdr-november-11-2025-59a59fc0-f673-45c2-b8de-492b95c0e423) | November 11, 2025 | 

Untuk informasi tentang lisensi SQL Server, lihat [Melisensikan Microsoft SQL Server di Amazon RDS](SQLServer.Concepts.General.Licensing.md). Untuk informasi tentang build SQL Server, lihat artikel dukungan Microsoft ini tentang [Tempat menemukan informasi tentang build SQL Server terbaru](https://support.microsoft.com/en-us/topic/kb957826-where-to-find-information-about-the-latest-sql-server-builds-43994ba5-9aed-2323-ea7c-d29fe9c4fbe8).

Dengan Amazon RDS, Anda dapat membuat instans DB dan snapshot DB, point-in-time pemulihan, dan pencadangan otomatis atau manual. Instans DB yang menjalankan SQL Server dapat digunakan di dalam VPC. Anda juga dapat menggunakan Secure Sockets Layer (SSL) untuk menghubungkan ke instans DB yang menjalankan SQL Server, dan Anda dapat menggunakan enkripsi data transparan (TDE) untuk mengenkripsi data diam. Amazon RDS saat ini mendukung penerapan Multi-AZ untuk SQL Server menggunakan SQL Server Database Mirroring (DBM) atau Always On Availability Groups () sebagai solusi failover dengan ketersediaan tinggi. AGs 

Untuk memberikan pengalaman layanan terkelola, Amazon RDS tidak menyediakan akses shell ke instans DB, dan membatasi akses ke prosedur sistem dan tabel tertentu yang memerlukan hak akses tingkat lanjut. Amazon RDS mendukung akses ke basis data pada instans DB menggunakan aplikasi klien SQL standar seperti Microsoft SQL Server Management Studio. Amazon RDS tidak mengizinkan akses host langsung ke instans DB melalui Telnet, Secure Shell (SSH), atau Windows Remote Desktop Connection. Saat Anda membuat instans DB, pengguna utama ditetapkan ke peran *db\$1owner* untuk semua basis data pengguna pada instans tersebut, dan memiliki semua izin tingkat basis data kecuali yang digunakan untuk pencadangan. Amazon RDS mengelola pencadangan untuk Anda. 

Sebelum membuat instans DB pertama, Anda harus menyelesaikan langkah-langkah di bagian pengaturan dalam panduan ini. Untuk informasi selengkapnya, lihat [Menyiapkan lingkungan Amazon RDS Anda](CHAP_SettingUp.md).

**Topics**
+ [Tugas manajemen umum untuk Microsoft SQL Server di Amazon RDS](#SQLServer.Concepts.General)
+ [Batasan untuk instans DB Microsoft SQL Server](#SQLServer.Concepts.General.FeatureSupport.Limits)
+ [Dukungan kelas instans DB untuk Microsoft SQL Server](SQLServer.Concepts.General.InstanceClasses.md)
+ [Optimalkan CPUs untuk RDS untuk instance yang disertakan lisensi SQL Server](SQLServer.Concepts.General.OptimizeCPU.md)
+ [Keamanan Microsoft SQL Server](SQLServer.Concepts.General.FeatureSupport.UnsupportedRoles.md)
+ [Dukungan program kepatuhan untuk instans DB Microsoft SQL Server](#SQLServer.Concepts.General.Compliance)
+ [Versi Microsoft SQL Server di Amazon RDS](SQLServer.Concepts.General.VersionSupport.md)
+ [Fitur Microsoft SQL Server di Amazon RDS](SQLServer.Concepts.General.FeatureSupport.md)
+ [Deployment Multi-AZ menggunakan Microsoft SQL Server Database Mirroring atau Always On Availability Group](#SQLServer.Concepts.General.Mirroring)
+ [Menggunakan Enkripsi Data Transparan untuk mengenkripsi data diam](#SQLServer.Concepts.General.Options)
+ [Fungsi dan prosedur tersimpan Amazon RDS for Microsoft SQL Server](SQLServer.Concepts.General.StoredProcedures.md)
+ [Zona waktu lokal untuk instans Microsoft SQL Server DB](SQLServer.Concepts.General.TimeZone.md)
+ [Melisensikan Microsoft SQL Server di Amazon RDS](SQLServer.Concepts.General.Licensing.md)
+ [Menyambung ke instans Microsoft SQL Server DB](USER_ConnectToMicrosoftSQLServerInstance.md)
+ [Bekerja dengan SQL Server Developer Edition pada RDS untuk SQL Server](sqlserver-dev-edition.md)
+ [Menggunakan Active Directory dengan RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md)
+ [Upgrade mesin Microsoft SQL Server DB](USER_UpgradeDBInstance.SQLServer.md)
+ [Bekerja dengan penyimpanan di RDS untuk SQL Server](Appendix.SQLServer.CommonDBATasks.DatabaseStorage.md)
+ [Mengimpor dan mengekspor basis data SQL Server menggunakan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.md)
+ [Menggunakan replika baca untuk Microsoft SQL Server di Amazon RDS](SQLServer.ReadReplicas.md)
+ [Deployment Multi-AZ untuk Amazon RDS for Microsoft SQL Server](USER_SQLServerMultiAZ.md)
+ [Fitur tambahan untuk Microsoft SQL Server di Amazon RDS](User.SQLServer.AdditionalFeatures.md)
+ [Opsi untuk mesin basis data Microsoft SQL Server](Appendix.SQLServer.Options.md)
+ [Tugas DBA umum untuk Amazon RDS untuk Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.md)

## Tugas manajemen umum untuk Microsoft SQL Server di Amazon RDS
<a name="SQLServer.Concepts.General"></a>

Berikut adalah tugas manajemen umum yang Anda lakukan dengan instans DB Amazon RDS for SQL Server, dengan tautan ke dokumentasi yang relevan untuk setiap tugas. 


****  

| Area tugas | Deskripsi | Dokumentasi terkait | 
| --- | --- | --- | 
|  **Kelas instans, penyimpanan, dan PIOPS**  |  Jika membuat instans DB untuk tujuan produksi, Anda harus memahami cara kerja kelas instans, jenis penyimpanan, dan pekerjaan IOPS yang Tersedia di Amazon RDS.   |  [Dukungan kelas instans DB untuk Microsoft SQL Server](SQLServer.Concepts.General.InstanceClasses.md) [Jenis penyimpanan Amazon RDS](CHAP_Storage.md#Concepts.Storage)  | 
|  **Deployment Multi-AZ**  |  Instans basis data produksi seyogianya menggunakan deployment Multi-AZ. Deployment Multi-AZ memberikan ketersediaan, durabilitas data, dan toleransi kesalahan yang lebih tinggi untuk instans basis data. Penerapan Multi-AZ untuk SQL Server diimplementasikan menggunakan DBM asli SQL Server atau teknologi AGs.   |  [Mengonfigurasi dan mengelola penyebaran Multi-AZ untuk Amazon RDS](Concepts.MultiAZ.md) [Deployment Multi-AZ menggunakan Microsoft SQL Server Database Mirroring atau Always On Availability Group](#SQLServer.Concepts.General.Mirroring)  | 
|  **Amazon Virtual Private Cloud (Amazon VPC)**  |  Jika AWS akun Anda memiliki VPC default, maka instans DB Anda secara otomatis dibuat di dalam VPC default. Jika akun Anda tidak memiliki VPC default, dan Anda menginginkan instans DB dalam suatu VPC, Anda harus membuat VPC dan grup subnet sebelum membuat instans DB.   |  [Menggunakan instans DB di VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md)  | 
|  **Grup keamanan**  |  Secara default, instans DB dibuat dengan firewall yang mencegah akses ke instans tersebut. Oleh karena itu, Anda harus membuat grup keamanan dengan alamat IP dan konfigurasi jaringan yang benar untuk mengakses instans DB.  |  [Mengontrol akses dengan grup keamanan](Overview.RDSSecurityGroups.md)  | 
|  **Grup parameter**  |  Jika instans DB Anda akan membutuhkan parameter basis data tertentu, Anda harus membuat grup parameter sebelum Anda membuat instans DB.   |  [Grup parameter untuk RDS](USER_WorkingWithParamGroups.md)  | 
|  **Grup opsi**  |  Jika instans DB Anda akan membutuhkan opsi basis data tertentu, Anda harus membuat grup opsi sebelum membuat instans DB.   |  [Opsi untuk mesin basis data Microsoft SQL Server](Appendix.SQLServer.Options.md)  | 
|  **Menghubungkan ke instans DB**  |  Setelah membuat grup keamanan dan mengaitkannya ke instans DB, Anda dapat menghubungkan ke instans DB menggunakan aplikasi klien SQL standar seperti Microsoft SQL Server Management Studio.   |  [Menyambung ke instans Microsoft SQL Server DB](USER_ConnectToMicrosoftSQLServerInstance.md)  | 
|  **Pencadangan dan pemulihan**  |  Saat membuat instans DB, Anda dapat mengonfigurasinya untuk melakukan pencadangan otomatis. Anda juga dapat mencadangkan dan memulihkan basis data secara manual menggunakan file cadangan penuh (file .bak).   |  [Pengantar cadangan](USER_WorkingWithAutomatedBackups.md) [Mengimpor dan mengekspor basis data SQL Server menggunakan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.md)  | 
|  **Pemantauan**  |  Anda dapat memantau instans SQL Server DB dengan menggunakan metrik CloudWatch Amazon RDS, peristiwa, dan pemantauan yang disempurnakan.   |  [Melihat metrik di konsol Amazon RDS](USER_Monitoring.md) [Melihat RDS acara Amazon](USER_ListEvents.md)  | 
|  **File log**  |  Anda dapat mengakses file log untuk instans DB SQL Server Anda.   |  [Memantau file RDS Amazon](USER_LogAccess.md) [Amazon RDS untuk file log database Amazon RDS for Microsoft SQL Server](USER_LogAccess.Concepts.SQLServer.md)  | 

Ada juga tugas administratif lanjutan untuk bekerja dengan instans DB SQL Server. Untuk informasi selengkapnya, lihat dokumentasi berikut ini: 
+ [Tugas DBA umum untuk Amazon RDS untuk Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.md).
+ [Bekerja dengan Direktori Aktif AWS Terkelola dengan RDS untuk SQL Server](USER_SQLServerWinAuth.md)
+ [Mengakses basis data tempdb](SQLServer.TempDB.md)

## Batasan untuk instans DB Microsoft SQL Server
<a name="SQLServer.Concepts.General.FeatureSupport.Limits"></a>

Implementasi Amazon RDS dari Microsoft SQL Server pada instans DB memiliki beberapa batasan yang harus Anda ketahui:
+ Jumlah maksimum database yang didukung pada instans DB bergantung pada jenis kelas instans dan mode ketersediaan—Single-AZ, Multi-AZ Database Mirroring (DBM), atau Multi-AZ Availability Groups (). AGs Basis data sistem Microsoft SQL Server tidak termasuk dalam batasan ini. 

  Tabel berikut menunjukkan jumlah maksimum basis data yang didukung untuk setiap jenis kelas instans dan mode ketersediaan. Gunakan tabel ini untuk membantu memutuskan apakah Anda dapat beralih dari satu jenis kelas instans ke kelas instans lainnya, atau dari satu mode ketersediaan ke mode lainnya. Jika instans DB sumber Anda memiliki lebih banyak basis data daripada yang dapat didukung oleh jenis kelas instans target atau mode ketersediaan, modifikasi instans DB akan gagal. Status permintaan Anda dapat dilihat di panel **Peristiwa**.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html)

  \$1 Menunjukkan jenis kelas instans yang berbeda. 

  Misalnya, instans DB Anda berjalan pada db.\$1.16xlarge dengan AZ Tunggal dan memiliki 76 basis data. Anda memodifikasi instans DB untuk meningkatkan ke menggunakan Multi-AZ Always On AGs. Peningkatan ini gagal, karena instans DB berisi lebih banyak basis data daripada yang dapat didukung oleh konfigurasi target Anda. Jika Anda meningkatkan jenis kelas instans Anda ke db.\$1.24xlarge, modifikasi tersebut akan berhasil.

  Jika peningkatan gagal, Anda melihat peristiwa dan pesan yang mirip dengan berikut ini:
  +  Tidak dapat mengubah kelas instans basis data. Instans memiliki 76 basis data, tetapi setelah konversi, hanya akan mendukung 75. 
  +  Tidak dapat mengonversi instans DB menjadi Multi-AZ: instans memiliki 76 basis data, tetapi setelah konversi, hanya akan mendukung 75. 

   Jika point-in-time pemulihan atau pemulihan snapshot gagal, Anda melihat peristiwa dan pesan yang mirip dengan berikut ini:
  +  Instans basi data dimasukkan ke dalam pemulihan yang tidak kompatibel. Instans memiliki 76 basis data, tetapi setelah konversi, hanya akan mendukung 75. 
+ Port berikut disimpan untuk Amazon RDS, dan Anda tidak dapat menggunakannya saat membuat instans DB: `1234, 1434, 3260, 3343, 3389, 47001,` dan `49152-49156`.
+ Koneksi klien dari alamat IP di dalam rentang 169.254.0.0/16 tidak diizinkan. Rentang ini adalah Automatic Private IP Addressing Range (APIPA) yang digunakan untuk alamat tautan lokal.
+ SQL Server Standard Edition hanya menggunakan subset dari prosesor yang tersedia jika jumlah prosesor instans DB melebihi batas perangkat lunak (24 core, 4 soket, dan RAM 128 GB). Contohnya adalah kelas instans db.m5.24xlarge dan db.r5.24xlarge.

  Untuk informasi selengkapnya, lihat tabel batas skala pada [Editions and supported features of SQL Server 2019 (15.x)](https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-version-15) dalam dokumentasi Microsoft.
+ Amazon RDS for SQL Server tidak mendukung impor data ke basis data msdb. 
+ Anda tidak dapat mengganti nama basis data pada instans DB dalam deployment Multi-AZ SQL Server.
+ Pastikan Anda menggunakan pedoman ini saat menetapkan parameter DB berikut pada RDS for SQL Server:
  + `max server memory (mb)` >= 256 MB
  + `max worker threads`>= (jumlah CPUs logis\$1 7)

  Untuk informasi selengkapnya tentang cara menetapkan parameter DB, lihat [Grup parameter untuk RDS](USER_WorkingWithParamGroups.md).
+ Ukuran penyimpanan maksimum untuk instans DB SQL Server adalah sebagai berikut: 
  + Penyimpanan Tujuan Umum (SSD) – 16 TiB untuk semua edisi 
  + Penyimpanan IOPS yang disediakan - 64 TiB untuk semua edisi 
  + Penyimpanan Magnetik – 1 TiB untuk semua edisi 

  Jika Anda memiliki skenario yang membutuhkan jumlah penyimpanan yang lebih besar, Anda dapat menggunakan sharding di beberapa instans DB untuk mengatasi batas tersebut. Pendekatan ini membutuhkan logika perutean yang bergantung pada data dalam aplikasi yang terhubung ke sistem sharding. Anda dapat menggunakan kerangka kerja sharding yang ada, atau Anda dapat menulis kode kustom untuk mengaktifkan sharding. Jika Anda menggunakan kerangka kerja yang ada, kerangka kerja tersebut tidak dapat menginstal komponen apa pun di server yang sama dengan instans DB. 
+ Ukuran penyimpanan minimum untuk instans DB SQL Server adalah sebagai berikut:
  + Penyimpanan Tujuan Umum (SSD) – 20 GiB untuk Edisi Enterprise, Standard, Web, dan Express
  + Penyimpanan IOPS yang Tersedia – 20 GiB untuk Edisi Enterprise Standar, dan Web dan Express
  + Penyimpanan Magnetik – 20 GiB untuk Edisi Enterprise Standar, dan Web dan Express
+ Amazon RDS tidak mendukung menjalankan layanan ini di server yang sama dengan instans DB RDS Anda:
  + Layanan Kualitas Data
  + Layanan Data Master

  Untuk menggunakan fitur ini, sebaiknya Anda menginstal SQL Server pada instans Amazon EC2, atau menggunakan instans SQL Server on-premise. Dalam kasus ini, instans EC2 atau SQL Server bertindak sebagai server Layanan Data Master untuk instans DB SQL Server Anda di Amazon RDS. Anda dapat menginstal SQL Server pada instans Amazon EC2 dengan penyimpanan Amazon EBS, sesuai dengan kebijakan lisensi Microsoft.
+ Karena batasan di Microsoft SQL Server, pemulihan ke suatu titik waktu sebelum berhasil menjalankan `DROP DATABASE` mungkin tidak mencerminkan status basis data tersebut pada saat itu. Misalnya, basis data yang dihapus biasanya dikembalikan ke statusnya hingga 5 menit sebelum perintah `DROP DATABASE` dikeluarkan. Jenis pemulihan ini berarti Anda tidak dapat memulihkan transaksi yang dilakukan selama beberapa menit tersebut pada basis data yang dihapus. Untuk menyiasatinya, Anda dapat mengeluarkan kembali perintah `DROP DATABASE` setelah operasi pemulihan selesai. Menghentikan basis data akan menghapus log transaksi untuk basis data tersebut.
+ Untuk SQL Server, Anda membuat basis data setelah membuat instans DB. Nama basis data mengikuti aturan penamaan SQL Server biasa dengan perbedaan berikut:
  + Nama basis data tidak boleh dimulai dengan `rdsadmin`.
  + Nama tersebut tidak boleh diawali atau diakhiri dengan spasi atau tab.
  + Nama tersebut tidak boleh berisi karakter apa pun yang membuat baris baru.
  + Nama tersebut tidak boleh berisi kutipan tunggal (`'`).
+ SQL Server Web Edition hanya memungkinkan Anda untuk menggunakan template **Dev/Test** saat membuat RDS baru untuk SQL Server DB instance.
+ SQL Server Web Edition dirancang untuk web hoster dan web VAPs untuk meng-host halaman web publik dan internet yang dapat diakses, situs web, aplikasi web, dan layanan web. Untuk informasi selengkapnya, lihat [Melisensikan Microsoft SQL Server di Amazon RDS](SQLServer.Concepts.General.Licensing.md).

# Dukungan kelas instans DB untuk Microsoft SQL Server
<a name="SQLServer.Concepts.General.InstanceClasses"></a>

Komputasi dan kapasitas memori instans DB ditentukan oleh kelas instans DB-nya. Kelas instans DB yang Anda butuhkan tergantung pada kebutuhan daya dan memori pemrosesan Anda. Untuk informasi selengkapnya, lihat [ DB](Concepts.DBInstanceClass.md). 

Daftar kelas instans DB berikut yang didukung untuk Microsoft SQL Server disediakan di sini untuk memudahkan Anda. Untuk daftar terbaru, lihat konsol RDS: [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

Tidak semua kelas instans DB tersedia di semua versi minor SQL Server yang didukung. Misalnya, beberapa kelas instans DB yang lebih baru seperti db.r6i tidak tersedia pada versi minor yang lebih lama. Anda dapat menggunakan AWS CLI perintah [describe-orderable-db-instance-options](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/describe-orderable-db-instance-options.html) untuk mengetahui kelas instans DB mana yang tersedia untuk edisi dan versi SQL Server Anda.


****  

| Edisi SQL Server | Rentang dukungan 2022 | Rentang dukungan 2019 | Rentang dukungan 2017 dan 2016 | 
| --- | --- | --- | --- | 
|  Enterprise Edition  | `db.t3.xlarge`–`db.t3.2xlarge``db.r5.xlarge`–`db.r5.24xlarge``db.r5b.xlarge`–`db.r5b.24xlarge``db.r5d.xlarge`–`db.r5d.24xlarge``db.r6i.xlarge`–`db.r6i.32xlarge`db.r7i.xlarge–db.r7i.48xlarge`db.m5.xlarge`–`db.m5.24xlarge``db.m5d.xlarge`–`db.m5d.24xlarge``db.m6i.xlarge`–`db.m6i.32xlarge``db.m7i.xlarge`–`db.m7i.48xlarge``db.x2iedn.xlarge`–`db.x2iedn.32xlarge``db.z1d.xlarge`–`db.z1d.12xlarge` |  `db.t3.xlarge`–`db.t3.2xlarge` `db.r5.xlarge`–`db.r5.24xlarge` `db.r5b.xlarge`–`db.r5b.24xlarge` `db.r5d.xlarge`–`db.r5d.24xlarge` `db.r6i.xlarge`–`db.r6i.32xlarge` `db.r7i.xlarge`–`db.r7i.48xlarge` `db.m5.xlarge`–`db.m5.24xlarge` `db.m5d.xlarge`–`db.m5d.24xlarge` `db.m6i.xlarge`–`db.m6i.32xlarge` `db.m7i.xlarge`–`db.m7i.48xlarge` `db.x2iedn.xlarge`–`db.x2iedn.32xlarge` `db.z1d.xlarge`–`db.z1d.12xlarge`  |  `db.t3.xlarge`–`db.t3.2xlarge` `db.r5.xlarge`–`db.r5.24xlarge` `db.r5b.xlarge`–`db.r5b.24xlarge` `db.r5d.xlarge`–`db.r5d.24xlarge` `db.r6i.xlarge`–`db.r6i.32xlarge` `db.r7i.xlarge`–`db.r7i.48xlarge` `db.m5.xlarge`–`db.m5.24xlarge` `db.m5d.xlarge`–`db.m5d.24xlarge` `db.m6i.xlarge`–`db.m6i.32xlarge` `db.m7i.xlarge`–`db.m7i.48xlarge` `db.x2iedn.xlarge`–`db.x2iedn.32xlarge` `db.z1d.xlarge`–`db.z1d.12xlarge`  | 
|  Standard Edition  | `db.t3.xlarge`–`db.t3.2xlarge``db.r5.large`–`db.r5.24xlarge``db.r5b.large`–`db.r5b.8xlarge``db.r5d.large`–`db.r5d.24xlarge``db.r6i.large`–`db.r6i.8xlarge`db.r7i.large–db.r7i.12xlarge`db.m5.large`–`db.m5.24xlarge``db.m5d.large`–`db.m5d.24xlarge``db.m6i.large`–`db.m6i.8xlarge``db.m7i.large`–`db.m7i.12xlarge``db.x2iedn.xlarge`–`db.x2iedn.8xlarge``db.z1d.large`–`db.z1d.12xlarge` |  `db.t3.xlarge`–`db.t3.2xlarge` `db.r5.large`–`db.r5.24xlarge` `db.r5b.large`–`db.r5b.24xlarge` `db.r5d.large`–`db.r5d.24xlarge` `db.r6i.large`–`db.r6i.8xlarge` `db.r7i.large`–`db.r7i.12xlarge` `db.m5.large`–`db.m5.24xlarge` `db.m5d.large`–`db.m5d.24xlarge` `db.m6i.large`–`db.m6i.8xlarge` `db.m7i.large`–`db.m7i.12xlarge` `db.x2iedn.xlarge`–`db.x2iedn.32xlarge` `db.z1d.large`–`db.z1d.12xlarge`  | `db.t3.xlarge`–`db.t3.2xlarge``db.r5.large`–`db.r5.24xlarge``db.r5b.large`–`db.r5b.24xlarge``db.r5d.large`–`db.r5d.24xlarge``db.r6i.large`–`db.r6i.8xlarge``db.r7i.large`–`db.r7i.12xlarge``db.m5.large`–`db.m5.24xlarge``db.m5d.large`–`db.m5d.24xlarge``db.m6i.large`–`db.m6i.8xlarge`db.m7i.large–db.m7i.12xlarge`db.x2iedn.xlarge`–`db.x2iedn.32xlarge``db.z1d.large`–`db.z1d.12xlarge` | 
|  Web Edition  | `db.t3.small`–`db.t3.xlarge``db.r5.large`–`db.r5.4xlarge``db.r5b.large`–`db.r5b.4xlarge``db.r5d.large`–`db.r5d.4xlarge`db.r6i.large–db.r6i.4xlarge`db.r7i.large`–`db.r7i.4xlarge``db.m5.large`–`db.m5.4xlarge``db.m5d.large`–`db.m5d.4xlarge``db.m6i.large`–`db.m6i.4xlarge``db.m7i.large`–`db.m7i.4xlarge``db.z1d.large`–`db.z1d.13xlarge` | `db.t3.small`–`db.t3.2xlarge``db.r5.large`–`db.r5.4xlarge``db.r5b.large`–`db.r5b.4xlarge``db.r5d.large`–`db.r5d.4xlarge``db.r6i.large`–`db.r6i.4xlarge`db.r7i.large–db.r7i.4xlarge`db.m5.large`–`db.m5.4xlarge``db.m5d.large`–`db.m5d.4xlarge``db.m6i.large`–`db.m6i.4xlarge`db.m7i.large–db.m7i.4xlarge`db.z1d.large`–`db.z1d.3xlarge` | `db.t3.small`–`db.t3.2xlarge``db.r5.large`–`db.r5.4xlarge``db.r5b.large`–`db.r5b.4xlarge``db.r5d.large`–`db.r5d.4xlarge``db.r6i.large`–`db.r6i.4xlarge`db.r7i.large–db.r7i.4xlarge`db.m5.large`–`db.m5.4xlarge``db.m5d.large`–`db.m5d.4xlarge``db.m6i.large`–`db.m6i.4xlarge`db.m7i.large–db.m7i.4xlarge`db.z1d.large`–`db.z1d.3xlarge` | 
|  Express Edition  |  `db.t3.micro`–`db.t3.xlarge`  |  `db.t3.micro`–`db.t3.xlarge`  |  `db.t3.micro`–`db.t3.xlarge`  | 
| Developer Edition | `db.m6i.xlarge`–`db.m6i.32xlarge``db.r6i.xlarge`–`db.r6i.32xlarge` |  |  | 

**catatan**  
 Dimulai dengan kelas instance generasi ke-7, hyper-threading dinonaktifkan pada RDS SQL Server misalnya ukuran 2xlarge ke atas. Ini menghasilkan jumlah total v yang CPUs tersedia menjadi setengah dari yang didukung oleh [instans EC2 yang sesuai](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html). Misalnya, tipe instans EC2 secara `m7i.2xlarge` default mendukung 4 core dan 2 threadsPerCore, menghasilkan total 8 vCPUs. Sebaliknya, RDS untuk `db.m7i.2xlarge` instance SQL Server, dengan hyper-threading dinonaktifkan, menghasilkan 4 core dan 1 threadsPerCore, keseluruhan 4 v. CPUs
Dimulai dengan instans generasi ke-7, tagihan Anda memberikan rincian rinci tentang instans RDS DB dan biaya lisensi pihak ketiga. Untuk detail selengkapnya, lihat harga [RDS SQL Server](https://aws.amazon.com/rds/sqlserver/pricing/).

# Optimalkan CPUs untuk RDS untuk instance yang disertakan lisensi SQL Server
<a name="SQLServer.Concepts.General.OptimizeCPU"></a>

Dengan RDS untuk SQL Server, Anda dapat menggunakan Optimalkan CPU dengan menentukan fitur prosesor untuk mengonfigurasi jumlah vCPU pada instans DB Anda sambil mempertahankan memori dan IOPS yang sama. Anda dapat mencapai memory-to-CPU rasio yang diinginkan untuk persyaratan beban kerja database tertentu dan mengurangi biaya lisensi untuk Microsoft Windows OS dan SQL Server, yang didasarkan pada jumlah vCPU.

Untuk menentukan fitur prosesor, gunakan parameter berikut:

```
--processor-features "Name=coreCount,Value=value" \ 
	"Name=threadsPerCore,Value=value"
```
+ **CoreCount** — Tentukan jumlah inti CPU untuk instans DB, untuk mengoptimalkan biaya lisensi untuk instans DB. Lihat [Kelas instans DB yang mendukung Optimalkan CPUDukungan kelas instans DB](SQLServer.Concepts.General.OptimizeCPU.Support.md) untuk menemukan nilai yang diizinkan untuk jumlah inti untuk jenis instance yang dipilih.
+ **threadsPerCore**— Tentukan utas per inti untuk menentukan jumlah utas per inti CPU. Lihat [Kelas instans DB yang mendukung Optimalkan CPUDukungan kelas instans DB](SQLServer.Concepts.General.OptimizeCPU.Support.md) untuk menemukan nilai yang diizinkan untuk utas per inti untuk jenis instance yang dipilih.

Contoh perintah untuk membuat RDS untuk instance SQL Server dengan pengaturan Optimalkan CPU:

```
aws rds create-db-instance \
    --engine sqlserver-ee \
    --engine-version 16.00 \
    --license-model license-included \
    --allocated-storage 300 \
    --master-username myuser \
    --master-user-password xxxxx \
    --no-multi-az \
    --vpc-security-group-ids myvpcsecuritygroup \
    --db-subnet-group-name mydbsubnetgroup \
    --db-instance-identifier my-rds-instance \
    --db-instance-class db.m7i.8xlarge \
    --processor-features "Name=coreCount,Value=8" "Name=threadsPerCore,Value=1"
```

Dalam contoh ini, Anda membuat `db.m7i.8xlarge` instance, yang secara default memiliki CoreCount 16. Dengan menggunakan Optimalkan CPU, Anda memilih CoreCount 8, menghasilkan jumlah vCPU efektif 8.

Jika Anda membuat instance tanpa `--processor-features` parameter, jumlah inti diatur ke 16 dan utas per inti diatur ke 1 secara default, menghasilkan jumlah vCPU default 16.

Beberapa pertimbangan yang perlu diingat saat menentukan fitur prosesor:
+ **Buat** - Tentukan parameter `coreCount` dan `threadsPerCore` untuk `processor-features` parameter dari nilai yang diizinkan. Lihat [Kelas instans DB yang mendukung Optimalkan CPUDukungan kelas instans DB](SQLServer.Concepts.General.OptimizeCPU.Support.md).
+ **Modifikasi** — Saat memodifikasi dari satu kelas instance yang dikonfigurasi dengan pengaturan Optimalkan CPU ke kelas lain yang mendukung pengaturan CPU Optimalkan, Anda harus menentukan pengaturan prosesor default menggunakan `--use-default-processor-features` parameter atau secara eksplisit menentukan opsi selama permintaan modifikasi.
**catatan**  
Mengubah jumlah vCPU dapat berimplikasi pada biaya biaya lisensi yang terkait dengan instans DB.
+ Pemulihan **snapshot — Saat memulihkan** snapshot ke jenis instans yang sama dengan sumber, instans DB yang dipulihkan mewarisi pengaturan Optimalkan CPU dari snapshot. Jika memulihkan ke jenis instans yang berbeda, Anda perlu menentukan pengaturan Optimalkan CPU untuk instance target atau menentukan `--use-default-processor-features` parameternya.
+ **Point-in-time restore** — Point-in-time restore (PITR) melibatkan pemulihan snapshot tertentu berdasarkan waktu yang ditentukan untuk PITR dan kemudian menerapkan semua cadangan log transaksional ke snapshot itu, sehingga membawa instance ke titik waktu yang ditentukan. Untuk PITR, pengaturan Optimalkan CPU`threadsPerCore`, `coreCount` dan, berasal dari snapshot sumber (bukan titik waktu) kecuali nilai khusus ditentukan selama permintaan PITR. Jika snapshot sumber yang digunakan diaktifkan dengan pengaturan Optimalkan CPU dan Anda menggunakan jenis instans yang berbeda untuk PITR, Anda harus menentukan pengaturan Optimalkan CPU untuk instance target atau menentukan parameternya`—-use-default-processor-features`.

## Batasan
<a name="SQLServer.Concepts.General.OptimizeCPU.Limitations"></a>

Batasan berikut berlaku saat menggunakan Optimalkan CPU:
+ Optimalkan CPU hanya didukung dengan Enterprise, Standard, dan Web Editions.
+ Optimalkan CPU tersedia pada instance tertentu. Lihat [Kelas instans DB yang mendukung Optimalkan CPUDukungan kelas instans DB](SQLServer.Concepts.General.OptimizeCPU.Support.md).
+ Menyesuaikan jumlah core CPU didukung pada ukuran instans `2xlarge` dan di atas. Dengan jenis instans ini, jumlah minimum vCPCU yang didukung untuk Optimalkan CPU adalah 4.
+ Optimalkan CPU hanya mengizinkan 1 utas per inti karena Hyper-Threading dinonaktifkan untuk instance mulai dari generasi ke-7 yang mendukung Optimize CPU.

# Kelas instans DB yang mendukung Optimalkan CPU
<a name="SQLServer.Concepts.General.OptimizeCPU.Support"></a>

RDS untuk SQL Server mendukung Optimalkan CPU yang dimulai dengan tipe kelas instance Generasi ke-7. Selain itu, RDS menyediakan rincian penagihan rinci dari instans RDS DB dan biaya lisensi pihak ketiga, mulai dari jenis kelas instans Generasi ke-7, terlepas dari apakah fitur Optimalkan CPU diaktifkan.

RDS untuk SQL Server menyediakan dukungan untuk Optimalkan CPU pada ukuran instans tertentu, dengan ukuran instans terkecil yang didukung. `2xlarge` Konfigurasi minimum yang didukung adalah 4 vCPUs. Tabel di bawah ini menguraikan kelas instans DB yang mendukung CPU Optimalkan, termasuk nilai default dan validnya untuk inti CPU, utas CPU per inti, dan vCPUs: 


**Instans tujuan umum**  

| Tipe instans | Default v CPUs | Inti CPU default | Inti CPU yang valid | Thread valid per inti | 
| --- | --- | --- | --- | --- | 
| `m7i.large` | 2 | 1 | 1 | 2 | 
| `m7i.xlarge` | 4 | 2 | 2 | 2 | 
| `m7i.2xlarge` | 4 | 4 | 1,2,3,4 | 1 | 
| `m7i.4xlarge` | 8 | 8 | 1,2,3,4,5,6,7,8 | 1 | 
| `m7i.8xlarge` | 16 | 16 | 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 | 1 | 
| `m7i.12xlarge` | 24 | 24 | 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 | 1 | 
| `m7i.16xlarge` | 32 | 32 | 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32 | 1 | 


**Instans memori yang dioptimalkan**  

| Tipe instans | Default v CPUs | Inti CPU default | Inti CPU yang valid | Thread valid per inti | 
| --- | --- | --- | --- | --- | 
| `r7i.large` | 2 | 1 | 1 | 2 | 
| `r7i.xlarge` | 4 | 2 | 2 | 2 | 
| `r7i.2xlarge` | 4 | 4 | 1,2,3,4 | 1 | 
| `r7i.4xlarge` | 8 | 8 | 1,2,3,4,5,6,7,8 | 1 | 
| `r7i.8xlarge` | 16 | 16 | 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 | 1 | 
| `r7i.12xlarge` | 24 | 24 | 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 | 1 | 
| `r7i.16xlarge` | 32 | 32 | 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32 | 1 | 

# Mengatur inti CPU dan threads per inti CPU untuk kelas instans DB
<a name="SQLServer.Concepts.General.OptimizeCPU.Enabling"></a>

Anda dapat mengonfigurasi jumlah inti CPU dan thread per inti untuk kelas instans DB saat Anda melakukan operasi berikut:
+ [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md)
+ [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md)
+ [Memulihkan ke instans DB](USER_RestoreFromSnapshot.md)
+ [Memulihkan instans DB ke waktu yang ditentukan untuk Amazon RDS](USER_PIT.md)

**catatan**  
Saat Anda memodifikasi instans DB untuk mengonfigurasi jumlah inti CPU atau utas per inti, ada pemadaman singkat yang mirip dengan saat Anda memodifikasi kelas instance.

Atur inti CPU dengan menggunakan Konsol Manajemen AWS, AWS CLI atau RDS API.

## Konsol
<a name="SQLServer.Concepts.General.OptimizeCPU.Enabling.CON"></a>

**Untuk mengatur inti**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Pilih **Buat basis data**.

1. Saat menyetel opsi **konfigurasi Instance**:

   1. Pilih opsi **Optimalkan CPU**.

   1. Atur opsi **vCPU** Anda dengan memilih jumlah core.  
![\[Database membuat halaman saat mengatur pengaturan OCPU\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/OCPU-screenshot.png)

1. Setelah menyelesaikan pilihan lain, pilih **Buat database**.

## AWS CLI
<a name="SQLServer.Concepts.General.OptimizeCPU.Enabling.CLI"></a>

**Untuk mengatur inti**

1. Untuk mengonfigurasi Optimalkan CPU menggunakan AWS CLI, sertakan `--processor-features` opsi dalam perintah. Tentukan jumlah core CPU dengan `coreCount` dan `threadsPerCore` as`1`.

1. Gunakan sintaks berikut:

   ```
   aws rds create-db-instance \
       --engine sqlserver-ee \
       --engine-version 16.00 \
       --license-model license-included \
       --allocated-storage 300 \
       --master-username myuser \
       --master-user-password xxxxx \
       --no-multi-az \
       --vpc-security-group-ids myvpcsecuritygroup \
       --db-subnet-group-name mydbsubnetgroup \
       --db-instance-identifier my-rds-instance \
       --db-instance-class db.m7i.4xlarge \
       --processor-features "Name=coreCount,Value=6" "Name=threadsPerCore,Value=1"
   ```

**Example melihat nilai prosesor yang valid untuk kelas instans DB**  
Gunakan `describe-orderable-db-instance-options` perintah untuk menampilkan v defaultCPUs, core, dan thread per core. Misalnya, output untuk perintah berikut menunjukkan opsi prosesor untuk kelas instance db.r7i.2xlarge.  

```
aws rds describe-orderable-db-instance-options --engine sqlserver-ee \
--db-instance-class db.r7i.2xlarge

Sample output: 
-------------------------------------------------------------
|            DescribeOrderableDBInstanceOptions             |
+-----------------------------------------------------------+
||               OrderableDBInstanceOptions                ||
|+------------------------------------+--------------------+|
||  DBInstanceClass                   |  db.r7i.2xlarge    ||
||  Engine                            |  sqlserver-ee      ||
||  EngineVersion                     |  13.00.6300.2.v1   ||
||  LicenseModel                      |  license-included  ||
||  MaxIopsPerDbInstance              |                    ||
||  MaxIopsPerGib                     |                    ||
||  MaxStorageSize                    |  64000             ||
||  MinIopsPerDbInstance              |                    ||
||  MinIopsPerGib                     |                    ||
||  MinStorageSize                    |  20                ||
||  MultiAZCapable                    |  True              ||
||  OutpostCapable                    |  False             ||
||  ReadReplicaCapable                |  True              ||
||  StorageType                       |  gp2               ||
||  SupportsClusters                  |  False             ||
||  SupportsDedicatedLogVolume        |  False             ||
||  SupportsEnhancedMonitoring        |  True              ||
||  SupportsGlobalDatabases           |  False             ||
||  SupportsIAMDatabaseAuthentication |  False             ||
||  SupportsIops                      |  False             ||
||  SupportsKerberosAuthentication    |  True              ||
||  SupportsPerformanceInsights       |  True              ||
||  SupportsStorageAutoscaling        |  True              ||
||  SupportsStorageEncryption         |  True              ||
||  SupportsStorageThroughput         |  False             ||
||  Vpc                               |  True              ||
|+------------------------------------+--------------------+|
|||                   AvailabilityZones                   |||
||+-------------------------------------------------------+||
|||                         Name                          |||
||+-------------------------------------------------------+||
|||  us-west-2a                                           |||
|||  us-west-2b                                           |||
|||  us-west-2c                                           |||
||+-------------------------------------------------------+||
|||              AvailableProcessorFeatures               |||
||+-----------------+-----------------+-------------------+||
|||  AllowedValues  |  DefaultValue   |       Name        |||
||+-----------------+-----------------+-------------------+||
|||  1,2,3,4        |  4              |  coreCount        |||
|||  1              |  1              |  threadsPerCore   |||
||+-----------------+-----------------+-------------------+||
```
Selain itu, Anda dapat menjalankan perintah berikut untuk informasi prosesor kelas instans DB:  
+ `describe-db-instances`— Menampilkan informasi prosesor untuk instans DB yang ditentukan
+ `describe-db-snapshots`— Menampilkan informasi prosesor untuk snapshot DB yang ditentukan
+ `describe-valid-db-instance-modifications`— Menunjukkan modifikasi yang valid pada prosesor untuk instans DB yang ditentukan
Dalam output dari perintah sebelumnya, nilai untuk fitur prosesor adalah `null` jika Optimalkan CPU tidak dikonfigurasi.

**Example pengaturan jumlah core CPU untuk instance DB**  
Contoh berikut memodifikasi *mydbinstance* dengan mengatur jumlah core CPU ke 4 threadsPerCore sebagai 1. Terapkan perubahan segera dengan menggunakan`--apply-immediately`. Jika Anda ingin menerapkan perubahan selama jendela pemeliharaan terjadwal berikutnya, hilangkan`--apply-immediately option`.  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --db-instance-class db.r7i.8xlarge \
    --processor-features "Name=coreCount,Value=4" "Name=threadsPerCore,Value=1" \
    --apply-immediately
```

**Example kembali ke pengaturan prosesor default untuk instance DB**  
Contoh berikut memodifikasi *mydbinstance* dengan mengembalikannya ke nilai prosesor default untuk itu.  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --db-instance-class db.r7i.8xlarge \
    --use-default-processor-features \
    --apply-immediately
```

# Keamanan Microsoft SQL Server
<a name="SQLServer.Concepts.General.FeatureSupport.UnsupportedRoles"></a>

Mesin database Microsoft SQL Server menggunakan keamanan berbasis peran. Nama pengguna master yang Anda tentukan saat membuat instans DB adalah login Otentikasi SQL Server yang merupakan anggota`processadmin`,`public`, dan peran server `setupadmin` tetap.

Setiap pengguna yang membuat basis data ditetapkan ke peran db\$1owner untuk basis data tersebut dan memiliki semua izin tingkat basis data kecuali yang digunakan untuk pencadangan. Amazon RDS mengelola cadangan untuk Anda.

Peran tingkat server berikut tidak tersedia di Amazon RDS untuk Server: SQL
+ bulkadmin
+ dbcreator
+ diskadmin
+ securityadmin
+ serveradmin
+ sysadmin

Izin tingkat server berikut tidak tersedia RDS untuk SQL instans Server DB:
+ ALTER ANY DATABASE
+ ALTER ANY EVENT NOTIFICATION
+ ALTER RESOURCES
+ ALTERSETTINGS(Anda dapat menggunakan API operasi grup parameter DB untuk memodifikasi parameter; untuk informasi lebih lanjut, lihat[Grup parameter untuk RDS](USER_WorkingWithParamGroups.md)) 
+ AUTHENTICATE SERVER
+ CONTROL\$1SERVER
+ CREATE DDL EVENT NOTIFICATION
+ CREATE ENDPOINT
+ CREATE SERVER ROLE
+ CREATE TRACE EVENT NOTIFICATION
+ DROP ANY DATABASE
+ EXTERNAL ACCESS ASSEMBLY
+ SHUTDOWN(Anda dapat menggunakan opsi RDS reboot sebagai gantinya)
+ UNSAFE ASSEMBLY
+ ALTER ANY AVAILABILITY GROUP
+ CREATE ANY AVAILABILITY GROUP

## SSLdukungan untuk instans Microsoft SQL Server DB
<a name="SQLServer.Concepts.General.SSL"></a>

Anda dapat menggunakan SSL untuk mengenkripsi koneksi antara aplikasi dan instans Amazon RDS DB yang menjalankan Microsoft SQL Server. Anda juga dapat memaksa semua koneksi ke instans DB Anda untuk digunakanSSL. Jika Anda memaksa koneksi untuk digunakanSSL, itu terjadi secara transparan ke klien, dan klien tidak perlu melakukan pekerjaan apa pun untuk digunakanSSL. 

SSLdidukung di semua AWS Wilayah dan untuk semua edisi SQL Server yang didukung. Untuk informasi selengkapnya, lihat [Menggunakan SSL dengan instans DB Microsoft SQL Server](SQLServer.Concepts.General.SSL.Using.md). 

# Menggunakan SSL dengan instans DB Microsoft SQL Server
<a name="SQLServer.Concepts.General.SSL.Using"></a>

Anda dapat menggunakan Secure Sockets Layer (SSL) untuk mengenkripsi koneksi antara aplikasi klien Anda dan instans DB Amazon RDS yang menjalankan Microsoft SQL Server. Dukungan SSL tersedia di semua AWS wilayah untuk semua edisi SQL Server yang didukung. 

Saat Anda membuat instans DB SQL Server, Amazon RDS membuat sertifikat SSL untuk instans DB tersebut. Sertifikat SSL menyertakan titik akhir instans DB sebagai Nama Umum (CN) untuk sertifikat SSL guna melindungi dari serangan spoofing. 

Ada 2 cara menggunakan SSL untuk terhubung ke instans DB SQL Server Anda: 
+ Paksa SSL untuk semua koneksi — ini terjadi secara transparan pada klien, dan klien tidak perlu melakukan pekerjaan apa pun untuk menggunakan SSL. 
**catatan**  
Saat Anda mengatur `1` dan `rds.force_ssl` menggunakan SSMS versi 19.3, 20.0, dan 20.2, periksa yang berikut ini:  
Aktifkan **Sertifikat Server Kepercayaan** di SSMS.
Impor sertifikat di sistem Anda.
+ Enkripsi koneksi tertentu — ini menyiapkan koneksi SSL dari komputer klien tertentu, dan Anda harus melakukan pekerjaan pada klien untuk mengenkripsi koneksi. 

Untuk informasi tentang dukungan Transport Layer Security (TLS) untuk SQL Server, lihat [ Dukungan TLS 1.2 untuk Microsoft SQL Server](https://support.microsoft.com/en-ca/help/3135244/tls-1-2-support-for-microsoft-sql-server).

## Memaksa koneksi ke instans DB Anda untuk menggunakan SSL
<a name="SQLServer.Concepts.General.SSL.Forcing"></a>

Anda dapat memaksa semua koneksi ke instans DB Anda untuk menggunakan SSL. Jika Anda memaksa koneksi untuk menggunakan SSL, hal ini terjadi secara transparan pada klien, dan klien tidak perlu melakukan tindakan apa pun untuk menggunakan SSL. 

Jika Anda ingin memaksa SSL, gunakan parameter `rds.force_ssl`. Secara default, parameter `rds.force_ssl` diatur ke `0 (off)`. Atur parameter `rds.force_ssl` ke `1 (on)` untuk memaksa koneksi untuk menggunakan SSL. Parameter `rds.force_ssl` bersifat statis, sehingga setelah Anda mengubah nilai, Anda harus mem-boot ulang instans DB Anda agar perubahan dapat berlaku. 

**Anda dapat memaksa semua koneksi ke instans DB Anda untuk menggunakan SSL**

1. Tentukan grup parameter yang dilampirkan ke instans DB Anda: 

   1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. Di sudut kanan atas konsol Amazon RDS, pilih AWS Wilayah instans DB Anda. 

   1. Di panel navigasi, pilih **Basis data**, lalu pilih nama instans DB Anda untuk memperlihatkan detailnya. 

   1. Pilih tab **Konfigurasi**. Temukan **Grup parameter** di bagian tersebut. 

1. Jika perlu, buat grup parameter baru. Jika instans DB Anda menggunakan grup parameter default, Anda harus membuat grup parameter baru. Jika instans DB Anda menggunakan grup parameter nondefault, Anda dapat memilih untuk mengedit grup parameter yang ada atau untuk membuat grup parameter baru. Jika Anda mengedit grup parameter yang sudah ada, perubahan akan memengaruhi semua instans DB yang menggunakan grup parameter tersebut. 

   Untuk membuat grup parameter baru, ikuti petunjuk di [Membuat grup parameter DB di Amazon RDS ](USER_WorkingWithParamGroups.Creating.md). 

1. Mengedit grup parameter baru atau yang sudah ada untuk mengatur parameter `rds.force_ssl` ke `true`. Untuk mengedit grup parameter, ikuti petunjuk di [](USER_WorkingWithParamGroups.Modifying.md). 

1. Jika Anda membuat grup parameter baru, ubah instans DB Anda untuk melampirkan grup parameter baru. Ubah pengaturan **Grup Parameter DB** dari instans DB. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md). 

1. Boot ulang instans DB Anda. Untuk informasi selengkapnya, lihat [Mem-boot ulang instans DB DB](USER_RebootInstance.md). 

## Mengenkripsi koneksi spesifik
<a name="SQLServer.Concepts.General.SSL.Client"></a>

Anda dapat memaksa semua koneksi ke instans DB Anda untuk menggunakan SSL, atau Anda dapat mengenkripsi koneksi dari komputer klien tertentu saja. Untuk menggunakan SSL dari klien tertentu, Anda harus mendapatkan sertifikat untuk komputer klien, mengimpor sertifikat di komputer klien, kemudian mengenkripsi koneksi dari komputer klien. 

**catatan**  
Semua instans SQL Server yang dibuat setelah 5 Agustus 2014, menggunakan titik akhir instans DB dalam bidang Common Name (CN) pada sertifikat SSL. Sebelum 5 Agustus 2014, verifikasi sertifikat SSL tidak tersedia untuk instans SQL Server berbasis VPC. Jika Anda memiliki instans DB SQL Server berbasis VPC yang dibuat sebelum 5 Agustus 2014, dan Anda ingin menggunakan verifikasi sertifikat SSL dan memastikan bahwa titik akhir instans disertakan sebagai CN untuk sertifikat SSL untuk instans DB tersebut, maka ubah nama instans tersebut. Saat Anda mengubah nama pada suatu instans DB, sertifikat baru akan diterapkan dan instans akan di-boot ulang untuk mengaktifkan sertifikat baru.

### Mendapatkan sertifikat untuk komputer klien
<a name="SQLServer.Concepts.General.SSL.Certificates"></a>

Untuk mengenkripsi koneksi dari komputer klien ke instansDB Amazon RDS yang menjalankan Microsoft SQL Server, Anda memerlukan sertifikat di komputer klien Anda. 

Untuk mendapatkan sertifikat tersebut, unduh sertifikat ke komputer klien Anda. Anda dapat mengunduh sertifikat root yang berfungsi untuk semua wilayah. Anda juga dapat mengunduh paket sertifikat yang berisi sertifikat root yang lama dan baru. Selain itu, Anda juga dapat mengunduh sertifikat menengah khusus wilayah. Untuk informasi selengkapnya tentang cara mengunduh sertifikat, lihat [](UsingWithRDS.SSL.md).

Setelah Anda mengunduh sertifikat yang sesuai, impor sertifikat ke sistem operasi Microsoft Windows dengan mengikuti prosedur di bagian berikut. 

### Mengimpor sertifikat untuk komputer klien
<a name="SQLServer.Concepts.General.SSL.Importing"></a>

Anda dapat menggunakan prosedur berikut untuk mengimpor sertifikat Anda ke dalam sistem operasi Microsoft Windows di komputer klien Anda. 

**Impor sertifikat ke dalam sistem operasi Windows Anda:**

1. Pada menu **Mulai**, ketik **Run** di kotak pencarian dan tekan **Masuk**. 

1. Pada kotak **Buka** , ketik **MMC** lalu pilih **OK**. 

1. Pada konsol MMC, pada menu **File**, pilih **Tambah/Hapus Snap-in**. 

1. Pada kotak dialog **Tambah atau Hapus Snap-in**, untuk **Snap-in yang tersedia**, pilih **Certificates**, lalu pilih **Tambahkan**. 

1. Pada kotak dialog **Sertifikat snap-in**, pilih **Akun komputer**, lalu pilih **Selanjutnya**. 

1. Pada kotak dialog **Pilih komputer**, pilih **Selesai**. 

1. Pada kotak dialog **Tambah atau Hapus Snap-in**, pilih **OK**. 

1. Pada konsol MMC, perluas **Sertifikat**, buka menu konteks (klik kanan) untuk **Otorisasi Sertifikasi Root Tepercaya**, pilih **Semua Tugas**, lalu pilih **Impor**. 

1. Di halaman pertama Certificate Import Wizard, pilih **Selanjutnya**. 

1. Di halaman kedua Certificate Import Wizard, pilih **Jelajahi**. Pada jendela jelajah, ubah jenis file ke **Semua file (\$1.\$1)** karena .pem bukanlah ekstensi sertifikat standar. Cari file .pem yang Anda unduh sebelumnya. 
**catatan**  
Saat menghubungkan dari klien Windows seperti SQL Server Management Studio (SSMS), sebaiknya gunakan format sertifikat PKCS \$17 (.p7b) alih-alih file global-bundle.pem. Format.p7b memastikan rantai sertifikat lengkap - termasuk Root dan Intermediate Certificate Authority (CAs) - diimpor dengan benar ke Windows Certificate Store. Ini mencegah kegagalan koneksi yang dapat terjadi ketika enkripsi wajib diaktifkan, karena impor .pem mungkin tidak menginstal rantai penuh dengan benar.

1. Pilih **Buka** untuk memilih file sertifikat, lalu pilih **Selanjutnya**. 

1. Di halaman ketiga Certificate Import Wizard, pilih **Selanjutnya**. 

1. Di halaman keempat Certificate Import Wizard, pilih **Selanjutnya**. Kotak dialog muncul yang menunjukkan bahwa impor berhasil. 

1. Pada konsol MMC, perluas **Sertifikat**, perluas **Otorisasi Sertifikasi Root Tepercaya**, lalu pilih **Sertifikat**. Cari sertifikat untuk mengonfirmasi bahwa sertifikat itu ada, seperti yang ditunjukkan di sini.  
![\[Di konsol MMC, di panel navigasi, folder Sertifikat dipilih dibor dari Root Konsol, Sertifikat (Komputer Lokal), dan Otoritas Sertifikasi Root Tepercaya. Di halaman utama, pilih sertifikat CA yang diperlukan.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/rds_sql_ssl_cert.png)

### Mengenkripsi koneksi ke instans DB Amazon RDS yang menjalankan Microsoft SQL Server
<a name="SQLServer.Concepts.General.SSL.Encrypting"></a>

Setelah Anda mengimpor sertifikat ke komputer klien, Anda dapat mengenkripsi koneksi dari komputer klien ke instans DB Amazon RDS yang menjalankan Microsoft SQL Server. 

Untuk SQL Server Management Studio, gunakan prosedur berikut. Untuk informasi selengkapnya tentang SQL Server Management Studio, lihat [Menggunakan SQL Server Management Studio](http://msdn.microsoft.com/en-us/library/ms174173.aspx). 

**Untuk mengenkripsi koneksi dari SQL Server Management Studio**

1. Luncurkan SQL Server Management Studio. 

1. Untuk **Terhubung ke server**, ketikkan informasi server, nama pengguna login, dan kata sandi. 

1. Pilih **Opsi**. 

1. Pilih **Enkripsikan koneksi**. 

1. Pilih **Terhubung**.

1. Konfirmasikan bahwa koneksi Anda dienkripsi dengan menjalankan kueri berikut. Verifikasi bahwa kueri kembali `true` untuk `encrypt_option`. 

   ```
   select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID
   ```

Untuk klien SQL lain, gunakan prosedur berikut. 

**Untuk mengenkripsi koneksi dari klien SQL lainnya**

1. Tambahkan `encrypt=true` ke string koneksi Anda. String ini mungkin tersedia sebagai opsi, atau sebagai properti di halaman koneksi di alat GUI. 
**catatan**  
Untuk mengaktifkan enkripsi SSL untuk klien yang terhubung menggunakan JDBC, Anda mungkin perlu menambahkan sertifikat SQL Amazon RDS ke penyimpanan sertifikat Java CA (cacerts). Anda dapat melakukan ini dengan menggunakan utilitas [alat kunci](http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/keytool.html). 

1. Konfirmasikan bahwa koneksi Anda dienkripsi dengan menjalankan kueri berikut. Verifikasi bahwa kueri kembali `true` untuk `encrypt_option`. 

   ```
   select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID
   ```

# Mengkonfigurasi protokol dan SQL cipher keamanan Server
<a name="SQLServer.Ciphers"></a>

Anda dapat mengaktifkan dan menonaktifkan protokol keamanan dan cipher tertentu menggunakan parameter DB. Parameter keamanan yang dapat Anda konfigurasi (kecuali untuk TLS versi 1.2) ditunjukkan pada tabel berikut. 


****  

| Parameter DB | Nilai yang diizinkan (default dalam huruf tebal) | Deskripsi | 
| --- | --- | --- | 
| rds.tls10 | default, diaktifkan, dinonaktifkan | TLS1.0. | 
| rds.tls11 | default, diaktifkan, dinonaktifkan | TLS1.1. | 
| rds.tls12 | default | TLS1.2. Anda tidak dapat mengubah nilai ini. | 
| rds.fips | 0, 1 |  Ketika Anda mengatur parameter ke 1, RDS memaksa penggunaan modul yang sesuai dengan Standar Pemrosesan Informasi Federal (FIPS) 140-2 standar. Untuk informasi selengkapnya, lihat [Menggunakan SQL Server 2016 dalam mode yang FIPS sesuai dengan 140-2 dalam dokumentasi Microsoft](https://docs.microsoft.com/en-us/troubleshoot/sql/security/sql-2016-fips-140-2-compliant-mode).  | 
| rds.rc4 | default, diaktifkan, dinonaktifkan | RC4stream cipher. | 
| rds.diffie-hellman | default, diaktifkan, dinonaktifkan | Enkripsi pertukaran kunci Diffie-Hellman. | 
| rds. diffie-hellman-min-key-bit-panjang | standar, 1024, 2048, 3072, 4096 | Panjang bit minimum untuk kunci Diffie-Hellman. | 
| rds.curve25519 | default, diaktifkan, dinonaktifkan | Enkripsi cipher kurva-elips Curve25519. Parameter ini tidak mendukung semua versi mesin. | 
| rds.3des168 | default, diaktifkan, dinonaktifkan | Triple Data Encryption Standard (DES) enkripsi cipher dengan panjang kunci 168-bit. | 

**catatan**  
*Untuk versi mesin minor setelah 16.00.4120.1, 15.00.4365.2, 14.00.3465.1, 13.00.6435.1, dan 12.00.6449.1, pengaturan default untuk parameter DB,,,, dan dinonaktifkan. `rds.tls10` `rds.tls11` `rds.rc4` `rds.curve25519` `rds.3des168`* Jika tidak, pengaturan default *diaktifkan*.  
Untuk versi mesin minor setelah 16.00.4120.1, 15.00.4365.2, 14.00.3465.1, 13.00.6435.1, dan 12.00.6449.1, pengaturan default untuk adalah 3072. `rds.diffie-hellman-min-key-bit-length` Jika tidak, pengaturan default adalah 2048.

Gunakan proses berikut untuk mengonfigurasi protokol keamanan dan cipher:

1. Buat grup parameter DB kustom.

1. Ubah parameter di grup parameter.

1. Kaitkan grup parameter DB dengan instans DB Anda.

Untuk informasi selengkapnya tentang grup parameter DB, lihat [Grup parameter untuk RDS](USER_WorkingWithParamGroups.md).

## Membuat grup parameter yang terkait dengan keamanan
<a name="CreateParamGroup.Ciphers"></a>

Buat grup parameter untuk parameter terkait keamanan yang sesuai dengan edisi SQL Server dan versi instans DB Anda.

### Konsol
<a name="CreateParamGroup.Ciphers.Console"></a>

Prosedur berikut membuat grup parameter untuk SQL Server Standard Edition 2016.

**Untuk membuat grup parameter**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup parameter**.

1. Pilih **Buat grup parameter**.

1. Di panel **Buat grup parameter**, lakukan hal berikut:

   1. Untuk **Rangkaian grup parameter**, pilih **sqlserver-se-13.0**.

   1. Untuk **Nama grup**, masukkan pengidentifikasi grup parameter, seperti **sqlserver-ciphers-se-13**.

   1. Untuk **Deskripsi**, masukkan **Parameter group for security protocols and ciphers**.

1. Pilih **Buat**.

### CLI
<a name="CreateParamGroup.Ciphers.CLI"></a>

Prosedur berikut membuat grup parameter untuk SQL Server Standard Edition 2016.

**Untuk membuat grup parameter**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-db-parameter-group \
      --db-parameter-group-name sqlserver-ciphers-se-13 \
      --db-parameter-group-family "sqlserver-se-13.0" \
      --description "Parameter group for security protocols and ciphers"
  ```

  Untuk Windows:

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name sqlserver-ciphers-se-13 ^
      --db-parameter-group-family "sqlserver-se-13.0" ^
      --description "Parameter group for security protocols and ciphers"
  ```

## Mengubah parameter yang terkait dengan keamanan
<a name="ModifyParams.Ciphers"></a>

Ubah parameter terkait keamanan dalam grup parameter yang sesuai dengan edisi SQL Server dan versi instans DB Anda.

### Konsol
<a name="ModifyParams.Ciphers.Console"></a>

Prosedur berikut memodifikasi grup parameter yang Anda buat untuk SQL Server Standard Edition 2016. Contoh ini mematikan TLS versi 1.0.

**Untuk mengubah grup parameter**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup parameter**.

1. Pilih grup parameter, seperti **sqlserver-ciphers-se-13**.

1. Di bagian **Parameter**, filter daftar parameter untuk **rds**.

1. Pilih **Edit parameter**.

1. Pilih **rds.tls10**.

1. Untuk **Nilai**, pilih **dinonaktifkan**.

1. Pilih **Simpan perubahan**.

### CLI
<a name="ModifyParams.Ciphers.CLI"></a>

Prosedur berikut memodifikasi grup parameter yang Anda buat untuk SQL Server Standard Edition 2016. Contoh ini mematikan TLS versi 1.0.

**Untuk mengubah grup parameter**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds modify-db-parameter-group \
      --db-parameter-group-name sqlserver-ciphers-se-13 \
      --parameters "ParameterName='rds.tls10',ParameterValue='disabled',ApplyMethod=pending-reboot"
  ```

  Untuk Windows:

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name sqlserver-ciphers-se-13 ^
      --parameters "ParameterName='rds.tls10',ParameterValue='disabled',ApplyMethod=pending-reboot"
  ```

## Mengaitkan grup parameter terkait keamanan dengan instans DB Anda
<a name="AssocParamGroup.Ciphers"></a>

Untuk mengaitkan grup parameter dengan instans DB Anda, gunakan Konsol Manajemen AWS atau AWS CLI.

### Konsol
<a name="AssocParamGroup.Ciphers.Console"></a>

Anda dapat mengaitkan grup parameter dengan instans DB baru atau yang sudah ada:
+ Untuk instans DB baru, kaitkan saat Anda meluncurkan instans. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+ Untuk instans DB yang sudah ada, kaitkan dengan mengubah instans. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

### CLI
<a name="AssocParamGroup.Ciphers.CLI"></a>

Anda dapat menghubungkan grup parameter dengan DB instance baru atau yang sudah ada.

**Untuk membuat instans DB dengan grup parameter**
+ Tentukan jenis DB engine dan versi besar yang sama dengan yang Anda gunakan saat membuat grup parameter.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier mydbinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 13.00.5426.0.v1 \
      --allocated-storage 100 \
      --master-user-password secret123 \
      --master-username admin \
      --storage-type gp2 \
      --license-model li \
      --db-parameter-group-name sqlserver-ciphers-se-13
  ```

  Untuk Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier mydbinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 13.00.5426.0.v1 ^
      --allocated-storage 100 ^
      --master-user-password secret123 ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --db-parameter-group-name sqlserver-ciphers-se-13
  ```
**catatan**  
Tetapkan kata sandi selain penggugah (prompt) yang ditampilkan di sini sebagai praktik terbaik keamanan.

**Untuk mengubah instans DB serta mengaitkan grup parameter**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mydbinstance \
      --db-parameter-group-name sqlserver-ciphers-se-13 \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mydbinstance ^
      --db-parameter-group-name sqlserver-ciphers-se-13 ^
      --apply-immediately
  ```

# Memperbarui aplikasi untuk terhubung ke instans Microsoft SQL Server DB menggunakan sertifikatSSL/TLSbaru
<a name="ssl-certificate-rotation-sqlserver"></a>

Mulai 13 Januari 2023, Amazon RDS telah menerbitkan sertifikat Certificate Authority (CA) baru untuk menghubungkan ke instans RDS DB Anda menggunakan Secure Socket Layer atau Transport Layer Security (SSL/TLS). Setelah itu, Anda dapat menemukan informasi tentang pembaruan aplikasi untuk menggunakan sertifikat baru.

Topik ini dapat membantu Anda menentukan apakah ada aplikasi klien yang SSL TLS menggunakan/untuk terhubung ke instans DB Anda. Jika demikian, Anda dapat memeriksa lebih lanjut apakah aplikasi tersebut memerlukan verifikasi sertifikat untuk terhubung. 

**catatan**  
Beberapa aplikasi dikonfigurasi untuk terhubung ke instans SQL Server DB hanya jika mereka berhasil memverifikasi sertifikat di server.   
Untuk aplikasi tersebut, Anda harus memperbarui penyimpanan kepercayaan aplikasi klien untuk menyertakan sertifikat CA baru. 

Setelah Anda memperbarui sertifikat CA di penyimpanan kepercayaan aplikasi klien, Anda dapat merotasi sertifikat di instans DB Anda. Sebaiknya Anda menguji prosedur ini di lingkungan pengembangan dan pementasan sebelum menerapkannya di lingkungan produksi Anda.

Untuk informasi selengkapnya tentang rotasi sertifikat, lihat [Memutar sertifikat Anda SSL/TLS](UsingWithRDS.SSL-certificate-rotation.md). Untuk informasi selengkapnya tentang mengunduh sertifikat, lihat [](UsingWithRDS.SSL.md). Untuk informasi tentang menggunakanSSL/TLSdengan instans Microsoft SQL Server DB, lihat[Menggunakan SSL dengan instans DB Microsoft SQL Server](SQLServer.Concepts.General.SSL.Using.md).

**Topics**
+ [Menentukan apakah ada aplikasi yang terhubung ke instans Microsoft SQL Server DB Anda menggunakan SSL](#ssl-certificate-rotation-sqlserver.determining-server)
+ [Menentukan apakah klien memerlukan verifikasi sertifikat agar dapat terhubung](#ssl-certificate-rotation-sqlserver.determining-client)
+ [Memperbarui penyimpanan kepercayaan aplikasi Anda](#ssl-certificate-rotation-sqlserver.updating-trust-store)

## Menentukan apakah ada aplikasi yang terhubung ke instans Microsoft SQL Server DB Anda menggunakan SSL
<a name="ssl-certificate-rotation-sqlserver.determining-server"></a>

Periksa konfigurasi instans DB untuk nilai parameter `rds.force_ssl`. Secara default, parameter `rds.force_ssl` diatur ke 0 (nonaktif). Jika `rds.force_ssl` parameter diatur ke 1 (on), klien diharuskan menggunakanSSL/TLSuntuk koneksi. Lihat informasi lebih lanjut tentang grup parameter di [Grup parameter untuk RDS](USER_WorkingWithParamGroups.md).

Jalankan kueri berikut untuk mendapatkan opsi enkripsi saat ini untuk semua koneksi terbuka ke instans DB. Kolom `ENCRYPT_OPTION` pengembalian `TRUE` jika koneksi dienkripsi.

```
select SESSION_ID,
    ENCRYPT_OPTION,
    NET_TRANSPORT,
    AUTH_SCHEME
    from SYS.DM_EXEC_CONNECTIONS
```

Kueri ini hanya menunjukkan koneksi saat ini. Itu tidak menunjukkan apakah aplikasi yang telah terhubung dan terputus di masa lalu telah digunakanSSL.

## Menentukan apakah klien memerlukan verifikasi sertifikat agar dapat terhubung
<a name="ssl-certificate-rotation-sqlserver.determining-client"></a>

Anda dapat memeriksa apakah jenis klien yang berbeda memerlukan verifikasi sertifikat untuk terhubung.

**catatan**  
Jika Anda menggunakan konektor selain yang tercantum di atas, lihat dokumentasi konektor spesifik untuk informasi tentang cara menerapkan koneksi terenkripsi. Untuk informasi selengkapnya, lihat [Modul koneksi untuk SQL database Microsoft](https://docs.microsoft.com/en-us/sql/connect/sql-connection-libraries?view=sql-server-ver15) di dokumentasi Microsoft SQL Server.

### SQLStudio Manajemen Server
<a name="ssl-certificate-rotation-sqlserver.determining-client.management-studio"></a>

Periksa apakah enkripsi diberlakukan untuk koneksi SQL Server Management Studio:

1. Luncurkan Studio Manajemen SQL Server.

1. Untuk **Terhubung ke server**, masukkan informasi server, nama pengguna login, dan kata sandi.

1. Pilih **Opsi**.

1. Centang jika **Enkripsikan koneksi** dipilih di halaman koneksi.

Untuk informasi selengkapnya tentang Studio Manajemen SQL Server, lihat [Menggunakan Studio Manajemen SQL Server](http://msdn.microsoft.com/en-us/library/ms174173.aspx).

### Sqlcmd
<a name="ssl-certificate-rotation-sqlserver.determining-client.sqlcmd"></a>

Contoh berikut dengan `sqlcmd` klien menunjukkan cara memeriksa koneksi SQL Server skrip untuk menentukan apakah koneksi yang berhasil memerlukan sertifikat yang valid. Untuk informasi selengkapnya, lihat [Menghubungkan dengan sqlcmd](https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/connecting-with-sqlcmd?view=sql-server-ver15) di dokumentasi Microsoft SQL Server.

Saat menggunakan`sqlcmd`, SSL koneksi memerlukan verifikasi terhadap sertifikat server jika Anda menggunakan argumen `-N` perintah untuk mengenkripsi koneksi, seperti pada contoh berikut.

```
$ sqlcmd -N -S dbinstance.rds.amazon.com -d ExampleDB                     
```

**catatan**  
Jika `sqlcmd` dipanggil dengan opsi `-C`, itu menyetujui sertifikat server, meskipun tidak sesuai dengan penyimpanan kepercayaan klien.

### ADO.NET
<a name="ssl-certificate-rotation-sqlserver.determining-client.adonet"></a>

Dalam contoh berikut, aplikasi terhubung menggunakanSSL, dan sertifikat server harus diverifikasi.

```
using SQLC = Microsoft.Data.SqlClient;
 
...
 
    static public void Main()  
    {  
        using (var connection = new SQLC.SqlConnection(
            "Server=tcp:dbinstance.rds.amazon.com;" +
            "Database=ExampleDB;User ID=LOGIN_NAME;" +
            "Password=YOUR_PASSWORD;" + 
            "Encrypt=True;TrustServerCertificate=False;"
            ))
        {  
            connection.Open();  
            ...
        }
```

### Java
<a name="ssl-certificate-rotation-sqlserver.determining-client.java"></a>

Dalam contoh berikut, aplikasi terhubung menggunakanSSL, dan sertifikat server harus diverifikasi.

```
String connectionUrl =   
    "jdbc:sqlserver://dbinstance.rds.amazon.com;" +  
    "databaseName=ExampleDB;integratedSecurity=true;" +  
    "encrypt=true;trustServerCertificate=false";
```

Untuk mengaktifkan SSL enkripsi untuk klien yang terhubung menggunakanJDBC, Anda mungkin perlu menambahkan RDS sertifikat Amazon ke penyimpanan sertifikat Java CA. Untuk petunjuk, lihat [Mengkonfigurasi klien untuk enkripsi](https://docs.microsoft.com/en-us/SQL/connect/jdbc/configuring-the-client-for-ssl-encryption?view=sql-server-2017) dalam dokumentasi Microsoft SQL Server. Anda juga dapat memberikan nama file sertifikat CA tepercaya secara langsung melalui aplikasi `trustStore=path-to-certificate-trust-store-file` dengan string koneksi.

**catatan**  
Jika Anda menggunakan `TrustServerCertificate=true` (atau yang setara) dalam string koneksi, proses koneksi melewati validasi rantai persetujuan. Dalam hal ini, aplikasi akan terkoneksi meskipun sertifikat tidak dapat diverifikasi. Menggunakan `TrustServerCertificate=false` memberlakukan validasi sertifikat dan merupakan praktik terbaik.

## Memperbarui penyimpanan kepercayaan aplikasi Anda
<a name="ssl-certificate-rotation-sqlserver.updating-trust-store"></a>

Anda dapat memperbarui toko kepercayaan untuk aplikasi yang menggunakan Microsoft SQL Server. Untuk petunjuk, silakan lihat [Mengenkripsi koneksi spesifik](SQLServer.Concepts.General.SSL.Using.md#SQLServer.Concepts.General.SSL.Client). Juga, lihat [Mengkonfigurasi klien untuk enkripsi](https://docs.microsoft.com/en-us/SQL/connect/jdbc/configuring-the-client-for-ssl-encryption?view=sql-server-2017) dalam dokumentasi Microsoft SQL Server.

Jika Anda menggunakan sistem operasi selain Microsoft Windows, lihat dokumentasi distribusi perangkat lunak SSL TLS untuk/implementasi untuk informasi tentang menambahkan sertifikat CA root baru. Misalnya, Open SSL dan Gnu TLS adalah opsi populer. Gunakan metode implementasi untuk menambahkan kepercayaan ke sertifikat CA RDS root. Microsoft menyediakan petunjuk untuk mengonfigurasi sertifikat pada beberapa sistem.

Untuk informasi tentang cara mengunduh sertifikat root, lihat [](UsingWithRDS.SSL.md).

Untuk contoh skrip yang mengimpor sertifikat, lihat [Contoh skrip untuk mengimpor sertifikat ke trust store Anda](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-sample-script).

**catatan**  
Saat memperbarui penyimpanan kepercayaan, Anda dapat mempertahankan sertifikat lama selain menambahkan sertifikat baru.

## Dukungan program kepatuhan untuk instans DB Microsoft SQL Server
<a name="SQLServer.Concepts.General.Compliance"></a>

AWS Layanan dalam lingkup telah sepenuhnya dinilai oleh auditor pihak ketiga dan menghasilkan sertifikasi, pengesahan kepatuhan, atau Otoritas untuk Beroperasi (ATO). Untuk informasi selengkapnya, lihat [layanan AWS dalam cakupan berdasarkan program kepatuhan](https://aws.amazon.com/compliance/services-in-scope/).

### Dukungan HIPAA untuk instans DB Microsoft SQL Server
<a name="SQLServer.Concepts.General.HIPAA"></a>

Anda dapat menggunakan basis data Amazon RDS for Microsoft SQL Server untuk membangun aplikasi yang mematuhi HIPAA. Anda dapat menyimpan informasi terkait perawatan kesehatan, termasuk informasi kesehatan yang dilindungi (PHI), berdasarkan Perjanjian Rekan Bisnis (BAA) dengan AWS. Untuk informasi selengkapnya, lihat [Kepatuhan HIPAA.](https://aws.amazon.com/compliance/hipaa-compliance/)

Amazon RDS for SQL Server mendukung HIPAA untuk versi dan edisi berikut:
+ SQL Server 2022 Edisi Enterprise, Standard, dan Web
+ SQL Server 2019 Edisi Enterprise, Standard, dan Web
+ SQL Server 2017 Edisi Enterprise, Standard, dan Web
+ SQL Server 2016 Edisi Enterprise, Standard, dan Web

Untuk mengaktifkan dukungan HIPAA pada instans DB Anda, siapkan tiga komponen berikut.


****  

| Komponen | Detail | 
| --- | --- | 
|  Audit  |  Untuk menyiapkan audit, atur parameter `rds.sqlserver_audit` ke nilai `fedramp_hipaa`. Jika instans DB Anda belum menggunakan grup parameter DB kustom, Anda harus membuat grup parameter kustom dan melampirkannya ke instans DB sebelum dapat mengubah parameter `rds.sqlserver_audit`. Untuk informasi selengkapnya, lihat [Grup parameter untuk RDS](USER_WorkingWithParamGroups.md).  | 
|  Enkripsi transportasi  |  Untuk menyiapkan enkripsi transportasi, paksa semua koneksi ke instans DB Anda untuk menggunakan Secure Sockets Layer (SSL). Untuk informasi selengkapnya, lihat [Memaksa koneksi ke instans DB Anda untuk menggunakan SSL](SQLServer.Concepts.General.SSL.Using.md#SQLServer.Concepts.General.SSL.Forcing).  | 
|  Enkripsi saat istirahat  |  Untuk menyiapkan enkripsi saat diam, Anda memiliki dua opsi: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html)  | 

# Versi Microsoft SQL Server di Amazon RDS
<a name="SQLServer.Concepts.General.VersionSupport"></a>

Anda dapat menentukan versi Microsoft SQL Server yang didukung saat ini ketika membuat instans DB baru. Anda dapat menentukan versi utama Microsoft SQL Server (seperti Microsoft SQL Server 14.00), dan versi minor yang didukung untuk versi utama yang ditentukan. Jika tidak ada versi yang ditentukan, Amazon RDS menetapkan ke versi yang didukung secara default, biasanya versi terbaru. Jika versi utama ditentukan tetapi versi kecil tidak, Amazon RDS menjadikan menetapkan default ke rilis versi utama terbaru yang telah Anda tentukan.

Tabel berikut menunjukkan versi SQL Server yang didukung untuk semua edisi dan semua AWS Wilayah, kecuali jika dicatat. 

**catatan**  
Anda juga dapat menggunakan [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS CLI perintah untuk melihat daftar versi yang didukung, serta default untuk instans DB yang baru dibuat. Anda dapat melihat versi utama database SQL Server Anda dengan menjalankan AWS CLI perintah [describe-db-major-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-major-engine-versions.html) atau dengan menggunakan operasi [Describe DBMajor EngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBMajorEngineVersions.html) RDS API.


| Versi besar | Versi minor | API RDS `EngineVersion` dan CLI `engine-version` | 
| --- | --- | --- | 
| SQL Server 2022 |  16.00.4236.2 () CU23 16.00.4230.2 (GDR) CU22  16.00.4225.2 () CU22 16.00.4215.2 () CU21 16.00.4210.1 (GDR) CU20  16.00.4205.1 () CU20 16.00.4195.2 () CU19 16.00.4185.3 () CU18 16.00.4175.1 () CU17 16.00.4165.4 () CU16 16.00.4150.1 () CU15 16.00.4140.3 (GDR) CU14  16.00.4135.4 () CU14 16.00.4131.2 () CU13 16.00.4125.3 () CU13 16.00.4120.1 (GDR) CU12  16.00.4115.5 () CU12 16.00.4105.2 () CU11 16.00.4095.4 () CU10 16.00.4085.2 () CU9  |  `16.00.4236.2.v1` `16.00.4230.2.v1` `16.00.4225.2.v1` `16.00.4215.2.v1` `16.00.4210.1.v1` `16.00.4205.1.v1` `16.00.4195.2.v1` `16.00.4185.3.v1` `16.00.4175.1.v1` `16.00.4165.4.v1` `16.00.4150.1.v1` `16.00.4140.3.v1` `16.00.4135.4.v1` `16.00.4131.2.v1` `16.00.4125.3.v1` `16.00.4120.1.v1` `16.00.4115.5.v1` `16.00.4105.2.v1` `16.00.4095.4.v1` `16.00.4085.2.v1`  | 
| SQL Server 2019 |  15.00.4455.2 (GDR) CU32  15.00.4445.1 (GDR) CU32  15.00.4440.1 (GDR) CU32  15.00.4435.7 () CU32 15.00.4430.1 () CU32 15.00.4420.2 () CU31 15.00.4415.2 () CU30 15.00.4410.1 (GDR) CU29  15.00.4395.2 () CU28 15.00.4390.2 () CU28 15.00.4385.2 () CU28 15.00.4382.1 () CU27 15.00.4375.4 () CU27 15.00.4365.2 () CU26 15.00.4355.3 () CU25 15.00.4345.5 () CU24 15.00.4335.1 () CU23 15.00.4322.2 () CU22 15.00.4316.3 () CU21 15.00.4312.2 () CU20 15.00.4236.7 () CU16 15.00.4198.2 () CU15 15.00.4153.1 () CU12 15.00.4073.23 () CU8 15.00.4043.16 () CU5  |  `15.00.4455.2.v1` `15.00.4445.1.v1` `15.00.4440.1.v1` `15.00.4435.7.v1` `15.00.4430.1.v1` `15.00.4420.2.v1` `15.00.4415.2.v1` `15.00.4410.1.v1` `15.00.4395.2.v1` `15.00.4390.2.v1` `15.00.4385.2.v1` `15.00.4382.1.v1` `15.00.4375.4.v1` `15.00.4365.2.v1` `15.00.4355.3.v1` `15.00.4345.5.v1` `15.00.4335.1.v1` `15.00.4322.2.v1` `15.00.4316.3.v1` `15.00.4312.2.v1` `15.00.4236.7.v1` `15.00.4198.2.v1` `15.00.4153.1.v1` `15.00.4073.23.v1` `15.00.4043.16.v1`  | 
| SQL Server 2017 |  14.00.3515.1 (GDR) CU31  14.00.3505.1 (GDR) CU31  14.00.3500.1. (CU31 GDR) 14.00.3495.9 (GDR) CU31  14.00.3485.1 (GDR) CU31  14.00.3480.1 () CU31 14.00.3475.1 () CU31 14.00.3471.2 () CU31 14.00.3465.1 () CU31 14.00.3460.9 () CU31 14.00.3451.2 () CU30 14.00.3421.10 () CU27 14.00.3401.7 () CU25 14.00.3381.3 () CU23 14.00.3356.20 () CU22 14.00.3294.2 () CU20 14.00.3281.6 () CU19  |  `14.00.3515.1.v1` `14.00.3505.1.v1` `14.00.3500.1.v1` `14.00.3495.9.v1` `14.00.3485.1.v1` `14.00.3480.1.v1` `14.00.3475.1.v1` `14.00.3471.2.v1` `14.00.3465.1.v1` `14.00.3460.9.v1` `14.00.3451.2.v1` `14.00.3421.10.v1` `14.00.3401.7.v1` `14.00.3381.3.v1` `14.00.3356.20.v1` `14.00.3294.2.v1` `14.00.3281.6.v1`  | 
| SQL Server 2016 |  13.00.6475.1 (GDR) 13.00.6470.1 (GDR) 13.00.6465.1 (GDR) 13.00.6460.7 (GDR) 13.00.6455.2 (GDR) 13.00.6450.1 (GDR) 13.00.6445.1 (GDR) 13.00.6441.1 (GDR) 13.00.6435.1 (GDR) 13.00.6430.49 (GDR) 13.00.6419.1 (\$1 Perbaikan terbaru) SP3  13.00.6300.2 () SP3  |  `14.00.6475.1.v1` `14.00.6470.1.v1` `13.00.6465.1.v1` `13.00.6460.7.v1` `13.00.6455.2.v1` `13.00.6450.1.v1` `13.00.6445.1.v1` `13.00.6441.1.v1` `13.00.6435.1.v1` `13.00.6430.49.v1` `13.00.6419.1.v1` `13.00.6300.2.v1`  | 

## Manajemen versi di Amazon RDS
<a name="SQLServer.Concepts.General.Version-Management"></a>

Amazon RDS mencakup manajemen versi fleksibel yang memungkinkan Anda mengontrol kapan dan bagaimana patching dan tingkatkan instans DB Anda. Ini memungkinkan Anda untuk melakukan tindakan berikut terhadap mesin DB Anda:
+ Menjaga kompatibilitas dengan versi patch mesin basis data.
+ Uji versi patch baru untuk memverifikasi bahwa versi-versi tersebut berfungsi dengan aplikasi Anda sebelum menerapkannya dalam produksi.
+ Rencanakan dan lakukan peningkatan versi untuk memenuhi perjanjian tingkat layanan dan persyaratan penentuan waktu Anda.

### Patching mesin Microsoft SQL Server di Amazon RDS
<a name="SQLServer.Concepts.General.Patching"></a>

Amazon RDS secara berkala menggabungkan patch basis data Microsoft SQL Server resmi ke dalam versi mesin instans DB yang khusus untuk Amazon RDS. Untuk informasi selengkapnya tentang patch Microsoft SQL Server di setiap versi mesin, lihat [Versi dan dukungan fitur di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.FeatureSupport).

Saat ini, Anda melakukan semua peningkatan mesin pada instans DB Anda secara manual. Untuk informasi selengkapnya, lihat [Upgrade mesin Microsoft SQL Server DB](USER_UpgradeDBInstance.SQLServer.md). 

### Jadwal penghentian untuk versi mesin utama Microsoft SQL Server di Amazon RDS
<a name="SQLServer.Concepts.General.Deprecated-Versions"></a>

Tabel berikut menampilkan jadwal penghentian yang direncanakan untuk versi mesin utama Microsoft SQL Server.


| Date | Informasi | 
| --- | --- | 
| Juli 14, 2026 |  Microsoft akan menghentikan pembaruan patch penting untuk SQL Server 2016. Untuk informasi selengkapnya, lihat [Microsoft SQL Server 2016](https://learn.microsoft.com/en-us/lifecycle/products/sql-server-2016) di dokumentasi Microsoft.  | 
| Juli 14, 2026 |  Amazon RDS berencana untuk mengakhiri dukungan Microsoft SQL Server 2016 pada RDS untuk SQL Server. Pada saat itu, setiap instance yang tersisa akan dijadwalkan untuk bermigrasi ke SQL Server 2017 (versi minor terbaru tersedia). Untuk informasi selengkapnya, lihat [Pengumuman: Amazon RDS for SQL Server mengakhiri dukungan untuk Microsoft SQL Server](https://repost.aws/articles/ARGkeWligDSU-MQgBwUQj0nA/announcement-amazon-rds-for-sql-server-ending-support-for-microsoft-sql-server-2016) 2016. Untuk menghindari peningkatan otomatis dari Microsoft SQL Server 2016, Anda dapat meningkatkan pada waktu yang nyaman bagi Anda. Untuk informasi selengkapnya, lihat [Meningkatkan versi mesin instans DB ](USER_UpgradeDBInstance.Upgrading.md).  | 
| Januari 15, 2026 | Amazon RDS mulai menonaktifkan pembuatan RDS baru untuk instans SQL Server DB menggunakan Microsoft SQL Server 2016. Untuk informasi selengkapnya, lihat [Pengumuman: Amazon RDS for SQL Server mengakhiri dukungan untuk Microsoft SQL Server](https://repost.aws/articles/ARGkeWligDSU-MQgBwUQj0nA/announcement-amazon-rds-for-sql-server-ending-support-for-microsoft-sql-server-2016) 2016. | 
| 9 Juli 2024 |  Microsoft akan menghentikan pembaruan patch penting untuk SQL Server 2014. Untuk informasi selengkapnya, lihat [Microsoft SQL Server 2014](https://learn.microsoft.com/en-us/lifecycle/products/sql-server-2014) di dokumentasi Microsoft.  | 
|  1 Juni 2024 |  Amazon RDS berencana untuk mengakhiri dukungan Microsoft SQL Server 2014 pada RDS for SQL Server. Pada saat itu, instans yang masih tersisa akan dijadwalkan untuk dimigrasikan ke SQL Server 2016 (tersedia versi minor terbaru). Untuk informasi selengkapnya, lihat [Pengumuman: Amazon RDS for SQL Server mengakhiri dukungan untuk versi utama SQL Server 2014](https://repost.aws/articles/AR-eyAH1PSSuevuZRUE9FV3A). Untuk menghindari peningkatan otomatis dari Microsoft SQL Server 2014, Anda dapat melakukan peningkatan pada waktu yang diinginkan. Untuk informasi selengkapnya, lihat [Meningkatkan versi mesin instans DB ](USER_UpgradeDBInstance.Upgrading.md).  | 
| 12 Juli 2022 |  Microsoft akan menghentikan pembaruan patch penting untuk SQL Server 2012. Untuk informasi selengkapnya, lihat [Microsoft SQL Server 2012](https://docs.microsoft.com/en-us/lifecycle/products/microsoft-sql-server-2012) di dokumentasi Microsoft.  | 
| 1 Juni 2022 |  Amazon RDS berencana untuk mengakhiri dukungan Microsoft SQL Server 2012 pada RDS for SQL Server. Pada saat itu, instans yang masih tersisa akan dijadwalkan untuk dimigrasikan ke SQL Server 2014 (tersedia versi minor terbaru). Untuk informasi selengkapnya, lihat [Pengumuman: Amazon RDS for SQL Server mengakhiri dukungan untuk versi utama SQL Server 2012](https://repost.aws/questions/QUFNiETqrMQ_WT_AXSxOYNOA). Untuk menghindari peningkatan otomatis dari Microsoft SQL Server 2012, Anda dapat melakukan peningkatan pada waktu yang diinginkan. Untuk informasi selengkapnya, lihat [Meningkatkan versi mesin instans DB ](USER_UpgradeDBInstance.Upgrading.md).  | 
| 1 September 2021 | Amazon RDS mulai menonaktifkan pembuatan instans DB RDS for SQL Server baru menggunakan Microsoft SQL Server 2012. Untuk informasi selengkapnya, lihat [Pengumuman: Amazon RDS for SQL Server mengakhiri dukungan untuk versi utama SQL Server 2012](https://repost.aws/questions/QUFNiETqrMQ_WT_AXSxOYNOA). | 
| 12 Juli 2019 |  Tim Amazon RDS menghentikan dukungan untuk Microsoft SQL Server 2008 R2 pada Juni 2019. Instans yang masih tersisa dari Microsoft SQL Server 2008 R2 dimigrasikan ke SQL Server 2012 (tersedia versi minor terbaru).  Untuk menghindari peningkatan otomatis dari Microsoft SQL Server 2008 R2, Anda dapat melakukan peningkatan pada waktu yang diinginkan. Untuk informasi selengkapnya, lihat [Meningkatkan versi mesin instans DB ](USER_UpgradeDBInstance.Upgrading.md).  | 
| 25 April 2019 | Sebelum akhir April 2019, Anda tidak lagi dapat membuat basis data Amazon RDS for SQL Server menggunakan Microsoft SQL Server 2008R2. | 

# Fitur Microsoft SQL Server di Amazon RDS
<a name="SQLServer.Concepts.General.FeatureSupport"></a>

Versi SQL Server yang didukung di Amazon RDS dilengkapi fitur-fitur berikut. Secara umum, versi juga dilengkapi dengan fitur dari versi sebelumnya, kecuali dinyatakan lain dalam dokumentasi Microsoft.

**Topics**
+ [Fitur Microsoft SQL Server 2022](#SQLServer.Concepts.General.FeatureSupport.2022)
+ [Fitur Microsoft SQL Server 2019](#SQLServer.Concepts.General.FeatureSupport.2019)
+ [Fitur Microsoft SQL Server 2017](#SQLServer.Concepts.General.FeatureSupport.2017)
+ [Fitur Microsoft SQL Server 2016](#SQLServer.Concepts.General.FeatureSupport.2016)
+ [Microsoft SQL Server 2014 akhir dukungan di Amazon RDS](#SQLServer.Concepts.General.FeatureSupport.2014)
+ [Akhir dukungan Microsoft SQL Server 2012 di Amazon RDS](#SQLServer.Concepts.General.FeatureSupport.2012)
+ [Akhir dukungan Microsoft SQL Server 2008 R2 di Amazon RDS](#SQLServer.Concepts.General.FeatureSupport.2008)
+ [Ubah dukungan pengambilan data untuk instans Microsoft SQL Server DB](SQLServer.Concepts.General.CDC.md)
+ [Fitur yang tidak didukung dan fitur dengan dukungan terbatas](SQLServer.Concepts.General.FeatureNonSupport.md)

## Fitur Microsoft SQL Server 2022
<a name="SQLServer.Concepts.General.FeatureSupport.2022"></a>

SQL Server 2022 dilengkapi dengan banyak fitur baru, seperti berikut ini: 
+ Parameter Sensitive Plan Optimization – memungkinkan beberapa paket cache untuk satu pernyataan berparameter, berpotensi mengurangi masalah dengan sniffing parameter.
+ SQL Server Ledger – menyediakan kemampuan untuk membuktikan secara kriptografi bahwa data Anda belum diubah tanpa otorisasi.
+ Inisialisasi file instan untuk peristiwa pertumbuhan file log transaksi – menghasilkan eksekusi peristiwa pertumbuhan log yang lebih cepat hingga 64MB, termasuk untuk basis data dengan TDE yang diaktifkan.
+ Penyempurnaan konkurensi latch halaman sistem – mengurangi pertentangan latch halaman saat mengalokasikan dan membatalkan alokasi halaman dan luasan data, memberikan peningkatan performa yang signifikan pada `tempdb` beban kerja yang berat.

Untuk daftar lengkap fitur SQL Server 2022, lihat [What's new in SQL Server 2022 (16.x)](https://learn.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2022?view=sql-server-ver16) di dokumentasi Microsoft.

Untuk daftar fitur yang tidak didukung, lihat [Fitur yang tidak didukung dan fitur dengan dukungan terbatas](SQLServer.Concepts.General.FeatureNonSupport.md). 

## Fitur Microsoft SQL Server 2019
<a name="SQLServer.Concepts.General.FeatureSupport.2019"></a>

SQL Server 2019 dilengkapi dengan banyak fitur baru, seperti berikut ini: 
+ Pemulihan basis data yang dipercepat (ADR) – Mengurangi waktu pemulihan crash setelah mulai ulang atau rollback transaksi yang berjalan lama.
+ Intelligent Query Processing (IQP):
  + Umpan balik pemberian memori mode baris – Mengoreksi pemberian hak akses eksesif secara otomatis, yang sebaliknya akan mengakibatkan pemborosan memori dan pengurangan konkurensi.
  + Mode batch di rowstore – Mengaktifkan eksekusi mode batch untuk beban kerja analitik tanpa memerlukan indeks columnstore.
  + Kompilasi ditangguhkan variabel tabel – Menyempurnakan kualitas paket dan performa keseluruhan untuk kueri yang mereferensikan variabel tabel.
+ Performa cerdas:
  + Opsi indeks `OPTIMIZE_FOR_SEQUENTIAL_KEY` – Meningkatkan throughput untuk sisipan konkurensi tinggi ke dalam indeks.
  + Peningkatan skalabilitas titik pemeriksaan tidak langsung – Membantu basis data dengan beban kerja DML berat.
  + Pembaruan Concurrent Page Free Space (PFS) – Memungkinkan penanganan sebagai latch bersama, bukan sebagai latch eksklusif.
+ Memantau perbaikan:
  + Jenis tunggu `WAIT_ON_SYNC_STATISTICS_REFRESH` – Menampilkan akumulasi waktu tingkat instans yang dihabiskan untuk operasi refresh statistik sinkron.
  + Konfigurasi cakupan basis data – Mencakup `LIGHTWEIGHT_QUERY_PROFILING` dan `LAST_QUERY_PLAN_STATS`.
  + Fungsi manajemen dinamis (DMFs) - Termasuk `sys.dm_exec_query_plan_stats` dan`sys.dm_db_page_info`.
+ Peringatan pemotongan panjang – Pesan kesalahan pemotongan data secara default mencakup nama tabel dan kolom serta nilai yang dipotong.
+ Pembuatan indeks online yang dapat dilanjutkan kembali – Di SQL Server 2017, hanya pembuatan ulang indeks online yang dapat dilanjutkan kembali yang didukung.

Untuk daftar lengkap fitur SQL Server 2019, lihat [What's new in SQL Server 2019 (15.x)](https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-ver15) di dokumentasi Microsoft.

Untuk daftar fitur yang tidak didukung, lihat [Fitur yang tidak didukung dan fitur dengan dukungan terbatas](SQLServer.Concepts.General.FeatureNonSupport.md). 

## Fitur Microsoft SQL Server 2017
<a name="SQLServer.Concepts.General.FeatureSupport.2017"></a>

SQL Server 2017 dilengkapi dengan banyak fitur baru, seperti berikut ini: 
+ Pemrosesan kueri adaptif
+ Koreksi paket otomatis (fitur penyetelan otomatis)
+ GraphDB
+ Pembuatan ulang indeks yang dapat dilanjutkan

Untuk daftar lengkap fitur SQL Server 2017, lihat [What's new in SQL Server 2017](https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2017) di dokumentasi Microsoft.

Untuk daftar fitur yang tidak didukung, lihat [Fitur yang tidak didukung dan fitur dengan dukungan terbatas](SQLServer.Concepts.General.FeatureNonSupport.md). 

## Fitur Microsoft SQL Server 2016
<a name="SQLServer.Concepts.General.FeatureSupport.2016"></a>

Amazon RDS mendukung fitur SQL Server 2016 berikut:
+ Selalu Dienkripsi
+ Dukungan JSON
+ Analitik Operasional
+ Penyimpanan Kueri
+ Tabel Temporal

Untuk daftar lengkap fitur SQL Server 2016, lihat [What's new in SQL Server 2016](https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2016) di dokumentasi Microsoft.

## Microsoft SQL Server 2014 akhir dukungan di Amazon RDS
<a name="SQLServer.Concepts.General.FeatureSupport.2014"></a>

SQL Server 2014 telah mencapai akhir dukungannya di Amazon RDS.

RDS memutakhirkan semua instans DB yang ada yang masih menggunakan SQL Server 2014 ke versi minor terbaru SQL Server 2016. Untuk informasi selengkapnya, lihat [Manajemen versi di Amazon RDS](SQLServer.Concepts.General.VersionSupport.md#SQLServer.Concepts.General.Version-Management).

## Akhir dukungan Microsoft SQL Server 2012 di Amazon RDS
<a name="SQLServer.Concepts.General.FeatureSupport.2012"></a>

SQL Server 2012 telah mencapai akhir dukungannya di Amazon RDS.

RDS memutakhirkan semua instans DB yang ada yang masih menggunakan SQL Server 2012 ke versi minor terbaru SQL Server 2016. Untuk informasi selengkapnya, lihat [Manajemen versi di Amazon RDS](SQLServer.Concepts.General.VersionSupport.md#SQLServer.Concepts.General.Version-Management).

## Akhir dukungan Microsoft SQL Server 2008 R2 di Amazon RDS
<a name="SQLServer.Concepts.General.FeatureSupport.2008"></a>

SQL Server 2008 R2 telah mencapai akhir dukungannya di Amazon RDS.

RDS meningkatkan semua instans DB yang masih menggunakan SQL Server 2008 R2 ke versi minor terbaru SQL Server 2012. Lihat informasi yang lebih lengkap di [Manajemen versi di Amazon RDS](SQLServer.Concepts.General.VersionSupport.md#SQLServer.Concepts.General.Version-Management).

# Ubah dukungan pengambilan data untuk instans Microsoft SQL Server DB
<a name="SQLServer.Concepts.General.CDC"></a>

Amazon RDS mendukung change data capture (CDC) untuk instans DB yang menjalankan Microsoft SQL Server. CDCmenangkap perubahan yang dibuat pada data dalam tabel Anda, dan menyimpan metadata tentang setiap perubahan yang dapat Anda akses nanti. Untuk informasi selengkapnya, lihat [Change Data Capture (CDC)](https://docs.microsoft.com/en-us/sql/relational-databases/track-changes/track-data-changes-sql-server#Capture) di dokumentasi Microsoft. 

Amazon RDS mendukung CDC untuk edisi dan versi SQL Server berikut:
+ Microsoft SQL Server Enterprise Edition (Semua versi) 
+ Microsoft SQL Server Edisi Standar: 
  + 2022
  + 2019
  + 2017
  + 2016 versi SP1 CU2 13.00.4422.0 dan yang lebih baru

Untuk digunakan CDC dengan instans Amazon RDS DB Anda, aktifkan atau nonaktifkan terlebih dahulu CDC di tingkat database dengan menggunakan prosedur tersimpan RDS yang disediakan. Setelah itu, setiap pengguna yang memiliki `db_owner` peran untuk database tersebut dapat menggunakan prosedur tersimpan Microsoft asli untuk mengontrol CDC database tersebut. Untuk informasi selengkapnya, lihat [Menggunakan pengambilan data perubahan untuk Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.CDC.md). 

Anda dapat menggunakan CDC dan AWS Database Migration Service mengaktifkan replikasi berkelanjutan dari instans SQL Server DB. 

# Fitur yang tidak didukung dan fitur dengan dukungan terbatas
<a name="SQLServer.Concepts.General.FeatureNonSupport"></a>

Fitur-fitur Microsoft SQL Server berikut tidak didukung di Amazon RDS: 
+ Mencadangkan ke Microsoft Azure Blob Storage
+ Ekstensi kumpulan buffer
+ Kebijakan kata sandi kustom
+ Layanan Kualitas Data
+ Pengiriman Log Basis Data
+ Snapshot basis data (Amazon RDS hanya mendukung snapshot instans DB)
+ Prosedur tersimpan yang diperluas, termasuk xp\$1cmdshell
+ Dukungan FILESTREAM
+ Tabel file
+ Machine Learning dan R Services (memerlukan akses OS untuk menginstalnya)
+ Rencana pemeliharaan
+ Pengumpul Data Performa
+ Manajemen Berbasis Kebijakan
+ PolyBase
+ Replikasi
+ Pemicu tingkat server
+ Titik Akhir Service Broker
+ Basis data stretch
+ Properti basis data YANG DAPAT DIPERCAYA (membutuhkan peran sysadmin)
+ Titik akhir T-SQL (semua operasi yang menggunakan CREATE ENDPOINT tidak tersedia)
+ WCF Data Services

Fitur Microsoft SQL Server berikut memiliki dukungan terbatas di Amazon RDS:
+  queries/linked Server terdistribusi. Untuk informasi selengkapnya, lihat [Menerapkan server tertaut dengan Amazon RDS for Microsoft SQL Server](https://aws.amazon.com/blogs/database/implement-linked-servers-with-amazon-rds-for-microsoft-sql-server/).
+ Runtime Bahasa Umum (CLR). Di RDS for SQL Server 2016 dan versi yang lebih rendah, CLR didukung dalam mode `SAFE` dan hanya menggunakan bit assembly. CLR tidak didukung di RDS for SQL Server 2017 dan versi yang lebih tinggi. Untuk informasi selengkapnya, lihat [Common Runtime Language Integration](https://docs.microsoft.com/en-us/sql/relational-databases/clr-integration/common-language-runtime-integration-overview) di dokumentasi Microsoft.
+ Tautkan server dengan Oracle OLEDB di Amazon RDS for SQL Server. Untuk informasi selengkapnya, lihat [Dukungan untuk Server Tertaut dengan Oracle OLEDB di Amazon RDS for SQL Server](Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB.md).

Fitur berikut tidak didukung di Amazon RDS dengan SQL Server 2022:
+ Penangguhan basis data untuk snapshot
+ Sumber Data Eksternal
+ Pencadangan dan pemulihan ke penyimpanan objek yang kompatibel dengan S3
+ Integrasi penyimpanan objek
+ TLS 1.3 dan MS-TDS 8.0
+ Pembongkaran kompresi cadangan dengan QAT
+ SQL Server Analysis Services (SSAS)
+ Pencerminan basis data dengan deployment Multi-AZ. SQL Server Always On adalah satu-satunya metode yang didukung dengan deployment Multi-AZ.

## Deployment Multi-AZ menggunakan Microsoft SQL Server Database Mirroring atau Always On Availability Group
<a name="SQLServer.Concepts.General.Mirroring"></a>

Amazon RDS mendukung penerapan Multi-AZ untuk instans DB yang menjalankan Microsoft SQL Server dengan menggunakan SQL Server Database Mirroring (DBM) atau Always On Availability Groups (). AGs 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 replika up-to-date sekunder sehingga operasi basis data dapat dilanjutkan dengan cepat tanpa intervensi manual. Instans primer dan sekunder menggunakan titik akhir yang sama, yang alamat jaringan fisiknya bertransisi ke replika sekunder pasif sebagai bagian dari proses failover. Anda tidak perlu mengonfigurasi ulang aplikasi saat terjadi failover. 

Amazon RDS mengelola failover dengan secara aktif memantau deployment Multi-AZ Anda dan memulai failover ketika masalah pada instans primer terjadi. Failover tidak akan terjadi kecuali instans siaga dan primer sepenuhnya sinkron. Amazon RDS secara aktif mempertahankan deployment Multi-AZ Anda dengan otomatis memperbaiki instans DB yang tidak berkondisi baik dan membangun kembali replikasi sinkron. Anda tidak perlu mengatur apa pun. Amazon RDS menangani instans primer, pemantau, dan siaga untuk Anda. Saat Anda menyiapkan Multi-AZ SQL Server, RDS mengonfigurasi instans sekunder pasif untuk semua basis data pada instans. 

Untuk informasi lebih lanjut, lihat [Deployment Multi-AZ untuk Amazon RDS for Microsoft SQL Server](USER_SQLServerMultiAZ.md). 

## Menggunakan Enkripsi Data Transparan untuk mengenkripsi data diam
<a name="SQLServer.Concepts.General.Options"></a>

Amazon RDS mendukung Enkripsi Data Transparan (TDE) Microsoft SQL Server, yang secara transparan mengenkripsi data yang disimpan. Amazon RDS menggunakan grup opsi untuk mengaktifkan dan mengonfigurasi fitur ini. Untuk informasi selengkapnya tentang opsi TDE, lihat [Dukungan untuk Enkripsi Data Transparan di SQL Server](Appendix.SQLServer.Options.TDE.md). 

# Fungsi dan prosedur tersimpan Amazon RDS for Microsoft SQL Server
<a name="SQLServer.Concepts.General.StoredProcedures"></a>

Berikut ini, Anda dapat menemukan daftar prosedur tersimpan dan fungsi Amazon RDS yang membantu mengotomatiskan tugas SQL Server. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/SQLServer.Concepts.General.StoredProcedures.html)

# Zona waktu lokal untuk instans Microsoft SQL Server DB
<a name="SQLServer.Concepts.General.TimeZone"></a>

Zona waktu instans Amazon RDS DB yang menjalankan Microsoft SQL Server diatur secara default. Default saat ini adalah Coordinated Universal Time (UTC). Anda dapat mengatur zona waktu instans DB ke zona waktu lokal agar sesuai dengan zona waktu aplikasi Anda.

Anda akan menetapkan zona waktu saat pertama kali membuat instans DB. Anda dapat membuat instans DB Anda dengan menggunakan [Konsol Manajemen AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html), reateDBInstance tindakan Amazon RDS API [C](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html.html), atau AWS CLI [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)perintah.

Jika instans DB Anda adalah bagian dari penyebaran Multi-AZ (menggunakan SQL Server DBM atauAGs), maka ketika Anda gagal, zona waktu Anda tetap menjadi zona waktu lokal yang Anda tetapkan. Untuk informasi selengkapnya, lihat [Deployment Multi-AZ menggunakan Microsoft SQL Server Database Mirroring atau Always On Availability Group](CHAP_SQLServer.md#SQLServer.Concepts.General.Mirroring).

Saat Anda meminta point-in-time pemulihan, Anda menentukan waktu untuk memulihkannya. Waktu ditampilkan dalam zona waktu lokal Anda. Untuk informasi selengkapnya, lihat [Memulihkan instans DB ke waktu yang ditentukan untuk Amazon RDS](USER_PIT.md). 

Berikut ini adalah batasan untuk menetapkan zona waktu lokal pada instans DB:
+ Anda tidak dapat mengubah zona waktu instans SQL Server DB yang ada. 
+ Anda tidak dapat memulihkan snapshot dari instans DB dalam satu zona waktu ke instans DB dalam zona waktu yang berbeda. 
+ Kami sangat menyarankan agar Anda tidak memulihkan file cadangan dari satu zona waktu ke zona waktu yang berbeda. Jika memulihkan file cadangan dari satu zona waktu ke zona waktu yang berbeda, Anda harus mengaudit kueri dan aplikasi Anda untuk mengetahui efek dari perubahan zona waktu. Untuk informasi selengkapnya, lihat [Mengimpor dan mengekspor basis data SQL Server menggunakan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.md). 

## Zona waktu yang didukung
<a name="SQLServer.Concepts.General.TimeZone.Zones"></a>

Anda dapat mengatur zona waktu lokal Anda ke salah satu nilai yang tercantum dalam tabel berikut ini.


| Zona waktu | Offset waktu standar | Deskripsi | Catatan | 
| --- | --- | --- | --- | 
| Waktu Standar Afghanistan | (UTC\$1 04:30) | Kabul | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Alaska | (UTC— 09:00) | Alaska |  | 
| Waktu Standar Aleutian | (UTC— 10:00) | Kepulauan Aleutian |  | 
| Waktu Standar Altai | (UTC\$1 07:00) | Barnaul, Gorno-Altaysk |  | 
| Waktu Standar Arab | (UTC\$1 03:00) | Kuwait, Riyadh | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Arab | (UTC\$1 04:00) | Abu Dhabi, Muscat |  | 
| Waktu Standar Arab | (UTC\$1 03:00) | Bagdad | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Argentina | (UTC— 03:00) | Kota Buenos Aires | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Astrakhan | (UTC\$1 04:00) | Astrakhan, Ulyanovsk |  | 
| Waktu Standar Atlantik | (UTC— 04:00) | Waktu Atlantik (Kanada) |  | 
| AUSWaktu Standar Pusat | (UTC\$1 09:30) | Darwin | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Barat Tengah Aus | (UTC\$1 08:45) | Eucla |  | 
| AUSWaktu Standar Timur | (UTC\$1 10:00) | Canberra, Melbourne, Sydney |  | 
| Waktu Standar Azerbaijan | (UTC\$1 04:00) | Baku |  | 
| Waktu Standar Azores | (UTC— 01:00) | Azores |  | 
| Waktu Standar Bahia | (UTC— 03:00) | Salvador |  | 
| Waktu Standar Bangladesh | (UTC\$1 06:00) | Dhaka | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Belarusia | (UTC\$1 03:00) | Minsk | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Bougainville | (UTC\$1 11:00) | Pulau Bougainville |  | 
| Waktu Standar Kanada Pusat | (UTC— 06:00) | Saskatchewan | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Cape Verde | (UTC— 01:00) | Cabo Verde Is. | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Kaukasus | (UTC\$1 04:00) | Yerevan |  | 
| Cen. Waktu Standar Australia | (UTC\$1 09:30) | Adelaide |  | 
| Waktu Standar Amerika Tengah | (UTC— 06:00) | Amerika Tengah | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Asia Tengah | (UTC\$1 06:00) | Astana | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Brasil Tengah | (UTC— 04:00) | Cuiaba |  | 
| Waktu Standar Eropa Tengah | (UTC\$1 01:00) | Belgrade, Bratislava, Budapest, Ljubljana, Praha |  | 
| Waktu Standar Eropa Tengah | (UTC\$1 01:00) | Sarajevo, Skopje, Warsawa, Zagreb |  | 
| Waktu Standar Pasifik Tengah | (UTC\$1 11:00) | Kepulauan Solomon, Kaledonia Baru | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Tengah | (UTC— 06:00) | Waktu Tengah (AS dan Kanada) |  | 
| Waktu Standar Tengah (Meksiko) | (UTC— 06:00) | Guadalajara, Mexico City, Monterrey |  | 
| Waktu Standar Kepulauan Chatham | (UTC\$1 12:45) | Kepulauan Chatham |  | 
| Waktu Standar Tiongkok | (UTC\$1 08:00) | Beijing, Chongqing, Hong Kong, Urumqi | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Kuba | (UTC— 05:00) | Havana |  | 
| Waktu Standar Garis Batas Tanggal | (UTC— 12:00) | Garis Batas Tanggal Internasional Bagian Barat | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Afrika Timur | (UTC\$1 03:00) | Nairobi | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Australia Timur | (UTC\$1 10:00) | Brisbane | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Eropa Timur | (UTC\$1 02:00) | Chisinau |  | 
| Waktu Standar Amerika Selatan Timur | (UTC— 03:00) | Brasilia |  | 
| Waktu Standar Pulau Paskah | (UTC— 06:00) | Pulau Paskah |  | 
| Waktu Standar Timur | (UTC— 05:00) | Waktu Timur (AS dan Kanada) |  | 
| Waktu Standar Timur (Meksiko) | (UTC— 05:00) | Chetumal |  | 
| Waktu Standar Mesir | (UTC\$1 02:00) | Kairo |  | 
| Waktu Standar Ekaterinburg | (UTC\$1 05:00) | Ekaterinburg |  | 
| Waktu Standar Fiji | (UTC\$1 12:00) | Fiji |  | 
| FLEWaktu Standar | (UTC\$1 02:00) | Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius |  | 
| Waktu Standar Georgia | (UTC\$1 04:00) | Tbilisi | Zona waktu ini tidak menggunakan waktu musim panas. | 
| GMTWaktu Standar | (UTC) | Dublin, Edinburgh, Lisbon, London |  Zona waktu ini tidak sama dengan Greenwich Mean Time. Zona waktu ini menggunakan waktu musim panas. | 
| Waktu Standar Greenland | (UTC— 03:00) | Greenland |  | 
| Waktu Standar Greenwich | (UTC) | Monrovia, Reykjavik | Zona waktu ini tidak menggunakan waktu musim panas. | 
| GTBWaktu Standar | (UTC\$1 02:00) | Athena, Bukares |  | 
| Waktu Standar Haiti | (UTC— 05:00) | Haiti |  | 
| Waktu Standar Hawaii | (UTC— 10:00) | Hawaii |  | 
| Waktu Standar India | (UTC\$1 05:30) | Chennai, Kolkata, Mumbai, New Delhi | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Iran | (UTC\$1 03:30) | Teheran |  | 
| Waktu Standar Israel | (UTC\$1 02:00) | Yerusalem |  | 
| Waktu Standar Yordania | (UTC\$1 02:00) | Amman |  | 
| Waktu Standar Kaliningrad | (UTC\$1 02:00) | Kaliningrad |  | 
| Waktu Standar Kamchatka | (UTC\$1 12:00) | Petropavlovsk-Kamchatsky – Lama |  | 
| Waktu Standar Korea | (UTC\$1 09:00) | Seoul | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Libya | (UTC\$1 02:00) | Tripoli |  | 
| Waktu Standar Kepulauan Line | (UTC\$1 14:00) | Pulau Kiritimati |  | 
| Waktu Standar Lord Howe | (UTC\$1 10:30) | Pulau Lord Howe |  | 
| Waktu Standar Magadan | (UTC\$1 11:00) | Magadan | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Magallanes | (UTC— 03:00) | Punta Arenas |  | 
| Waktu Standar Marquesas | (UTC— 09:30) | Kepulauan Marquesas |  | 
| Waktu Standar Mauritius | (UTC\$1 04:00) | Port Louis | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Timur Tengah | (UTC\$1 02:00) | Beirut |  | 
| Waktu Standar Montevideo | (UTC— 03:00) | Montevideo |  | 
| Waktu Standar Maroko | (UTC\$1 01:00) | Casablanca |  | 
| Waktu Standar Pegunungan | (UTC— 07:00) | Waktu Pegunungan (AS dan Kanada) |  | 
| Waktu Standar Pegunungan (Meksiko) | (UTC— 07:00) | Chihuahua, La Paz, Mazatlan |  | 
| Waktu Standar Myanmar | (UTC\$1 06:30) | Yangon (Rangoon) | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Asia Tengah Utara | (UTC\$1 07:00) | Novosibirsk |  | 
| Waktu Standar Namibia | (UTC\$1 02:00) | Windhoek |  | 
| Waktu Standar Nepal | (UTC\$1 05:45) | Kathmandu | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Selandia Baru | (UTC\$1 12:00) | Auckland, Wellington |  | 
| Waktu Standar Newfoundland | (UTC— 03:30) | Newfoundland |  | 
| Waktu Standar Norfolk | (UTC\$1 11:00) | Pulau Norfolk |  | 
| Waktu Standar Timur Asia Utara | (UTC\$1 08:00) | Irkutsk |  | 
| Waktu Standar Asia Utara | (UTC\$1 07:00) | Krasnoyarsk |  | 
| Waktu Standar Korea Utara | (UTC\$1 09:00) | Pyongyang |  | 
| Waktu Standar Omsk | (UTC\$1 06:00) | Omsk |  | 
| Waktu Standar SA Pasifik | (UTC— 03:00) | Santiago |  | 
| Waktu Standar Pasifik | (UTC— 08:00) | Waktu Pasifik (AS dan Kanada) |  | 
| Waktu Standar Pasifik (Meksiko) | (UTC— 08:00) | Baja California |  | 
| Waktu Standar Pakistan | (UTC\$1 05:00) | Islamabad, Karachi | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Paraguay | (UTC— 04:00) | Asuncion |  | 
| Waktu Standar Romance | (UTC\$1 01:00) | Brussels, Copenhagen, Madrid, Paris |  | 
| Zona Waktu Rusia 10 | (UTC\$1 11:00) | Chokurdakh |  | 
| Zona Waktu Rusia 11 | (UTC\$1 12:00) | Anadyr, Petropavlovsk-Kamchatsky |  | 
| Zona Waktu Rusia 3 | (UTC\$1 04:00) | Izhevsk, Samara |  | 
| Waktu Standar Rusia | (UTC\$1 03:00) | Moskow, St. Petersburg, Volgograd | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Timur SA | (UTC— 03:00) | Cayenne, Fortaleza | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Pasifik SA | (UTC— 05:00) | Bogota, Lima, Quito, Rio Branco |  Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Barat SA | (UTC— 04:00) | Georgetown, La Paz, Manaus, San Juan | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Saint Pierre | (UTC— 03:00) | Saint Pierre dan Miquelon |  | 
| Waktu Standar Sakhalin | (UTC\$1 11:00) | Sakhalin |  | 
| Waktu Standar Samoa | (UTC\$1 13:00) | Samoa |  | 
| Waktu Standar Sao Tome | (UTC\$1 01:00) | Sao Tome |  | 
| Waktu Standar Saratov | (UTC\$1 04:00) | Saratov |  | 
| Waktu Standar Asia Tenggara | (UTC\$1 07:00) | Bangkok, Hanoi, Jakarta | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Singapura | (UTC\$1 08:00) | Kuala Lumpur, Singapura | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Afrika Selatan | (UTC\$1 02:00) | Harare, Pretoria | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Sri Lanka | (UTC\$1 05:30) | Sri Jayawardenepura | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Sudan | (UTC\$1 02:00) | Khartoum |  | 
| Waktu Standar Syria | (UTC\$1 02:00) | Damascus |  | 
| Waktu Standar Taipei | (UTC\$1 08:00) | Taipei | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Tasmania | (UTC\$1 10:00) | Hobart |  | 
| Waktu Standar Tocantins | (UTC— 03:00) | Araguaina |  | 
| Waktu Standar Tokyo | (UTC\$1 09:00) | Osaka, Sapporo, Tokyo | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Tomsk | (UTC\$1 07:00) | Tomsk |  | 
| Waktu Standar Tonga | (UTC\$1 13:00) | Nuku'alofa | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Transbaikal | (UTC\$1 09:00) | Chita |  | 
| Waktu Standar Turki | (UTC\$1 03:00) | Istanbul |  | 
| Waktu Standar Turks dan Caicos | (UTC— 05:00) | Turks dan Caicos |  | 
| Waktu Standar Ulaanbaatar | (UTC\$1 08:00) | Ulaanbaatar | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Timur AS | (UTC— 05:00) | Indiana (Timur) |  | 
| Waktu Standar Pegunungan AS | (UTC— 07:00) | Arizona | Zona waktu ini tidak menggunakan waktu musim panas. | 
| UTC | UTC | Waktu Universal Terkoordinasi | Zona waktu ini tidak menggunakan waktu musim panas. | 
| UTC—02 | (UTC— 02:00) | Waktu Universal Terkoordinasi–02 | Zona waktu ini tidak menggunakan waktu musim panas. | 
| UTC—08 | (UTC— 08:00) | Waktu Universal Terkoordinasi–08 |  | 
| UTC—09 | (UTC— 09:00) | Waktu Universal Terkoordinasi–09 |  | 
| UTC—11 | (UTC— 11:00) | Waktu Universal Terkoordinasi–11 | Zona waktu ini tidak menggunakan waktu musim panas. | 
| UTC\$112 | (UTC\$1 12:00) | Waktu Universal Terkoordinasi\$112 | Zona waktu ini tidak menggunakan waktu musim panas. | 
| UTC\$113 | (UTC\$1 13:00) | Waktu Universal Terkoordinasi\$113 |  | 
| Waktu Standar Venezuela | (UTC— 04:00) | Caracas | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Vladivostok | (UTC\$1 10:00) | Vladivostok |  | 
| Waktu Standar Volgograd | (UTC\$1 04:00) | Volgograd |  | 
| Waktu Standar Australia Barat | (UTC\$1 08:00) | Perth | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Afrika Tengah Barat | (UTC\$1 01:00) | Afrika Tengah Barat | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Eropa Barat | (UTC\$1 01:00) | Amsterdam, Berlin, Bern, Roma, Stockholm, Wina |  | 
| Waktu Standar Mongolia Barat | (UTC\$1 07:00) | Hovd |  | 
| Waktu Standar Asia Barat | (UTC\$1 05:00) | Ashgabat, Tashkent | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Tepi Barat | (UTC\$1 02:00) | Gaza, Hebron |  | 
| Waktu Standar Pasifik Barat | (UTC\$1 10:00) | Guam, Port Moresby | Zona waktu ini tidak menggunakan waktu musim panas. | 
| Waktu Standar Yakutsk | (UTC\$1 09:00) | Yakutsk |  | 

# Melisensikan Microsoft SQL Server di Amazon RDS
<a name="SQLServer.Concepts.General.Licensing"></a>

Saat Anda menyiapkan instans DB Amazon RDS untuk Microsoft SQL Server, lisensi perangkat lunak akan disertakan. 

Ini berarti Anda tidak perlu membeli lisensi SQL Server secara terpisah. AWS memegang lisensi untuk perangkat lunak database SQL Server. Harga Amazon RDS mencakup lisensi perangkat lunak, sumber daya perangkat keras yang mendasari, dan kemampuan manajemen Amazon RDS. 

Amazon RDS mendukung edisi Microsoft SQL Server berikut: 
+ Perusahaan
+ Standar
+ Web
+ Ekspres

**catatan**  
SQL Server Web Edition dirancang untuk Hoster Web dan Web VAPs untuk meng-host halaman web publik dan internet yang dapat diakses, situs web, aplikasi web, dan layanan web. Tingkat dukungan ini diperlukan untuk mematuhi hak penggunaan Microsoft. Untuk informasi selengkapnya, lihat [ketentuan layanan AWS](https://aws.amazon.com/serviceterms). 

Amazon RDS mendukung penerapan Multi-AZ untuk instans DB yang menjalankan Microsoft SQL Server dengan menggunakan SQL Server Database Mirroring (DBM), Always On Availability Groups (AGs), dan replikasi tingkat blok untuk SQL Server Web Edition. Tidak ada persyaratan lisensi tambahan untuk deployment multi-AZ. Untuk informasi selengkapnya, lihat [Deployment Multi-AZ untuk Amazon RDS for Microsoft SQL Server](USER_SQLServerMultiAZ.md). 

## Memulihkan instans DB yang telah dihentikan lisensinya
<a name="SQLServer.Concepts.General.Licensing.Restoring"></a>

Amazon RDS mengambil gambar instans DB yang dihentikan lisensinya. Jika instans Anda dihentikan karena masalah lisensi, Anda dapat memulihkannya dari snapshot ke instans DB baru. Instans DB baru memiliki lisensi yang disertakan.

Untuk informasi selengkapnya, lihat [Memulihkan instans DB yang dihentikan lisensi untuk Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.RestoreLTI.md). 

## Pengembangan dan pengujian
<a name="SQLServer.Concepts.General.Licensing.Development"></a>

Untuk skenario pengembangan dan pengujian, Anda dapat menggunakan Edisi Ekspres untuk banyak pengembangan, pengujian, dan kebutuhan non-produksi lainnya. Anda juga dapat menggunakan Edisi Pengembang, yang mencakup semua fitur SQL Server Enterprise Edition tetapi dilisensikan hanya untuk penggunaan non-produksi. Anda dapat mengunduh dan menginstal SQL Server Developer Edition di RDS untuk SQL Server. Untuk informasi selengkapnya, lihat [Bekerja dengan SQL Server Developer Edition pada RDS untuk SQL Server](sqlserver-dev-edition.md) menggunakan Versi Mesin Kustom (CEV) dengan Bring Your Own Media (BYOM). Anda juga dapat mengunduh dan menginstal SQL Server Developer Edition pada RDS Custom for SQL Server menggunakan pendekatan yang sama. Untuk informasi selengkapnya, lihat [Mempersiapkan CEV menggunakan Bawa Media Anda Sendiri (BYOM)](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.byom). Untuk informasi selengkapnya tentang perbedaan antara edisi SQL Server, lihat [Editions and supported features of SQL Server 2019](https://learn.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2019?view=sql-server-ver15) di dokumentasi Microsoft.

# Menyambung ke instans Microsoft SQL Server DB
<a name="USER_ConnectToMicrosoftSQLServerInstance"></a>

Setelah Amazon RDS menyediakan instans DB, Anda dapat menggunakan aplikasi klien SQL standar guna terhubung ke instans DB. Dalam topik ini, Anda terhubung ke instans DB Anda menggunakan Microsoft SQL Server Management Studio (SSMS) atau SQL Workbench/J.

Sebagai contoh yang akan memandu Anda melalui proses membuat dan menghubungkan ke instans DB sampel, lihat [Membuat dan menghubungkan ke instans DB Microsoft SQL Server](CHAP_GettingStarted.CreatingConnecting.SQLServer.md). 

## Sebelum Anda menyambungkan
<a name="sqlserver-before-connect"></a>

Sebelum dapat terhubung ke instans DB, instans tersebut harus tersedia dan dapat diakses.

1. Pastikan statusnya `available`. Anda dapat memeriksa ini di halaman detail untuk contoh Anda di Konsol Manajemen AWS atau dengan menggunakan [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI perintah.  
![\[Periksa bahwa instans DB tersedia\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/sqlserver-available.png)

1. Pastikan bahwa instans tersebut dapat diakses sumber Anda. Tergantung pada skenario Anda, instans tersebut mungkin tidak perlu diakses publik. Untuk informasi selengkapnya, lihat [Amazon VPC dan RDSAmazon ](USER_VPC.md).

1. Pastikan bahwa aturan masuk grup keamanan VPC Anda memungkinkan akses ke instans DB Anda. Untuk informasi selengkapnya, lihat [Tidak dapat terhubung ke instans DB Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

## Menemukan nomor port dan titik akhir instans DB
<a name="sqlserver-endpoint"></a>

Anda memerlukan titik akhir dan nomor port untuk terhubung ke instans DB.

**Untuk menemukan titik akhir dan port**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di sudut kanan atas konsol Amazon RDS, pilih AWS Wilayah instans DB Anda.

1. Temukan nomor port dan (titik akhir) nama Sistem Nama Domain (DNS) untuk instans DB Anda:

   1. Buka konsol RDS dan pilih **Basis data** untuk menampilkan daftar instans DB Anda.

   1. Pilih nama instans DB SQL Server untuk menampilkan detailnya.

   1. Di tab **Konektivitas & keamanan**, salin titik akhir.  
![\[Cari port dan titik akhir instans DB\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/SQL-Connect-Endpoint.png)

   1. Catat nomor port tersebut.

# Menghubungkan ke instans DB Anda dengan Microsoft SQL Server Management Studio
<a name="USER_ConnectToMicrosoftSQLServerInstance.SSMS"></a>

Dalam prosedur ini, Anda terhubung ke sampel instans DB menggunakan Microsoft SQL Server Management Studio (SSMS). Untuk mengunduh versi mandiri dari utilitas ini, lihat [Download SQL Server Management Studio (SSMS)](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms) dalam dokumentasi Microsoft.

**Untuk terhubung ke instans DB menggunakan SSMS**

1. Mulai SQL Server Management Studio.

   Lalu, kotak dialog **Hubungkan ke Server** akan muncul.  
![\[Dialog Hubungkan ke Server\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/RDSMSFTSQLConnect01.png)

1. Berikan informasi untuk instans DB Anda:

   1. Untuk **Jenis server**, pilih **Mesin Basis Data**. 

   1. Untuk **Nama server**, masukkan nama DNS (titik akhir) dan nomor port instans DB Anda, yang dipisahkan dengan koma. 
**penting**  
Ubah titik dua antara titik akhir dan nomor port menjadi koma. 

      Nama server Anda akan terlihat seperti contoh berikut.

      ```
      database-2.cg034itsfake.us-east-1.rds.amazonaws.com,1433
      ```

   1. Untuk **Autentikasi**, pilih **Autentikasi SQL Server**. 

   1. Untuk **Masuk**, masukkan nama pengguna utama untuk instans DB Anda. 

   1. Untuk **Kata sandi**, masukkan kata sandi untuk instans DB Anda. 

1. Pilih **Hubungkan**. 

   Setelah beberapa saat, SSMS akan terhubung ke instans DB Anda.

   Jika tidak dapat terhubung ke instans DB Anda, lihat [Pertimbangan grup keamanan](USER_ConnectToMicrosoftSQLServerInstance.Security.md) dan [Memecahkan masalah koneksi ke instans SQL Server DB Anda](USER_ConnectToMicrosoftSQLServerInstance.Troubleshooting.md). 

1. Instans DB SQL Server Anda hadir dengan data sistem default standar SQL Server (`master`, `model`, `msdb`, dan `tempdb`). Untuk menjelajahi basis data sistem, lakukan tindakan berikut:

   1. Di SSMS, pada menu **Lihat**, pilih **Object Explorer**.

   1. Perluas instans DB Anda, perluas **Basis Data**, lalu perluas **Basis Data Sistem**.  
![\[Object Explorer menampilkan basis data sistem\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/SQL-SSMS-SystemDBs.png)

1. Instans DB SQL Server Anda juga dilengkapi dengan basis data bernama `rdsadmin`. Amazon RDS menggunakan basis data ini untuk menyimpan objek yang digunakan untuk mengelola basis data Anda. Basis data `rdsadmin` juga mencakup prosedur tersimpan yang dapat Anda jalankan untuk melakukan tugas tingkat lanjut. Untuk informasi selengkapnya, lihat [Tugas DBA umum untuk Amazon RDS untuk Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.md).

1. Sekarang Anda dapat mulai membuat basis data sendiri dan menjalankan kueri pada instans DB dan basis data Anda seperti biasa. Untuk menjalankan kueri pengujian pada instans DB Anda, lakukan tindakan berikut:

   1. Di SSMS, pada menu **File**, arahkan ke **Baru**, lalu pilih **Kueri dengan Koneksi Saat Ini**.

   1. Masukkan kueri SQL berikut.

      ```
      select @@VERSION
      ```

   1. Jalankan kueri. SSMS mengembalikan versi SQL Server dari instans DB Amazon RDS Anda.  
![\[Jendela SQL Query\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/SQL-Connect-Query.png)

# Menghubungkan ke instans DB Anda dengan SQL Workbench/J
<a name="USER_ConnectToMicrosoftSQLServerInstance.JDBC"></a>

Contoh ini menunjukkan cara menghubungkan ke instans DB yang menjalankan mesin database Microsoft SQL Server dengan menggunakan SQLWorkbench/J database tool. To download SQL Workbench/J, lihat [SQL](http://www.sql-workbench.net/) Workbench/J. 

SQL Workbench/J menggunakan JDBC untuk terhubung ke instans DB Anda. Anda juga memerlukan driver JDBC untuk SQL Server. Untuk mengunduh driver ini, lihat [Mengunduh Driver Microsoft JDBC untuk SQL Server](https://learn.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver16). 

**Untuk terhubung ke instans DB menggunakan SQL Workbench/J**

1. Buka SQL Workbench/J. Kotak dialog **Pilih Profil Koneksi** akan muncul, seperti yang ditunjukkan berikut ini.  
![\[Pilih dialog Profil Koneksi\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/workbench_profile.png)

1. Di kotak pertama pada bagian atas kotak dialog, masukkan nama untuk profil. 

1. Untuk **Driver**, pilih **SQL JDBC 4.0**. 

1. Untuk **URL**, masukkan **jdbc:sqlserver://**, lalu masukkan titik akhir instans DB Anda. Misalnya, nilai URL dapat berupa seperti berikut ini.

   ```
   jdbc:sqlserver://sqlsvr-pdz.abcd12340.us-west-2.rds.amazonaws.com:1433
   ```

1. Untuk **Nama pengguna**, masukkan nama pengguna utama untuk instans DB. 

1. Untuk **Kata sandi**, masukkan kata sandi untuk pengguna utama. 

1. Pilih ikon simpan di toolbar dialog, seperti yang ditunjukkan berikut.  
![\[Simpan profil\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/save_example.png)

1. Pilih **OKE**. Setelah beberapa saat, SQL Workbench/J terhubung ke instans DB Anda. Jika tidak dapat terhubung ke instans DB Anda, lihat [Pertimbangan grup keamanan](USER_ConnectToMicrosoftSQLServerInstance.Security.md) dan [Memecahkan masalah koneksi ke instans SQL Server DB Anda](USER_ConnectToMicrosoftSQLServerInstance.Troubleshooting.md). 

1. Dalam panel kueri, masukkan kueri SQL berikut.

   ```
   select @@VERSION
   ```

1. Pilih ikon `Execute` di toolbar, seperti yang ditunjukkan berikut.  
![\[Jalankan kueri\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/execute_example.png)

   Kueri menampilkan informasi versi untuk instans DB Anda, serupa dengan yang berikut.

   ```
   Microsoft SQL Server 2017 (RTM-CU22) (KB4577467) - 14.0.3356.20 (X64)
   ```

# Pertimbangan grup keamanan
<a name="USER_ConnectToMicrosoftSQLServerInstance.Security"></a>

Untuk terhubung ke instans DB Anda, instans DB Anda harus dikaitkan dengan grup keamanan. Grup keamanan ini berisi alamat IP dan konfigurasi jaringan yang Anda gunakan untuk mengakses instans DB. Anda mungkin telah mengaitkan instans DB dengan grup keamanan yang sesuai saat Anda membuat instans DB Anda. Jika Anda menetapkan grup keamanan yang tidak dikonfigurasi saat membuat instans DB Anda, firewall instans DB Anda akan mencegah koneksi.

Dalam beberapa kasus, Anda mungkin perlu membuat grup keamanan baru untuk memungkinkan akses. Untuk petunjuk tentang cara membuat grup keamanan baru, lihat [Mengontrol akses dengan grup keamanan](Overview.RDSSecurityGroups.md). Untuk topik yang memandu Anda melalui proses pengaturan aturan untuk grup VPC keamanan Anda, lihat[Tutorial: Buat VPC untuk digunakan dengan ) IPv4](CHAP_Tutorials.WebServerDB.CreateVPC.md).

Setelah Anda membuat grup keamanan baru, ubah instans DB Anda untuk dikaitkan dengan grup keamanan. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md). 

Anda dapat meningkatkan keamanan dengan menggunakan SSL untuk mengenkripsi koneksi ke instans DB Anda. Untuk informasi selengkapnya, lihat [Menggunakan SSL dengan instans DB Microsoft SQL Server](SQLServer.Concepts.General.SSL.Using.md). 

# Memecahkan masalah koneksi ke instans SQL Server DB Anda
<a name="USER_ConnectToMicrosoftSQLServerInstance.Troubleshooting"></a>

Tabel berikut menunjukkan pesan galat yang mungkin Anda temui ketika Anda mencoba untuk menyambung ke instans SQL Server DB Anda.


****  
<a name="rds-sql-server-connection-troubleshooting-guidance"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/USER_ConnectToMicrosoftSQLServerInstance.Troubleshooting.html)

**catatan**  
Untuk mengetahui informasi selengkapnya tentang masalah koneksi, lihat [Tidak dapat terhubung ke instans DB Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

# Bekerja dengan SQL Server Developer Edition pada RDS untuk SQL Server
<a name="sqlserver-dev-edition"></a>

RDS untuk SQL Server mendukung SQL Server Developer Edition. Edisi Pengembang mencakup semua fitur SQL Server Enterprise Edition tetapi dilisensikan hanya untuk penggunaan non-produksi. Anda dapat membuat RDS untuk instance SQL Server Developer Edition menggunakan media instalasi Anda sendiri melalui fitur custom engine version (CEV).

## Manfaat
<a name="sqlserver-dev-edition.benefits"></a>

Anda dapat menggunakan RDS untuk SQL Server Developer Edition untuk:
+ Menurunkan biaya dalam lingkungan pengembangan dan pengujian sambil mempertahankan paritas fitur dengan basis data produksi.
+ Akses kemampuan Enterprise Edition di lingkungan non-produksi tanpa biaya lisensi Enterprise.
+ Gunakan fitur manajemen otomatis Amazon RDS, termasuk pencadangan, penambalan, dan pemantauan.

**catatan**  
SQL Server Developer Edition dilisensikan untuk tujuan pengembangan dan pengujian saja dan tidak dapat digunakan dalam lingkungan produksi.

## Ketersediaan wilayah
<a name="sqlserver-dev-edition.regions"></a>

RDS untuk SQL Server Developer Edition tersedia di Wilayah berikut: AWS 
+ Timur AS (N. Virginia)
+ AS Timur (Ohio)
+ AS Barat (Oregon)
+ AS Barat (California Utara)
+ Asia Pasifik (Mumbai)
+ Asia Pasifik (Seoul)
+ Asia Pasifik (Singapura)
+ Asia Pasifik (Osaka)
+ Asia Pasifik (Sydney)
+ Asia Pasifik (Tokyo)
+ Eropa (Irlandia)
+ Eropa (Frankfurt)
+ Eropa (London)
+ Eropa (Stockholm)
+ Eropa (Paris)
+ Canada (Central)
+ Amerika Selatan (Sao Paulo)
+ Africa (Cape Town)

## Lisensi dan penggunaan
<a name="sqlserver-dev-edition.licensing"></a>

SQL Server Developer Edition dilisensikan oleh Microsoft hanya untuk lingkungan pengembangan dan pengujian. Anda tidak dapat menggunakan Edisi Pengembang sebagai server produksi. Saat Anda menggunakan SQL Server Developer Edition di Amazon RDS, Anda bertanggung jawab untuk mematuhi persyaratan lisensi Microsoft SQL Server Developer Edition. Anda hanya membayar biaya AWS infrastruktur - tidak ada biaya lisensi SQL Server tambahan. Untuk detail harga, lihat harga [RDS untuk SQL Server](https://aws.amazon.com/rds/sqlserver/pricing/).

## Prasyarat
<a name="sqlserver-dev-edition.prerequisites"></a>

Sebelum menggunakan SQL Server Developer Edition pada RDS untuk SQL Server, pastikan Anda memiliki persyaratan berikut:
+ Anda harus mendapatkan binari penginstalan langsung dari Microsoft dan memastikan kepatuhan terhadap persyaratan lisensi Microsoft.
+ Anda harus memiliki akses untuk menggunakan sumber daya berikut untuk membuat instans DB Edisi Pengembang:
  + AWS akun dengan `AmazonRDSFullAccess` dan `s3:GetObject` izin.
+ Bucket Amazon S3 diperlukan untuk menyimpan media instalasi. Anda memerlukan ISO dan file pembaruan kumulatif untuk diunggah ke bucket Amazon S3 sebagai bagian dari pembuatan CEV. Untuk informasi selengkapnya, lihat [Mengunggah media instalasi ke bucket Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html).
+ Semua file media instalasi harus berada dalam bucket Amazon S3 yang sama dan jalur folder yang sama di dalam bucket Amazon S3 di Wilayah yang sama tempat versi mesin khusus dibuat.

### Versi yang didukung
<a name="sqlserver-dev-edition.supported-versions"></a>

Edisi Pengembang pada RDS untuk SQL Server mendukung versi berikut:
+ SQL Server 2022 CU 21 (16.00.4215.2)
+ SQL Server 2019 CU 32 GDR (15.00.4455.2)

Untuk mencantumkan semua versi engine yang didukung untuk pembuatan CEV Edisi Pengembang, gunakan AWS CLI perintah berikut:

```
aws rds describe-db-engine-versions --engine sqlserver-dev-ee --output json --query "{DBEngineVersions: DBEngineVersions[?Status=='requires-custom-engine-version'].{Engine: Engine, EngineVersion: EngineVersion, Status: Status, DBEngineVersionDescription: DBEngineVersionDescription}}"
```

Perintah mengembalikan output mirip dengan contoh berikut:

```
{
    "DBEngineVersions": [
        {
            "Engine": "sqlserver-dev-ee",
            "EngineVersion": "16.00.4215.2.v1",
            "Status": "requires-custom-engine-version",
            "DBEngineDescription": "Microsoft SQL Server Enterprise Developer Edition",
            "DBEngineVersionDescription": "SQL Server 2022 16.00.4215.2.v1"
        }
    ]
}
```

Status versi mesin sebagai `requires_custom_engine_version` mengidentifikasi versi mesin template yang didukung. Template ini menunjukkan versi SQL Server mana yang dapat Anda impor.

## Batasan
<a name="sqlserver-dev-edition.limitations"></a>

Batasan berikut berlaku untuk SQL Server Developer Edition di Amazon RDS:
+ Saat ini hanya didukung pada kelas instance M6i dan R6i.
+ Penerapan multi-AZ dan replika baca tidak didukung.
+ Anda harus menyediakan dan mengelola media instalasi SQL Server Anda sendiri.
+ Versi mesin khusus untuk SQL Server Developer Edition (sqlserver-dev-ee) tidak dapat dibagikan Lintas wilayah atau lintas akun.

# Mempersiapkan CEV untuk RDS untuk SQL Server
<a name="sqlserver-dev-edition.preparing"></a>

## Prasyarat
<a name="sqlserver-dev-prerequisites"></a>

Sebelum membuat versi mesin khusus, pastikan Anda telah menyelesaikan prasyarat berikut:

### Siapkan media instalasi SQL Server Developer Edition
<a name="sqlserver-dev-prepare-media"></a>

Anda harus mendapatkan media instalasi SQL Server Developer Edition dari Microsoft dan mempersiapkannya untuk diunggah ke S3.

**Untuk mengunduh media instalasi dari Microsoft**

1. **Opsi A:** Gunakan [langganan Visual Studio](https://visualstudio.microsoft.com/subscriptions/) Anda untuk mengunduh ISO Edisi Pengembang. Hanya versi bahasa Inggris yang didukung.

1. **Opsi B: Menggunakan Penginstal SQL Server**

   1. Unduh [penginstal SQL Server Developer Edition](https://download.microsoft.com/download/c/c/9/cc9c6797-383c-4b24-8920-dc057c1de9d3/SQL2022-SSEI-Dev.exe).

   1. Jalankan penginstal dan pilih **Unduh Media** untuk mengunduh ISO lengkap.

   1. Pilih **bahasa Inggris** sebagai bahasa pilihan.

   1. Pilih **ISO** sebagai tipe media.

   1. Pilih **Unduh**.

**Untuk mengunduh pembaruan kumulatif**

1. Kunjungi halaman [Pembaruan Katalog Microsoft](https://www.catalog.update.microsoft.com/Home.aspx).

1. Temukan Edisi Pengembang SQL Server yang didukung oleh RDS untuk SQL Server, misalnya “Pembaruan Kumulatif SQL Server 2022”.

1. Unduh file executable CU terbaru yang didukung dan simpan ke mesin Anda.

1. Contoh file: `SQLServer2022-KB5065865-x64.exe` (CU21 untuk SQL Server 2022)

**penting**  
RDS untuk SQL Server hanya mendukung versi Pembaruan Kumulatif (CU) tertentu. Anda harus menggunakan versi persis yang tercantum dalam tabel di bawah ini. Jangan gunakan versi CU yang lebih baru meskipun tersedia dari Microsoft, karena mungkin tidak kompatibel dengan RDS.

Atau, Anda juga dapat mengunduh file Pembaruan Kumulatif (CU) yang diperlukan langsung dari berikut ini:

Tabel berikut mencantumkan versi SQL Server Developer Edition yang didukung dan pemutakhiran kumulatif yang sesuai untuk digunakan dengan RDS:


| Versi SQL Server | CU yang didukung | Artikel KB | Unduh Nama Berkas | 
| --- | --- | --- | --- | 
|  SQL Server 2022  |  `CU21`  |  [KB5065865](https://learn.microsoft.com/en-us/troubleshoot/sql/releases/sqlserver-2022/cumulativeupdate21)  |  `SQLServer2022-KB5065865-x64.exe`  | 
|  SQL Server 2019  |  `CU32 GDR`  |  [KB5068404](https://support.microsoft.com/en-us/topic/kb5068404-description-of-the-security-update-for-sql-server-2019-cu32-november-11-2025-c203bfbf-036e-46d2-bc10-6c01200dc48a)  |  `SQLServer2019-KB5068404-x64.exe`  | 

# Membuat versi mesin khusus untuk RDS untuk SQL Server
<a name="sqlserver-dev-edition.creating-cev"></a>

Versi mesin khusus (CEV) untuk RDS untuk SQL Server terdiri dari media instalasi SQL Server Developer Edition Anda yang diimpor ke Amazon RDS. Anda perlu mengunggah penginstal ISO dasar dan file pembaruan kumulatif (.exe) ke bucket Amazon S3 Anda. Setelah diunggah, Anda harus memberikan lokasi Amazon S3 ke RDS agar dapat diunduh, memvalidasi, dan kemudian membuat CEV Anda.

## Batasan penamaan
<a name="sqlserver-dev-edition.create-cev.naming-limitations"></a>

Saat membuat CEV, Anda harus mengikuti konvensi penamaan tertentu:
+ Nama CEV harus mengikuti `major-version.minor-version.customized-string` polanya.
+ `customized-string`dapat berisi 1-50 karakter alfanumerik, garis bawah, tanda hubung, dan titik. Misalnya: `16.00.4215.2.my-dev-cev` untuk SQL Server 2022.

Untuk mencantumkan semua versi mesin yang didukung, gunakan perintah berikut:

```
aws rds describe-db-engine-versions --engine sqlserver-dev-ee --output json --query "{DBEngineVersions: DBEngineVersions[?Status=='requires-custom-engine-version'].{Engine: Engine, EngineVersion: EngineVersion, Status: Status, DBEngineVersionDescription: DBEngineVersionDescription}}" 

{
    "DBEngineVersions": [
        {
            "Engine": "sqlserver-dev-ee",
            "EngineVersion": "16.00.4215.2.v1",
            "Status": "requires-custom-engine-version",
            "DBEngineDescription": "Microsoft SQL Server Enterprise Developer Edition",
            "DBEngineVersionDescription": "SQL Server 2022 16.00.4215.2.v1"
        }
    ]
}
```

## AWS CLI
<a name="sqlserver-dev-edition.create-cev.CLI"></a>

**Untuk membuat versi mesin khusus**
+ Gunakan perintah [create-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/create-custom-db-engine-version.html).

  Opsi berikut diperlukan:
  + `--engine`
  + `--engine-version`
  + `--database-installation-files-s3-bucket-name`
  + `--database-installation-files`
  + `--region`

  Anda juga dapat menentukan parameter berikut:
  + `--database-installation-files-s3-prefix`
  + `--description`
  + `--tags`

  ```
  aws rds create-custom-db-engine-version \
  --engine sqlserver-dev-ee \
  --engine-version 16.00.4215.2.cev-dev-ss2022-cu21 \
  --region us-west-2 \
  --database-installation-files-s3-bucket-name my-s3-installation-media-bucket \
  --database-installation-files-s3-prefix sqlserver-dev-media \
  --database-installation-files "SQLServer2022-x64-ENU-Dev.iso" "SQLServer2022-KB5065865-x64.exe"
  ```

Pembuatan CEV biasanya memakan waktu 15-30 menit. Untuk memantau kemajuan pembuatan CEV, gunakan perintah berikut:

```
# Check CEV status
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--region us-west-2
```

## Siklus hidup RDS untuk SQL Server CEV
<a name="sqlserver-dev-cev-lifecycle"></a>

Saat bekerja dengan SQL Server Developer Edition pada RDS untuk SQL Server, versi mesin kustom Anda bertransisi melalui berbagai status siklus hidup.


| Status Siklus Hidup | Deskripsi | Ketika Itu Terjadi | Tindakan yang Tersedia | 
| --- | --- | --- | --- | 
|  penundan-validasi  |  Keadaan awal saat CEV dibuat  |  Ini adalah keadaan awal setelah pembuatan dengan `create-custom-db-engine-version` perintah.  |  Pantau status melalui`describe-db-engine-version`.  | 
|  memvalidasi  |  Status Validasi CEV  |  Amazon RDS memvalidasi versi mesin kustom Anda (CEV). Proses asinkron ini mungkin membutuhkan waktu untuk diselesaikan.  |  Pantau status hingga validasi selesai.  | 
|  tersedia  |  Validasi versi mesin kustom (CEV) berhasil diselesaikan.  |  Versi Mesin Kustom (CEV) sekarang tersedia. Amazon RDS berhasil memvalidasi SQL Server ISO dan file pemutakhiran kumulatif Anda. Anda sekarang dapat membuat instance DB menggunakan CEV ini.  |  Buat instance DB menggunakan CEV ini  | 
|  gagal  |  RDS untuk SQL Server tidak dapat membuat versi mesin kustom (CEV) karena pemeriksaan validasi gagal.  |  ISO dan validasi media kumulatif gagal.   |  Validasi ISO gagal. Periksa alasan kegagalan`describe-db-engine-version`, perbaiki masalah file apa pun seperti ketidakcocokan hash atau konten yang rusak, lalu buat ulang versi mesin kustom (CEV) Anda.  | 
|  menghapus  |  Versi mesin khusus (CEV) sedang dihapus  |  Setelah panggilan pelanggan `delete-custom-db-engine-version` hingga alur kerja penghapusan selesai.  |  Pantau status melalui`describe-db-engine-version`.  | 
|  incompatible-installation-media  |  Amazon RDS tidak dapat memvalidasi media instalasi yang disediakan untuk versi mesin khusus (CEV)  |  Validasi versi mesin kustom (CEV) gagal. Ini adalah status terakhir.  |  Lihat FailureReason via `describe-db-engine-versions` untuk info tentang mengapa validasi gagal; hapus CEV.  | 

### Jelaskan Status CEV
<a name="sqlserver-dev-cev-status-check"></a>

Anda dapat melihat status Anda CEVs menggunakanAWS CLI:

```
1. aws rds describe-db-engine-versions \
2. --engine sqlserver-dev-ee \
3. --engine-version 16.00.4215.2.my-dev-cev \
4. --region us-west-2 \
5. --query 'DBEngineVersions[0].{Version:EngineVersion,Status:Status}'
```

Output sampel

```
| DescribeDBEngineVersions                     |
+------------+---------------------------------+
| Status | Version                             |
+------------+---------------------------------+
| available | 16.00.4215.2.cev-dev-ss2022-cu21    |
+------------+---------------------------------+
```

Ketika CEV menunjukkan `failed` status, Anda dapat menentukan alasannya menggunakan perintah berikut:

```
1. aws rds describe-db-engine-versions \
2. --engine sqlserver-dev-ee \
3. --engine-version 16.00.4215.2.my-dev-cev \
4. --region us-west-2 \
5. --query 'DBEngineVersions[0].{Version:EngineVersion,Status:Status,FailureReason:FailureReason}'
```

# Membuat RDS untuk SQL Server Developer Edition DB instance
<a name="sqlserver-dev-edition.creating-instance"></a>

Meluncurkan instance Developer Edition pada RDS untuk SQL Server mengikuti proses dua langkah: pertama buat CEV dengan`create-custom-db-engine-version`, Setelah versi mesin kustom Anda dalam keadaan tersedia, Anda dapat membuat instance database Amazon RDS menggunakan CEV.

**Perbedaan utama untuk pembuatan instance Edisi Pengembang**


| Parameter | Developer Edition | 
| --- | --- | 
|  `--engine`  |  sqlserver-dev-ee  | 
|  `--engine-version`  |  Versi mesin khusus (misalnya, 16.00.4215.2. cev-dev-ss2022-cu21)  | 
|  `--license-model`  |  bring-your-own-license  | 

## AWS CLI
<a name="sqlserver-dev-edition.creating-instance.CLI"></a>

Untuk membuat instance SQL Server Developer Edition DB, gunakan [create-db-instance](https://docs.aws.amazon.com//cli/latest/reference/rds/create-db-instance.html)perintah dengan parameter berikut:

Opsi berikut diperlukan:
+ `--db-instance-identifier` 
+ `--db-instance-class` 
+ `--engine` – `sqlserver-dev-ee`
+ `--region`

**Contoh:**

Untuk Linux, macOS, atau Unix:

```
aws rds create-db-instance \
--db-instance-identifier my-dev-sqlserver \
--db-instance-class db.m6i.xlarge \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--allocated-storage 200 \
--master-username admin \
--master-user-password changeThisPassword \
--license-model bring-your-own-license \
--no-multi-az \
--vpc-security-group-ids sg-xxxxxxxxx \
--db-subnet-group-name my-db-subnet-group \
--backup-retention-period 7 \
--region us-west-2
```

Untuk Windows:

```
aws rds create-db-instance ^
--db-instance-identifier my-dev-sqlserver ^
--db-instance-class db.m6i.xlarge ^
--engine sqlserver-dev-ee ^
--engine-version 16.00.4215.2.cev-dev-ss2022-cu21 ^
--allocated-storage 200 ^
--master-username admin ^
--master-user-password master_user_password ^
--license-model bring-your-own-license ^
--no-multi-az ^
--vpc-security-group-ids sg-xxxxxxxxx ^
--db-subnet-group-name my-db-subnet-group ^
--backup-retention-period 7 ^
--region us-west-2
```

Lihat [Membuat instans DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html#USER_CreateDBInstance.Creating) untuk membuat menggunakan AWS konsol.

# Menerapkan upgrade versi minor database
<a name="sqlserver-dev-edition.minor-version-upgrades"></a>

RDS untuk SQL Server Developer Edition memerlukan pembuatan versi mesin kustom baru (CEV) dengan pembaruan kumulatif terbaru untuk menerapkan upgrade versi minor database. Upgrade versi minor database untuk SQL Server Developer Edition melibatkan langkah-langkah berikut:

1. Sebelum memutakhirkan, verifikasi versi mesin saat ini pada instance, identifikasi versi mesin basis data target dari versi yang didukung Amazon RDS. Untuk informasi tentang versi SQL Server yang tersedia di Amazon RDS, lihat [Bekerja dengan SQL Server Developer Edition pada RDS untuk SQL Server](sqlserver-dev-edition.md).

1. Dapatkan dan unggah media instalasi (ISO dan CU), lalu [buat versi mesin khusus baru](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/sqlserver-dev-edition.creating-cev.html).

1. Terapkan upgrade versi minor database dengan menggunakan Amazon RDS [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)dengan CEV baru.

   ```
   aws rds modify-db-instance \
   --db-instance-identifier <instance-id> \
   --engine-version <new-cev-version> \
   --no-apply-immediately ## use --apply-immediately for immediate update
   ```
**catatan**  
`--no-apply-immediately`(default) untuk menerapkan perubahan selama jendela pemeliharaan berikutnya.

# Melihat dan mengelola versi mesin khusus
<a name="sqlserver-dev-edition.managing"></a>

Untuk melihat semua RDS Anda untuk SQL Server Developer Edition CEVs, gunakan `describe-db-engine-versions` perintah dengan `--engine` input sebagai. `sqlserver-dev-ee`

```
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--include-all \
--region us-west-2
```

Untuk melihat detail CEV tertentu, gunakan perintah berikut:

```
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.cev-dev-ss2022-cu21 \
--region us-west-2
```

**catatan**  
Perintah ini hanya kembali CEVs dengan `available` status. Untuk melihat CEVs dalam memvalidasi atau negara bagian lain, sertakan `--include-all` bendera.

## Menghapus versi mesin khusus
<a name="sqlserver-dev-deleting-cevs"></a>

Sebelum menghapus CEV, pastikan CEV tidak digunakan oleh salah satu dari berikut ini:
+ Amazon RDS DB instance
+ Sebuah snapshot dari instans Amazon RDS DB
+ Pencadangan otomatis instans Amazon RDS DB

**catatan**  
Anda tidak dapat menghapus CEV jika ada sumber daya yang terkait dengannya.

Untuk menghapus versi mesin khusus, gunakan perintah [ delete-custom-db-engine-version](https://docs.aws.amazon.com//cli/latest/reference/rds/delete-custom-db-engine-version.html).
+ `--engine`: Tentukan `sqlserver-dev-ee` untuk Edisi Pengembang
+ `--engine-version`: Pengidentifikasi versi CEV yang tepat untuk dihapus
+ `--region`: Wilayah AWS di mana CEV ada

```
aws rds delete-custom-db-engine-version \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--region us-west-2
```

Untuk memantau proses penghapusan CEV, gunakan `describe-db-engine-versions` perintah dan tentukan RDS Anda untuk versi mesin SQL Server CEV

```
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--region us-west-2
```

Nilai Status:
+ `deleting`: Penghapusan CEV sedang berlangsung
+ Tidak ada hasil yang dikembalikan: CEV berhasil dihapus

# Pemecahan Masalah SQL Server Developer Edition untuk RDS untuk SQL Server
<a name="sqlserver-dev-edition.troubleshooting"></a>

Tabel berikut mencantumkan beberapa kesalahan umum dan solusi yang sesuai saat bekerja dengan SQL Server Developer Edition untuk RDS untuk SQL Server


**Kesalahan Umum dan Solusi**  

| Kode Kesalahan | Deskripsi | Solusi | 
| --- | --- | --- | 
| InvalidParameterValue | Parameter CEV atau referensi file tidak valid | Verifikasi nama file, jalur, dan sintaks parameter | 
| DBSubnetGroupNotFound | Grup subnet tidak ada | Buat grup subnet atau verifikasi nama | 
| Status Tidak Valid VPCNetwork | Masalah konfigurasi VPC | Periksa VPC, subnet, dan tabel perutean | 
| InvalidEngineVersion | CEV tidak tersedia atau tidak valid | Verifikasi status dan nama CEV | 
| Kelas Tidak Valid DBInstance | Kelas instance tidak didukung | Pilih kelas instance yang didukung | 
| Kustom DBEngine VersionQuotaExceededFault | Anda telah mencapai jumlah maksimum versi mesin khusus | Jika diperlukan tingkatkan kuota layanan, atau Hapus yang tidak digunakan CEVs jika diperlukan | 
| CreateCustomDBEngineVersionFault | Amazon RDS tidak dapat mengakses file penginstal yang ditentukan di bucket Amazon S3. | Amazon RDS tidak dapat mengakses file instalasi SQL Server di lokasi Amazon S3 yang ditentukan. Berikan izin kepada kepala layanan Amazon RDS (rds.amazonaws.com) s3: GetObject dalam kebijakan bucket Amazon S3 Anda. Validasi bahwa Wilayah bucket Amazon S3 sama dengan Wilayah tempat Anda membuat CEV. | 

# Menggunakan Active Directory dengan RDS for SQL Server
<a name="User.SQLServer.ActiveDirectoryWindowsAuth"></a>

Anda dapat menggabungkan instans DB RDS for SQL Server ke domain Microsoft Active Directory (AD). Domain AD Anda dapat di-host pada iklan AWS terkelola di dalam AWS, atau pada iklan yang dikelola sendiri di lokasi pilihan Anda, termasuk pusat data perusahaan Anda, di AWS EC2, atau dengan penyedia cloud lainnya.

Anda dapat mengautentikasi pengguna domain menggunakan otentikasi NTLM dan otentikasi Kerberos dengan Active Directory yang dikelola sendiri dan. AWS Managed Microsoft AD

Di bagian berikut, Anda dapat menemukan informasi tentang bekerja dengan Direktori Aktif yang dikelola sendiri dan Direktori Aktif AWS Terkelola untuk Microsoft SQL Server di Amazon RDS.

**Topics**
+ [Bekerja dengan Active Directory yang dikelola sendiri dengan instans Amazon RDS for SQL Server DB](USER_SQLServer_SelfManagedActiveDirectory.md)
+ [Bekerja dengan Direktori Aktif AWS Terkelola dengan RDS untuk SQL Server](USER_SQLServerWinAuth.md)

# Bekerja dengan Active Directory yang dikelola sendiri dengan instans Amazon RDS for SQL Server DB
<a name="USER_SQLServer_SelfManagedActiveDirectory"></a>

Amazon RDS for SQL Server terintegrasi dengan mulus dengan domain Active Directory (AD) yang dikelola sendiri, di mana pun iklan Anda di-host - baik di pusat data, di Amazon EC2, atau dengan penyedia cloud lainnya. Integrasi ini memungkinkan otentikasi pengguna langsung melalui protokol NTLM atau Kerberos, menghilangkan kebutuhan akan domain perantara yang kompleks atau perwalian hutan. Saat Anda terhubung ke instans RDS SQL Server DB, permintaan autentikasi diteruskan dengan aman ke domain AD yang Anda tentukan, mempertahankan struktur manajemen identitas yang ada sambil memanfaatkan kemampuan database terkelola Amazon RDS.

**Topics**
+ [Ketersediaan wilayah dan versi](#USER_SQLServer_SelfManagedActiveDirectory.RegionVersionAvailability)
+ [Persyaratan](USER_SQLServer_SelfManagedActiveDirectory.Requirements.md)
+ [Pertimbangan-pertimbangan](#USER_SQLServer_SelfManagedActiveDirectory.Limitations)
+ [Menyiapkan Direktori Aktif yang dikelola sendiri](USER_SQLServer_SelfManagedActiveDirectory.SettingUp.md)
+ [Bergabung dengan instans DB Anda ke Active Directory yang dikelola sendiri](USER_SQLServer_SelfManagedActiveDirectory.Joining.md)
+ [Mengelola instans DB dalam Domain Directory Active yang dikelola sendiri](USER_SQLServer_SelfManagedActiveDirectory.Managing.md)
+ [Memahami keanggotaan Domain Directory Active yang dikelola sendiri](#USER_SQLServer_SelfManagedActiveDirectory.Understanding)
+ [Pemecahan masalah Directory Active yang dikelola sendiri](USER_SQLServer_SelfManagedActiveDirectory.TroubleshootingSelfManagedActiveDirectory.md)
+ [Memulihkan instans DB SQL Server lalu menambahkannya ke domain Directory Active yang dikelola sendiri](#USER_SQLServer_SelfManagedActiveDirectory.Restore)

## Ketersediaan wilayah dan versi
<a name="USER_SQLServer_SelfManagedActiveDirectory.RegionVersionAvailability"></a>

Amazon RDS mendukung AD yang dikelola sendiri untuk SQL Server menggunakan NTLM dan Kerberos di semua komersial dan. Wilayah AWS AWS GovCloud (US) Regions

# Persyaratan
<a name="USER_SQLServer_SelfManagedActiveDirectory.Requirements"></a>

Pastikan Anda telah memenuhi persyaratan berikut sebelum menggabungkan instans DB RDS for SQL Server ke domain AD yang dikelola sendiri.

**Topics**
+ [Konfigurasikan AD on-premise Anda](#USER_SQLServer_SelfManagedActiveDirectory.Requirements.OnPremConfig)
+ [Konfigurasikan konektivitas jaringan Anda](#USER_SQLServer_SelfManagedActiveDirectory.Requirements.NetworkConfig)
+ [Konfigurasikan akun layanan domain AD Anda](#USER_SQLServer_SelfManagedActiveDirectory.Requirements.DomainAccountConfig)
+ [Mengkonfigurasi komunikasi aman melalui LDAPS](#USER_SQLServer_SelfManagedActiveDirectory.Requirements.LDAPS)

## Konfigurasikan AD on-premise Anda
<a name="USER_SQLServer_SelfManagedActiveDirectory.Requirements.OnPremConfig"></a>

Pastikan bahwa Anda memiliki Microsoft AD on-premise atau yang dikelola sendiri lainnya tempat Anda dapat menggabungkan instans Amazon RDS for SQL Server. AD on-premise Anda harus memiliki konfigurasi berikut:
+ Jika Anda memiliki situs AD yang ditentukan, pastikan subnet di VPC yang terkait dengan instans RDS untuk SQL Server DB ditentukan di situs AD Anda. Konfirmasikan bahwa tidak ada konflik antara subnet di VPC Anda dan subnet di situs AD Anda yang lain.
+ Pengontrol domain AD Anda memiliki tingkat fungsional domain Windows Server 2008 R2 atau lebih tinggi.
+ Nama domain AD Anda tidak dapat menggunakan format Domain Label Tunggal (SLD). RDS for SQL Server tidak mendukung domain SLD.
+ Nama domain yang memenuhi syarat penuh (FQDN) untuk iklan Anda tidak boleh melebihi 47 karakter.

## Konfigurasikan konektivitas jaringan Anda
<a name="USER_SQLServer_SelfManagedActiveDirectory.Requirements.NetworkConfig"></a>

Pastikan bahwa Anda telah memenuhi konfigurasi jaringan berikut:
+ Konfigurasikan konektivitas antara VPC Amazon tempat Anda ingin membuat instans RDS untuk SQL Server DB dan AD yang dikelola sendiri. Anda dapat mengatur konektivitas menggunakan AWS Direct Connect, AWS VPN, VPC peering, atau Transit Gateway AWS .
+ Untuk grup keamanan VPC, grup keamanan default untuk Amazon VPC default Anda sudah ditambahkan ke instans DB RDS for SQL Server Anda di konsol. Pastikan bahwa grup keamanan dan jaringan VPC ACLs untuk subnet tempat Anda membuat instans RDS untuk SQL Server DB memungkinkan lalu lintas pada port dan arah yang ditunjukkan pada diagram berikut.  
![\[Aturan port konfigurasi jaringan AD yang dikelola sendiri.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/SQLServer_SelfManagedActiveDirectory_Requirements_NetworkConfig.png)

  Tabel berikut mengidentifikasi peran masing-masing port.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/USER_SQLServer_SelfManagedActiveDirectory.Requirements.html)
+ Umumnya, server DNS domain terletak di pengontrol domain AD. Anda tidak perlu mengonfigurasi opsi DHCP VPC yang diatur untuk menggunakan fitur ini. Untuk informasi selengkapnya, lihat [Set opsi DHCP](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) dalam *Panduan Pengguna Amazon VPC*.

**penting**  
Jika Anda menggunakan jaringan VPC ACLs, Anda juga harus mengizinkan lalu lintas keluar pada port dinamis (49152-65535) dari RDS Anda untuk instans SQL Server DB. Pastikan bahwa aturan lalu lintas ini juga dicerminkan pada firewall yang berlaku untuk masing-masing pengontrol domain AD, server DNS, dan instans DB RDS for SQL Server.  
Sementara grup keamanan VPC memerlukan port untuk dibuka hanya ke arah lalu lintas jaringan dimulai, sebagian besar firewall Windows dan ACLs jaringan VPC memerlukan port untuk dibuka di kedua arah.

## Konfigurasikan akun layanan domain AD Anda
<a name="USER_SQLServer_SelfManagedActiveDirectory.Requirements.DomainAccountConfig"></a>

Pastikan bahwa Anda telah memenuhi persyaratan berikut untuk akun layanan domain AD:
+ Pastikan Anda memiliki akun layanan domain di domain AD yang dikelola sendiri dengan izin yang didelegasikan untuk bergabung dengan komputer ke domain tersebut. Akun layanan domain adalah akun pengguna di AD yang dikelola sendiri yang telah mendapatkan delegasi izin untuk melakukan tugas tertentu.
+ Akun layanan domain perlu mendapatkan delegasi izin berikut di Unit Organisasi (OU) tempat Anda menggabungkan instans DB RDS for SQL Server Anda:
  + Kemampuan tervalidasi untuk menulis ke nama host DNS
  + Kemampuan tervalidasi untuk menulis ke nama prinsipal layanan
  + Membuat dan menghapus objek komputer

  Ini mewakili set minimum izin yang diperlukan untuk menggabungkan objek komputer ke AD yang dikelola sendiri. Untuk informasi selengkapnya, lihat [Errors when attempting to join computers to a domain](https://learn.microsoft.com/en-US/troubleshoot/windows-server/identity/access-denied-when-joining-computers) dalam dokumentasi Microsoft Windows Server.
+ Untuk menggunakan autentikasi Kerberos, Anda perlu memberikan Nama Utama Layanan (SPNs) dan izin DNS ke akun layanan domain AD Anda:
  + **Tulis SPN**: Delegasikan izin **Write SPN** ke akun layanan domain AD di OU di mana Anda harus bergabung dengan RDS untuk SQL Server DB instance. Izin ini berbeda dari SPN tulis yang divalidasi.
  + **Izin DNS**: Berikan izin berikut ke akun layanan domain AD di pengelola DNS di tingkat server untuk pengontrol domain Anda:
    + Daftar isi
    + Baca semua properti
    + Baca izin

**penting**  
Jangan memindahkan objek komputer yang dibuat RDS for SQL Server di Unit Organisasi setelah instans DB Anda dibuat. Memindahkan objek terkait akan menyebabkan instans DB RDS for SQL Server Anda salah konfigurasi. Jika Anda perlu memindahkan objek komputer yang dibuat oleh Amazon RDS, gunakan operasi [Modify DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) RDS API untuk memodifikasi parameter domain dengan lokasi objek komputer yang diinginkan.

## Mengkonfigurasi komunikasi aman melalui LDAPS
<a name="USER_SQLServer_SelfManagedActiveDirectory.Requirements.LDAPS"></a>

Komunikasi melalui LDAPS direkomendasikan untuk RDS untuk query dan mengakses objek komputer serta SPNs dalam kontroler domain. Untuk menggunakan LDAP aman, gunakan sertifikat SSL yang valid pada pengontrol domain Anda yang memenuhi persyaratan untuk LDAPS aman. Jika sertifikat SSL yang valid tidak ada pada pengontrol domain, instans RDS untuk SQL Server DB default menggunakan LDAP. Untuk informasi selengkapnya tentang validitas sertifikat, lihat [Persyaratan untuk sertifikat LDAPS](https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/enable-ldap-over-ssl-3rd-certification-authority#requirements-for-an-ldaps-certificate).

## Pertimbangan-pertimbangan
<a name="USER_SQLServer_SelfManagedActiveDirectory.Limitations"></a>

Saat menambahkan instans RDS untuk SQL Server DB ke AD yang dikelola sendiri, pertimbangkan hal berikut:
+ Instans DB Anda disinkronkan dengan AWS layanan NTP dan bukan server waktu domain AD. Untuk koneksi database antara instance SQL Server tertaut dalam domain AD Anda, Anda hanya dapat otentikasi SQL dan bukan otentikasi Windows.
+ Kebijakan Grup Setelan objek dari domain AD yang dikelola sendiri tidak disebarkan ke RDS untuk instans SQL Server Anda.

# Menyiapkan Direktori Aktif yang dikelola sendiri
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp"></a>

Untuk menyiapkan iklan yang dikelola sendiri, lakukan langkah-langkah berikut.

**Topics**
+ [Langkah 1: Buat Unit Organisasi di AD Anda](#USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateOU)
+ [Langkah 2: Buat akun layanan domain AD di AD Anda](#USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateADuser)
+ [Langkah 3: Delegasikan kontrol ke akun layanan domain AD](#USER_SQLServer_SelfManagedActiveDirectory.SettingUp.DelegateControl)
+ [Langkah 4: Buat AWS KMS kunci](#USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateKMSkey)
+ [Langkah 5: Buat AWS rahasia](#USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateSecret)

## Langkah 1: Buat Unit Organisasi di AD Anda
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateOU"></a>

**penting**  
 Sebaiknya buat kredensi OU dan layanan khusus yang dicakup oleh OU tersebut untuk AWS akun apa pun yang memiliki instans RDS untuk SQL Server DB yang bergabung dengan domain AD yang dikelola sendiri. Dengan mengkhususkan kredensial OU dan layanan, Anda dapat menghindari izin yang bertentangan dan mengikuti prinsip hak akses paling rendah. 

**Untuk membuat OU di AD Anda**

1. Hubungkan ke domain AD Anda sebagai administrator domain.

1. Buka **Active Directory Users and Computers** dan pilih domain tempat Anda ingin membuat OU Anda.

1. Klik kanan domain dan pilih **New**, lalu **Organizational Unit**.

1. Masukkan nama untuk OU.

1. Biarkan kotak tetap dicentang untuk **Protect container from accidental deletion**.

1. Klik **OK**. OU baru Anda akan muncul di bawah domain Anda.

## Langkah 2: Buat akun layanan domain AD di AD Anda
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateADuser"></a>

Kredensyal akun layanan domain akan digunakan untuk AWS rahasia di Secrets Manager.

**Untuk membuat akun layanan domain AD di AD**

1. Buka **Active Directory Users and Computers** dan pilih domain dan OU tempat Anda ingin membuat pengguna Anda.

1. Klik kanan objek **Users** dan pilih **New**, lalu **User**.

1. Masukkan nama depan, nama belakang, dan nama login untuk pengguna. Klik **Next**.

1. Masukkan kata sandi untuk pengguna. Jangan pilih **"User must change password at next login"**. Jangan pilih **"Account is disabled"**. Klik **Next**.

1. Klik **OK**. Pengguna baru Anda akan muncul di bawah domain Anda.

## Langkah 3: Delegasikan kontrol ke akun layanan domain AD
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.DelegateControl"></a>

**Untuk mendelegasikan kontrol ke akun layanan domain AD di domain Anda**

1. Buka snap-in MMC **Active Directory Users and Computers** dan pilih domain tempat Anda ingin membuat pengguna Anda.

1. Klik kanan OU yang Anda buat sebelumnya dan pilih **Delegate Control**.

1. Pada bagian **Delegation of Control Wizard**, klik **Next**.

1. Pada bagian **Users or Groups**, klik **Add**.

1. Pada bagian **Pilih Pengguna, Komputer, atau Grup**, masukkan akun layanan domain AD yang Anda buat dan klik **Periksa Nama**. Jika pemeriksaan akun layanan domain AD Anda berhasil, klik **OK**.

1. Pada bagian **Pengguna atau Grup**, konfirmasikan akun layanan domain AD Anda telah ditambahkan dan klik **Berikutnya**.

1. Pada bagian **Tasks to Delegate**, pilih **Create a custom task to delegate** lalu klik **Next**.

1. Pada bagian **Active Directory Object Type**:

   1. Pilih **Only the following objects in the folder**.

   1. Pilih **Computer Objects**.

   1. Pilih **Create selected objects in this folder**.

   1. Pilih **Delete selected objects in this folder** lalu klik **Next**.

1. Pada bagian **Permissions**:

   1. Tetap pilih **General**.

   1. Pilih **Validated write to DNS host name**.

   1. Pilih **Validated write to service principal name** lalu klik **Next**.

   1. **Untuk mengaktifkan otentikasi Kerberos, tetap pilih **Property-specific** dan pilih Write dari daftar. servicePrincipalName**

1. Untuk **Completing the Delegation of Control Wizard**, tinjau dan konfirmasikan pengaturan Anda lalu klik **Finish**.

1. **Untuk otentikasi Kerberos, buka DNS Manager dan buka properti Server.**

   1. Di kotak dialog Windows, ketik`dnsmgmt.msc`.

   1. Tambahkan akun layanan domain AD di bawah tab **Keamanan**.

   1. Pilih izin **Baca** dan terapkan perubahan Anda.

## Langkah 4: Buat AWS KMS kunci
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateKMSkey"></a>

Kunci KMS digunakan untuk mengenkripsi rahasia AndaAWS.

**Untuk membuat AWS KMS kunci**
**catatan**  
 Untuk **Kunci Enkripsi**, jangan gunakan kunci KMS AWS default. Pastikan untuk membuat AWS KMS kunci di AWS akun yang sama yang berisi instans RDS untuk SQL Server DB yang ingin Anda gabungkan ke AD yang dikelola sendiri. 

1. Di AWS KMS konsol, pilih **tombol Buat**.

1. Untuk **Tipe Kunci**, pilih **Simetris**.

1. Untuk **Penggunaan Kunci**, pilih **Enkripsi dan dekripsi**.

1. Untuk **Opsi lanjutan**:

   1. Untuk **Asal materi kunci**, pilih **KMS**.

   1. Untuk **Regionalitas**, pilih **Kunci Wilayah Tunggal** lalu klik **Berikutnya**.

1. Untuk **Alias**, berikan nama untuk kunci KMS.

1. (Opsional) Untuk **Deskripsi**, berikan deskripsi kunci KMS.

1. (Opsional) Untuk **Tag**, berikan tag kunci KMS lalu klik **Berikutnya**.

1. Untuk **Administrator kunci**, berikan nama pengguna IAM dan pilih nama pengguna tersebut.

1. Untuk **Penghapusan kunci**, biarkan kotak dipilih untuk **Izinkan administrator kunci untuk menghapus kunci ini** lalu klik **Berikutnya**.

1. Untuk **Pengguna kunci**, berikan pengguna IAM yang sama dari langkah sebelumnya dan pilih nama pengguna tersebut. Klik **Berikutnya**.

1. Tinjau konfigurasi tersebut.

1. Untuk **Kebijakan kunci**, sertakan yang berikut pada **Pernyataan** kebijakan:

   ```
   {
       "Sid": "Allow use of the KMS key on behalf of RDS",
       "Effect": "Allow",
       "Principal": {
           "Service": [
               "rds.amazonaws.com"
           ]
       },
       "Action": "kms:Decrypt",
       "Resource": "*"
   }
   ```

1. Klik **Selesai**.

## Langkah 5: Buat AWS rahasia
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateSecret"></a>

**Untuk membuat rahasia**
**catatan**  
 Pastikan untuk membuat rahasia di AWS akun yang sama yang berisi instans RDS untuk SQL Server DB yang ingin Anda gabungkan ke AD yang dikelola sendiri. 

1. Di AWS Secrets Manager, pilih **Simpan rahasia baru**.

1. Untuk **Tipe rahasia**, pilih **Tipe rahasia lainnya**.

1. Untuk **Pasangan kunci/nilai**, tambahkan dua kunci Anda:

   1. Untuk kunci pertama, masukkan `SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME`.

   1. Untuk nilai kunci pertama, masukkan hanya nama pengguna (tanpa awalan domain) dari pengguna AD. Jangan sertakan nama domain karena ini menyebabkan pembuatan instance gagal.

   1. Untuk kunci kedua, masukkan `SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD`.

   1. Untuk nilai kunci kedua, masukkan kata sandi yang Anda buat untuk pengguna AD di domain Anda.

1. Untuk **Kunci enkripsi**, masukkan kunci KMS yang Anda buat pada langkah sebelumnya lalu klik **Berikutnya**.

1. Untuk **Nama rahasia**, masukkan nama deskriptif yang akan membantu Anda menemukan rahasia Anda nanti.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi untuk nama rahasia.

1. Untuk **Izin sumber daya**, klik **Edit**.

1. Tambahkan kebijakan berikut ke kebijakan izin:
**catatan**  
Kami menyarankan Anda menggunakan kondisi `aws:sourceAccount` dan `aws:sourceArn` dalam kebijakan untuk menghindari masalah *confused deputy*. Gunakan Akun AWS untuk `aws:sourceAccount` dan RDS untuk SQL Server DB instance ARN untuk. `aws:sourceArn` Untuk informasi selengkapnya, lihat [Pencegahan masalah confused deputy lintas layanan](cross-service-confused-deputy-prevention.md).

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement":
       [
           {
               "Effect": "Allow",
               "Principal":
               {
                   "Service": "rds.amazonaws.com"
               },
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "*",
               "Condition":
               {
                   "StringEquals":
                   {
                       "aws:sourceAccount": "123456789012"
                   },
                   "ArnLike":
                   {
                       "aws:sourceArn": "arn:aws:rds:us-west-2:123456789012:db:*"
                   }
               }
           }
       ]
   }
   ```

------

1. Klik **Simpan** lalu klik **Berikutnya**.

1. Untuk **Konfigurasikan pengaturan rotasi**, pertahankan nilai default dan pilih **Berikutnya**.

1. Tinjau pengaturan untuk rahasia lalu klik **Simpan**.

1. Pilih rahasia yang Anda buat dan salin nilai **ARN Rahasia**. Nilai ini akan digunakan pada langkah berikutnya untuk mengatur Directory Active yang dikelola sendiri.

# Bergabung dengan instans DB Anda ke Active Directory yang dikelola sendiri
<a name="USER_SQLServer_SelfManagedActiveDirectory.Joining"></a>

Untuk menggabungkan instans RDS for SQL Server DB ke AD yang dikelola sendiri, ikuti langkah-langkah berikut:

## Langkah 1: Membuat atau memodifikasi instance SQL Server DB
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateModify"></a>

Anda dapat menggunakan konsol, CLI, atau API RDS untuk SQL Server dengan domain AD yang dikelola sendiri. Anda dapat melakukannya dengan salah satu cara berikut:
+ Buat instance SQL Server DB baru menggunakan konsol, perintah [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)CLI, atau operasi DBInstance Create [RDS](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) API.

  Untuk petunjuk, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+ Ubah instance SQL Server DB yang ada menggunakan konsol, perintah [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)CLI, atau operasi DBInstance Modify [RDS](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API.

  Untuk petunjuk, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).
+ [Kembalikan instans SQL Server DB dari snapshot DB menggunakan konsol, perintah CLI [restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html), atau operasi Restore From RDS API. DBInstance DBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)

  Untuk petunjuk, lihat [Memulihkan ke instans DB](USER_RestoreFromSnapshot.md).
+ Kembalikan instance SQL Server DB ke point-in-time menggunakan konsol, perintah [restore-db-instance-to- point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) CLI, atau operasi DBInstance ToPointInTime Restore [RDS](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) API.

  Untuk petunjuk, lihat [Memulihkan instans DB ke waktu yang ditentukan untuk Amazon RDS](USER_PIT.md).

Saat Anda menggunakan AWS CLI, parameter berikut diperlukan agar instans DB dapat menggunakan domain AD yang dikelola sendiri yang Anda buat:
+ Untuk `--domain-fqdn` parameternya, gunakan nama domain yang memenuhi syarat penuh (FQDN) dari AD yang dikelola sendiri.
+ Untuk parameter `--domain-ou`, gunakan OU yang Anda buat di AD yang dikelola sendiri.
+ Untuk parameter `--domain-auth-secret-arn`, gunakan nilai **ARN Rahasia** yang Anda buat pada langkah sebelumnya.
+ Untuk `--domain-dns-ips` parameter, gunakan IPv4 alamat primer dan sekunder server DNS untuk AD yang dikelola sendiri. Jika Anda tidak memiliki alamat IP server DNS sekunder, masukkan alamat IP primer dua kali.

Contoh perintah CLI berikut menunjukkan cara membuat, memodifikasi, dan menghapus instans DB RDS for SQL Server dengan domain AD yang dikelola sendiri.

**penting**  
Jika Anda memodifikasi instans DB untuk menggabungkannya ke atau menghapusnya dari domain AD yang dikelola sendiri, boot ulang instans DB tersebut diperlukan agar modifikasi diterapkan. Anda dapat memilih untuk segera menerapkan perubahan atau menunggu hingga periode pemeliharaan berikutnya. Memilih opsi **Terapkan Segera** akan menyebabkan waktu henti untuk instans DB AZ Tunggal. Instans DB Multi-AZ akan melakukan failover sebelum menyelesaikan boot ulang. Untuk informasi selengkapnya, lihat [Menggunakan pengaturan modifikasi jadwal](USER_ModifyInstance.ApplyImmediately.md). 

Perintah CLI berikut membuat RDS baru untuk instans DB SQL Server dan menggabungkannya ke domain AD yang dikelola sendiri.

Untuk Linux, macOS, atau Unix:

```
aws rds create-db-instance \
    --db-instance-identifier my-DB-instance \
    --db-instance-class db.m5.xlarge \
    --allocated-storage 50 \
    --engine sqlserver-se \
    --engine-version 15.00.4043.16.v1 \
    --license-model license-included \
    --master-username my-master-username \
    --master-user-password my-master-password \
    --domain-fqdn my_AD_domain.my_AD.my_domain \
    --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain \
    --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \
    --domain-dns-ips "10.11.12.13" "10.11.12.14"
```

Untuk Windows:

```
aws rds create-db-instance ^
    --db-instance-identifier my-DB-instance ^
    --db-instance-class db.m5.xlarge ^
    --allocated-storage 50 ^
    --engine sqlserver-se ^
    --engine-version 15.00.4043.16.v1 ^
    --license-model license-included ^
    --master-username my-master-username ^
    --master-user-password my-master-password ^
    --domain-fqdn my-AD-test.my-AD.mydomain ^
    --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain ^
    --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ ^
    --domain-dns-ips "10.11.12.13" "10.11.12.14"
```

Perintah CLI berikut memodifikasi RDS yang ada untuk instans SQL Server DB untuk menggunakan domain AD yang dikelola sendiri.

Untuk Linux, macOS, atau Unix:

```
aws rds modify-db-instance \
    --db-instance-identifier my-DB-instance \
    --domain-fqdn my_AD_domain.my_AD.my_domain \
    --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain \
    --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ 
    --domain-dns-ips "10.11.12.13" "10.11.12.14"
```

Untuk Windows:

```
aws rds modify-db-instance ^
    --db-instance-identifier my-DBinstance ^
    --domain-fqdn my_AD_domain.my_AD.my_domain ^
    --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain ^
    --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" ^ 
    --domain-dns-ips "10.11.12.13" "10.11.12.14"
```

Perintah CLI berikut menghapus instance RDS untuk SQL Server DB dari domain AD yang dikelola sendiri.

Untuk Linux, macOS, atau Unix:

```
aws rds modify-db-instance \
    --db-instance-identifier my-DB-instance \
    --disable-domain
```

Untuk Windows:

```
aws rds modify-db-instance ^
    --db-instance-identifier my-DB-instance ^
    --disable-domain
```

## Langkah 2: Menggunakan Kerberos atau Otentikasi NTLM
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.KerbNTLM"></a>

### Otentikasi NTLM
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.KerbNTLM.NTLM"></a>

Setiap instans Amazon RDS DB memiliki titik akhir dan setiap titik akhir memiliki nama DNS dan nomor port untuk instans DB. Untuk menghubungkan instans basis Anda menggunakan aplikasi klien SQL, Anda memerlukan nama dan nomor port DNS untuk instans tersebut. Untuk mengautentikasi menggunakan otentikasi NTLM, Anda harus terhubung ke titik akhir RDS atau titik akhir pendengar jika Anda menggunakan penerapan Multi-AZ.

Selama pemeliharaan database yang direncanakan atau gangguan layanan yang tidak direncanakan, Amazon RDS secara otomatis gagal ke database up-to-date sekunder sehingga operasi dapat dilanjutkan dengan cepat tanpa intervensi manual. Contoh primer dan sekunder menggunakan titik akhir yang sama, yang alamat jaringan fisiknya bertransisi ke sekunder sebagai bagian dari proses failover. Anda tidak perlu mengonfigurasi ulang aplikasi Anda saat terjadi failover.

### Autentikasi Kerberos
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.Kerb"></a>

Otentikasi berbasis Kerberos untuk RDS untuk SQL Server memerlukan koneksi dibuat ke Service Principal Name (SPN) tertentu. Namun, setelah peristiwa failover, aplikasi mungkin tidak mengetahui SPN baru. Untuk mengatasi hal ini, RDS untuk SQL Server menawarkan endpoint berbasis Kerberos.

Titik akhir berbasis Kerberos mengikuti format tertentu. Jika titik akhir RDS Anda`rds-instance-name.account-region-hash.aws-region.rds.amazonaws.com`, titik akhir berbasis Kerberos yang sesuai adalah. `rds-instance-name.account-region-hash.aws-region.awsrds.fully qualified domain name (FQDN)`

Misalnya, jika titik akhir RDS adalah `ad-test.cocv6zwtircu.us-east-1.rds.amazonaws.com` dan nama domainnya`corp-ad.company.com`, titik akhir berbasis Kerberos akan menjadi. `ad-test.cocv6zwtircu.us-east-1.awsrds.corp-ad.company.com`

Titik akhir berbasis Kerberos ini dapat digunakan untuk mengautentikasi dengan instance SQL Server menggunakan Kerberos, bahkan setelah peristiwa failover, karena titik akhir diperbarui secara otomatis untuk menunjuk ke SPN baru dari instance SQL Server utama.

### Menemukan CNAME Anda
<a name="USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CNAME"></a>

Untuk menemukan CNAME Anda, sambungkan ke pengontrol domain Anda dan buka **DNS Manager**. Arahkan ke **Zona Pencarian Maju** dan FQDN Anda.

**Arahkan melalui **awsrds,** aws-region, dan **hash spesifik akun dan wilayah**.**

![\[Modifikasi jumlah penyimpanan untuk instans DB\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/kerb-endpoint-selfManagedAD-RDSMS.png)


Jika setelah menghubungkan CNAME dari klien jarak jauh, koneksi NTLM dikembalikan, periksa apakah port yang diperlukan diizinkan.

Untuk memeriksa apakah koneksi Anda menggunakan Kerberos, jalankan kueri berikut:

```
SELECT net_transport, auth_scheme
    FROM sys.dm_exec_connections
    WHERE session_id = @@SSPID;
```

Jika instans Anda mengembalikan koneksi NTLM saat Anda terhubung ke titik akhir Kerberos, verifikasi konfigurasi jaringan dan konfigurasi pengguna Anda. Lihat [Konfigurasikan konektivitas jaringan Anda](USER_SQLServer_SelfManagedActiveDirectory.Requirements.md#USER_SQLServer_SelfManagedActiveDirectory.Requirements.NetworkConfig).

## Langkah 3: Buat login SQL Server Otentikasi Windows
<a name="USER_SQLServer_SelfManagedActiveDirectory.CreateLogins"></a>

Gunakan kredensial pengguna master Amazon RDS untuk terhubung ke instans basis data SQL Server sebagaimana Anda lakukan dengan instans DB lain. Karena instans DB digabungkan ke domain AD yang dikelola sendiri, Anda dapat menyediakan login dan pengguna SQL Server. Anda melakukannya dari utilitas pengguna dan grup AD di domain AD yang dikelola sendiri. Izin basis data dikelola melalui izin SQL Server standar yang diberikan dan dicabut ke login Windows ini.

Agar akun layanan domain AD yang dikelola sendiri dapat diautentikasi dengan SQL Server, login SQL Server Windows harus ada untuk akun layanan domain AD yang dikelola sendiri atau grup AD yang dikelola sendiri yang menjadi anggotanya. Kontrol akses fine-grained akan ditangani melalui pemberian dan pencabutan izin pada login SQL Server ini. Akun layanan domain AD yang dikelola sendiri yang tidak memiliki login SQL Server atau milik grup AD yang dikelola sendiri dengan login seperti itu tidak dapat mengakses instans SQL Server DB.

Izin ALTER ANY LOGIN diperlukan untuk membuat login SQL Server AD yang dikelola sendiri. Jika Anda belum membuat login apa pun dengan izin ini, hubungkan sebagai pengguna master instans DB menggunakan Autentikasi SQL Server dan buat login SQL Server AD yang dikelola sendiri dalam konteks pengguna master.

Anda dapat menjalankan perintah bahasa definisi data (DDL) seperti berikut ini untuk membuat login SQL Server untuk akun atau grup layanan domain AD yang dikelola sendiri.

**catatan**  
Tentukan pengguna dan grup yang menggunakan nama login pra-Windows 2000 dalam format `my_AD_domain\my_AD_domain_user`. Anda tidak dapat menggunakan nama prinsipal pengguna (UPN) dalam format *`my_AD_domain_user`*`@`*`my_AD_domain`*.

```
USE [master]
GO
CREATE LOGIN [my_AD_domain\my_AD_domain_user] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english];
GO
```

Untuk informasi selengkapnya, lihat [CREATE LOGIN (Transact-SQL)](https://msdn.microsoft.com/en-us/library/ms189751.aspx) dalam dokumentasi Microsoft Developer Network.

Pengguna (baik manusia maupun aplikasi) dari domain Anda kini dapat terhubung ke instans RDS for SQL Server dari mesin klien yang tergabung dengan domain AD yang dikelola sendiri menggunakan autentikasi Windows.

# Mengelola instans DB dalam Domain Directory Active yang dikelola sendiri
<a name="USER_SQLServer_SelfManagedActiveDirectory.Managing"></a>

 Anda dapat menggunakan konsol AWS CLI, atau Amazon RDS API untuk mengelola instans DB dan hubungannya dengan domain AD yang dikelola sendiri. Misalnya, Anda dapat memindahkan instans DB ke dalam, ke luar dari, atau antar-domain. 

 Misalnya, menggunakan API Amazon RDS, Anda dapat melakukan hal berikut: 
+ Untuk mencoba kembali gabungan domain yang dikelola sendiri untuk keanggotaan yang gagal, gunakan operasi [Modify DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API dan tentukan set parameter yang sama:
  + `--domain-fqdn`
  + `--domain-dns-ips`
  + `--domain-ou`
  + `--domain-auth-secret-arn`
+ Untuk menghapus instans DB dari domain yang dikelola sendiri, gunakan operasi API `ModifyDBInstance` dan tentukan `--disable-domain` untuk parameter domain.
+ Untuk memindahkan instans DB dari satu domain yang dikelola sendiri ke yang lain, gunakan operasi API `ModifyDBInstance` dan tentukan parameter domain untuk domain baru:
  + `--domain-fqdn`
  + `--domain-dns-ips`
  + `--domain-ou`
  + `--domain-auth-secret-arn`
+ Untuk mencantumkan keanggotaan domain AD yang dikelola sendiri untuk setiap instans DB, gunakan operasi [Deskripsikan DBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/DescribeDBInstances.html) API.

## Memahami keanggotaan Domain Directory Active yang dikelola sendiri
<a name="USER_SQLServer_SelfManagedActiveDirectory.Understanding"></a>

Setelah Anda membuat atau memodifikasi instans DB sambil menentukan detail AD, instans akan menjadi anggota domain AD yang dikelola sendiri. AWS Konsol menunjukkan status keanggotaan domain Active Directory yang dikelola sendiri untuk instans DB. Status instans DB dapat berupa salah satu dari daftar berikut: 
+  **joined** – Instans adalah anggota domain AD.
+  **joining** – Instans sedang dalam proses untuk menjadi anggota domain.
+  **pending-join** – Keanggotaan instans tertunda.
+  **pending-maintenance-join**— AWS akan mencoba menjadikan instance sebagai anggota domain AD selama jendela pemeliharaan terjadwal berikutnya.
+  **pending-removal** – Penghapusan instans dari domain tertunda.
+  **pending-maintenance-removal**— AWS akan mencoba menghapus instance dari domain AD selama jendela pemeliharaan terjadwal berikutnya.
+  **failed** – Masalah konfigurasi telah mencegah instans bergabung dengan domain AD. Periksa dan perbaiki konfigurasi Anda sebelum menerbitkan ulang perintah modifikasi instans.
+  **removing** – Instans sedang dalam proses untuk dihapus dari domain AD.

**penting**  
Permintaan untuk menjadi anggota domain AD yang dikelola sendiri dapat gagal karena masalah konektivitas jaringan. Misalnya, Anda dapat membuat instans DB atau memodifikasi instans yang sudah ada dan mengalami kegagalan saat mencoba menjadikan instans DB sebagai anggota suatu domain AD yang dikelola sendiri. Dalam hal ini, terbitkan ulang perintah untuk membuat atau memodifikasi instans DB atau modifikasi instans yang baru dibuat untuk digabungkan ke domain AD yang dikelola sendiri.

# Pemecahan masalah Directory Active yang dikelola sendiri
<a name="USER_SQLServer_SelfManagedActiveDirectory.TroubleshootingSelfManagedActiveDirectory"></a>

Berikut ini adalah masalah yang mungkin Anda hadapi saat menyiapkan atau memodifikasi AD yang dikelola sendiri.


****  

| Kode Kesalahan | Deskripsi | Penyebab umum | Saran pemecahan masalah | 
| --- | --- | --- | --- | 
| Error 2 / 0x2 | Sistem tidak dapat menemukan file yang ditentukan. | Format atau lokasi untuk Unit Organisasi (OU) yang ditentukan dengan parameter `—domain-ou` tidak valid. Akun layanan domain yang ditentukan melalui AWS Secrets Manager tidak memiliki izin yang diperlukan untuk bergabung dengan OU. | Tinjau parameter `—domain-ou`. Pastikan akun layanan domain memiliki izin yang benar ke OU. Untuk informasi selengkapnya, lihat [Konfigurasikan akun layanan domain AD Anda](USER_SQLServer_SelfManagedActiveDirectory.Requirements.md#USER_SQLServer_SelfManagedActiveDirectory.Requirements.DomainAccountConfig).  | 
| Error 5 / 0x5 | Akses ditolak. | Izin yang salah dikonfigurasi untuk akun layanan domain, atau akun komputer sudah ada di domain. | Tinjau izin akun layanan domain di domain, dan verifikasi bahwa akun komputer RDS tidak diduplikasi dalam domain. Anda dapat memverifikasi nama akun komputer RDS dengan menjalankan `SELECT @@SERVERNAME` di instans DB RDS for SQL Server Anda. Jika Anda menggunakan Multi-AZ, coba boot ulang dengan failover lalu verifikasi akun komputer RDS tersebut lagi. Untuk informasi selengkapnya, lihat [Mem-boot ulang instans DB DB](USER_RebootInstance.md). | 
| Error 87 / 0x57 | Parameter salah. | Akun layanan domain yang ditentukan melalui AWS Secrets Manager tidak memiliki izin yang benar. Profil pengguna juga mungkin rusak. | Tinjau persyaratan untuk akun layanan domain. Untuk informasi selengkapnya, lihat [Konfigurasikan akun layanan domain AD Anda](USER_SQLServer_SelfManagedActiveDirectory.Requirements.md#USER_SQLServer_SelfManagedActiveDirectory.Requirements.DomainAccountConfig).  | 
| Error 234 / 0xEA | Unit Organisasi (OU) yang ditentukan tidak ada. | OU yang ditentukan dengan parameter `—domain-ou` tidak ada di AD yang dikelola sendiri. | Tinjau parameter `—domain-ou` dan pastikan OU yang ditentukan ada di AD yang dikelola sendiri. | 
| Error 1326 / 0x52E | Nama pengguna atau kata sandi salah. | Kredensyal akun layanan domain yang disediakan di AWS Secrets Manager berisi nama pengguna yang tidak dikenal atau kata sandi yang buruk. Akun domain mungkin juga dinonaktifkan di AD yang dikelola sendiri. | Pastikan kredensyal yang disediakan di AWS Secrets Manager sudah benar dan akun domain diaktifkan di AD yang dikelola sendiri. | 
| Error 1355 / 0x54B | Domain yang ditentukan tidak ada atau tidak dapat dihubungi. | Domain sedang down, set DNS yang ditentukan tidak dapat IPs dijangkau, atau FQDN yang ditentukan tidak dapat dijangkau. | Tinjau parameter `—domain-dns-ips` dan `—domain-fqdn` untuk memastikannya sudah benar. Tinjau konfigurasi jaringan instans DB RDS for SQL Server Anda dan pastikan AD yang dikelola sendiri dapat dijangkau. Untuk informasi selengkapnya, lihat [Konfigurasikan konektivitas jaringan Anda](USER_SQLServer_SelfManagedActiveDirectory.Requirements.md#USER_SQLServer_SelfManagedActiveDirectory.Requirements.NetworkConfig).  | 
| Kesalahan 1722/0x6BA | Server RPC tidak tersedia. | Ada masalah saat menjangkau layanan RPC domain AD Anda. Hal ini mungkin merupakan masalah layanan atau jaringan. | Validasikan bahwa layanan RPC berjalan pada pengontrol domain Anda dan port TCP `135` dan `49152-65535` dapat dijangkau di domain Anda dari instans DB RDS for SQL Server Anda. | 
|  Kesalahan 1727/0x6BF  |  Panggilan prosedur jarak jauh gagal dan tidak dijalankan.  |  Masalah konektivitas jaringan atau pembatasan firewall yang memblokir komunikasi RPC ke pengontrol domain.  |  Jika menggunakan gabungan domain Cross VPC, validasi komunikasi Cross VPC diatur dengan benar dengan peering VPC atau Transit Gateway. Pastikan port tinggi TCP dapat `49152-65535` dijangkau di domain Anda dari RDS untuk instans SQL Server DB, termasuk kemungkinan pembatasan firewall.  | 
| Error 2224 / 0x8B0 | Akun pengguna sudah ada. | Akun komputer yang mencoba agar ditambahkan ke AD yang dikelola sendiri sudah ada. | Identifikasi akun komputer dengan menjalankan `SELECT @@SERVERNAME` di instans DB SQL RDS for Server Anda lalu hapus dengan hati-hati dari AD yang dikelola sendiri. | 
| Error 2242 / 0x8c2 | Kata sandi pengguna ini telah kedaluwarsa. | Kata sandi untuk akun layanan domain yang ditentukan melalui AWS Secrets Manager telah kedaluwarsa. | Perbarui kata sandi untuk akun layanan domain yang digunakan untuk menggabungkan instans DB RDS for SQL Server Anda ke AD yang dikelola sendiri. | 

Setelah menggabungkan instans DB Anda ke domain Direktori Aktif yang dikelola sendiri, Anda mungkin menerima peristiwa RDS yang terkait dengan kesehatan domain Anda.

```
Unhealthy domain state detected while attempt to verify or 
configure your Kerberos endpoint in your domain on 
node node_n. message
```

Untuk instance multi-AZ, Anda mungkin melihat pelaporan kesalahan untuk node1 dan node2, yang menunjukkan konfigurasi Kerberos instans Anda belum siap untuk failover. Jika terjadi failover, Anda mungkin mengalami kesulitan otentikasi menggunakan Kerberos. Selesaikan masalah konfigurasi untuk memastikan pengaturan Kerberos valid dan mutakhir. Untuk instance Multi-AZ, tidak ada tindakan yang diperlukan untuk menggunakan otentikasi Kerberos pada host utama baru mengingat semua konfigurasi jaringan dan izin sudah ada.

Untuk instance Single-AZ, node1 adalah simpul utama. Jika otentikasi Kerberos Anda tidak berfungsi seperti yang diharapkan, periksa kejadian instance dan selesaikan masalah konfigurasi untuk memastikan penyiapan Kerberos valid dan mutakhir.

## Memulihkan instans DB SQL Server lalu menambahkannya ke domain Directory Active yang dikelola sendiri
<a name="USER_SQLServer_SelfManagedActiveDirectory.Restore"></a>

Anda dapat memulihkan snapshot DB atau melakukan point-in-time pemulihan (PITR) untuk instans SQL Server DB dan kemudian menambahkannya ke domain Active Directory yang dikelola sendiri. Setelah instans DB dipulihkan, modifikasi instans ini menggunakan proses yang dijelaskan dalam [Langkah 1: Membuat atau memodifikasi instance SQL Server DB](USER_SQLServer_SelfManagedActiveDirectory.Joining.md#USER_SQLServer_SelfManagedActiveDirectory.SettingUp.CreateModify) untuk menambahkan instans DB ke domain AD yang dikelola sendiri.

# Bekerja dengan Direktori Aktif AWS Terkelola dengan RDS untuk SQL Server
<a name="USER_SQLServerWinAuth"></a>

Anda dapat menggunakan AWS Managed Microsoft AD untuk mengautentikasi pengguna dengan Windows Authentication ketika mereka terhubung ke RDS Anda untuk instans SQL Server DB. Instans DB bekerja dengan AWS Directory Service for Microsoft Active Directory, juga disebut AWS Managed Microsoft AD, untuk mengaktifkan Windows Authentication. Ketika pengguna mengautentikasi dengan instans DB SQL Server yang tergabung ke domain tepercaya, permintaan autentikasi diteruskan ke direktori domain yang Anda buat dengan Directory Service. 

## Ketersediaan wilayah dan versi
<a name="USER_SQLServerWinAuth.RegionVersionAvailability"></a>

Amazon RDS mendukung penggunaan hanya AWS Managed Microsoft AD untuk Windows Authentication. RDS tidak mendukung penggunaan AD Connector. Untuk informasi lebih lanjut, lihat hal berikut:
+ [Kebijakan kompatibilitas aplikasi untuk AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_app_compatibility.html)
+ [Kebijakan kompatibilitas aplikasi untuk AD Connector](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_connector_app_compatibility.html)

Untuk informasi tentang ketersediaan versi dan Wilayah, lihat [Autentikasi Kerberos dengan RDS for SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.KerberosAuthentication.html#Concepts.RDS_Fea_Regions_DB-eng.Feature.KerberosAuthentication.sq).

## Gambaran umum pengaturan autentikasi Windows
<a name="USER_SQLServerWinAuth.overview"></a>

Amazon RDS menggunakan mode campuran untuk Autentikasi Windows. Pendekatan ini berarti *pengguna master* (nama dan kata sandi yang digunakan untuk membuat instans DB SQL Server) akan menggunakan Autentikasi SQL. Karena akun pengguna master adalah kredensial istimewa, Anda harus membatasi akses ke akun ini.

Untuk mendapatkan Autentikasi Windows menggunakan Microsoft Active Directory on-premise atau yang di-host sendiri, buat sebuah forest trust. Trust dapat bersifat satu atau dua arah. Untuk informasi selengkapnya tentang menyiapkan trust hutan Directory Service, lihat [Kapan membuat hubungan kepercayaan](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_setup_trust.html) dalam *Panduan AWS Directory Service Administrasi*.

Untuk mengatur autentikasi Windows untuk instans DB SQL Server, lakukan langkah-langkah berikut, yang dijelaskan secara lebih terperinci dalam [Mengatur Autentikasi Windows untuk instans DB SQL Server](USER_SQLServerWinAuth.SettingUp.md):

1. Gunakan AWS Managed Microsoft AD, baik dari Konsol Manajemen AWS atau Directory Service API, untuk membuat AWS Managed Microsoft AD direktori. 

1. Jika Anda menggunakan AWS CLI atau Amazon RDS API untuk membuat instans SQL Server DB, buat peran AWS Identity and Access Management (IAM). Peran ini menggunakan kebijakan IAM terkelola `AmazonRDSDirectoryServiceAccess` dan memungkinkan Amazon RDS melakukan panggilan ke direktori Anda. Jika Anda menggunakan konsol untuk membuat instans DB SQL Server, AWS akan membuat peran IAM untuk Anda. 

   Agar peran mengizinkan akses, titik akhir AWS Security Token Service (AWS STS) harus diaktifkan di AWS Wilayah untuk AWS akun Anda. AWS STS endpoint aktif secara default di semua AWS Wilayah, dan Anda dapat menggunakannya tanpa tindakan lebih lanjut. Untuk informasi selengkapnya, lihat [Mengelola AWS STS di Wilayah AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) dalam *Panduan Pengguna IAM*.

1. Buat dan konfigurasikan pengguna dan grup di AWS Managed Microsoft AD direktori menggunakan alat Microsoft Active Directory. Untuk informasi selengkapnya tentang membuat pengguna dan grup di Active Directory Anda, lihat [Kelola pengguna dan grup di AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups.html) dalam *Panduan Administrasi AWS Directory Service *.

1. Jika Anda berencana untuk menemukan direktori dan instans DB yang berbeda VPCs, aktifkan lalu lintas lintas VPC.

1. Gunakan Amazon RDS untuk membuat instans SQL Server DB baru baik dari konsol AWS CLI, atau Amazon RDS API. Dalam permintaan pembuatan, Anda perlu menyediakan pengidentifikasi domain (pengidentifikasi "`d-*`") yang dihasilkan saat Anda membuat direktori dan nama peran yang Anda buat. Anda juga dapat memodifikasi instans DB SQL Server yang sudah ada untuk menggunakan Autentikasi Windows dengan mengatur domain dan parameter peran IAM untuk instans DB.

1. Gunakan kredensial pengguna master Amazon RDS untuk terhubung ke SQL Server DB instance saat Anda melakukan DB instance lainnya. Karena instans DB bergabung ke AWS Managed Microsoft AD domain, Anda dapat menyediakan login SQL Server dan pengguna dari pengguna dan grup Active Directory di domain mereka. (Hal ini dikenal sebagai login “Windows” SQL Server.) Izin basis data dikelola melalui izin SQL Server standar yang diberikan dan dicabut ke login Windows ini. 

Saat Anda membuat RDS yang terhubung dengan domain untuk instans SQL Server DB menggunakan konsol Amazon RDS, AWS secara otomatis membuat peran IAM. `rds-directoryservice-access-role` Peran ini penting untuk mengelola instans yang terhubung dengan domain dan diperlukan untuk operasi berikut:
+ Membuat perubahan konfigurasi pada instance SQL Server yang terhubung dengan domain
+ Mengelola pengaturan integrasi Direktori Aktif
+ Melakukan operasi pemeliharaan pada instans yang bergabung dengan domain

**penting**  
Jika Anda menghapus peran `rds-directoryservice-access-role` IAM, Anda tidak dapat membuat perubahan pada instance SQL Server yang terhubung dengan domain melalui konsol Amazon RDS atau API. Mencoba memodifikasi instance menghasilkan pesan kesalahan yang menyatakan: Anda tidak memiliki izin untuk iam:. CreateRole Untuk meminta akses, salin teks berikut dan kirimkan ke AWS administrator Anda.  
Kesalahan ini terjadi karena Amazon RDS perlu membuat ulang peran untuk mengelola koneksi domain, tetapi tidak memiliki izin yang diperlukan. Selain itu, kesalahan ini tidak masuk CloudTrail, yang dapat membuat pemecahan masalah menjadi lebih sulit.

Jika Anda secara tidak sengaja menghapus`rds-directoryservice-access-role`, Anda harus memiliki `iam:CreateRole` izin untuk membuatnya kembali sebelum Anda dapat membuat perubahan apa pun pada instance SQL Server yang terhubung dengan domain Anda. Untuk membuat ulang peran secara manual, pastikan itu memiliki kebijakan `AmazonRDSDirectoryServiceAccess` terkelola yang dilampirkan dan hubungan kepercayaan yang sesuai yang memungkinkan layanan RDS untuk mengambil peran tersebut.

# Membuat titik akhir untuk autentikasi Kerberos
<a name="USER_SQLServerWinAuth.KerberosEndpoint"></a>

Autentikasi berbasis Kerberos mengharuskan bahwa titik akhir terdiri dari nama host yang ditentukan pelanggan, titik, lalu nama domain yang sepenuhnya memenuhi syarat (FQDN). Misalnya, berikut ini adalah contoh titik akhir yang mungkin Anda gunakan dengan autentikasi berbasis Kerberos. Dalam contoh ini, nama host instans DB SQL Server adalah `ad-test` dan nama domainnya adalah `corp-ad.company.com`. 

```
ad-test.corp-ad.company.com
```

Jika Anda ingin memastikan koneksi Anda menggunakan Kerberos, jalankan kueri berikut: 

```
1. SELECT net_transport, auth_scheme 
2.   FROM sys.dm_exec_connections 
3.  WHERE session_id = @@SPID;
```

# Mengatur Autentikasi Windows untuk instans DB SQL Server
<a name="USER_SQLServerWinAuth.SettingUp"></a>

Anda menggunakan AWS Directory Service for Microsoft Active Directory, juga disebut AWS Managed Microsoft AD, untuk mengatur Otentikasi Windows untuk instans SQL Server DB. Untuk mengatur Autentikasi Windows, lakukan langkah-langkah berikut. 

## Langkah 1: Buat direktori menggunakan AWS Directory Service for Microsoft Active Directory
<a name="USER_SQLServerWinAuth.SettingUp.CreateDirectory"></a>

Directory Service membuat Microsoft Active Directory yang dikelola sepenuhnya di AWS Cloud. Saat Anda membuat AWS Managed Microsoft AD direktori, Directory Service buat dua pengontrol domain dan server Domain Name Service (DNS) atas nama Anda. Server direktori dibuat dalam dua subnet di dua Zona Ketersediaan yang berbeda dalam sebuah VPC. Redundansi ini membantu memastikan bahwa direktori Anda tetap dapat diakses bahkan jika terjadi kegagalan.

 Saat Anda membuat AWS Managed Microsoft AD direktori, Directory Service lakukan tugas-tugas berikut atas nama Anda: 
+ Mengatur Microsoft Active Directory dengan VPC. 
+ Membuat akun administrator direktori dengan Admin nama pengguna dan kata sandi yang ditentukan. Anda menggunakan akun ini untuk mengelola direktori Anda.
+ Membuat grup keamanan untuk pengontrol direktori.

Saat Anda meluncurkan AWS Directory Service for Microsoft Active Directory, AWS buat Unit Organisasi (OU) yang berisi semua objek direktori Anda. OU ini, yang memiliki nama NetBIOS yang Anda ketik saat membuat direktori Anda, terletak di root domain. Root domain dimiliki dan dikelola oleh AWS. 

 Akun *admin* yang dibuat dengan direktori AWS Managed Microsoft AD Anda memiliki izin untuk aktivitas administratif paling umum untuk OU Anda: 
+ Membuat, memperbarui, atau menghapus pengguna, grup, dan komputer. 
+ Menambahkan sumber daya ke domain Anda seperti server file atau cetak, lalu memberikan izin untuk sumber daya tersebut ke pengguna dan grup di OU Anda. 
+ Buat tambahan OUs dan wadah.
+ Delegasikan otoritas. 
+ Membuat dan menautkan kebijakan grup. 
+ Memulihkan objek yang dihapus dari Keranjang Sampah Directory Active. 
+ Jalankan PowerShell modul AD dan DNS Windows pada Layanan Web Direktori Aktif. 

Akun admin juga memiliki hak untuk melakukan aktivitas di seluruh domain berikut: 
+ Mengelola konfigurasi DNS (menambahkan, menghapus, atau memperbarui catatan, zona, dan penerus). 
+ Lihat log peristiwa DNS. 
+ Lihat log peristiwa keamanan. 

**Untuk membuat direktori dengan AWS Managed Microsoft AD**

1. Di panel navigasi [konsol Directory Service](https://console.aws.amazon.com/directoryservicev2/), pilih **Direktori**, lalu pilih **Siapkan direktori**.

1. Pilih **AWS Managed Microsoft AD**. Ini adalah satu-satunya opsi yang saat ini didukung untuk digunakan dengan Amazon RDS.

1. Pilih **Berikutnya**.

1. Di halaman **Masukkan informasi direktori**, berikan informasi berikut:   
**Edisi**  
 Pilih edisi sesuai kebutuhan Anda.  
**Nama DNS direktori**  
Nama yang sepenuhnya memenuhi syarat untuk direktori, seperti `corp.example.com`. Nama yang lebih panjang dari 47 karakter tidak didukung oleh SQL Server.  
**Nama NetBIOS direktori**  
Nama pendek opsional untuk direktori, seperti `CORP`.   
**Deskripsi direktori**  
Deskripsi opsional untuk direktori.   
**Kata sandi admin**  
Kata sandi untuk administrator direktori. Proses pembuatan direktori akan membuat akun administrator dengan nama pengguna Admin dan kata sandi ini.   
Kata sandi administrator direktori tidak dapat menyertakan kata `admin`. Kata sandi peka huruf besar/kecil dan harus memiliki panjang 8–64 karakter. Kata sandi juga harus berisi minimal satu karakter dalam tiga dari empat kategori berikut:   
   + Huruf kecil (a-z)
   + Huruf besar (A-Z)
   + Angka (0-9)
   + Karakter non-alfanumerik (\$1\$1@\$1\$1%^&\$1\$1-\$1=`\$1\$1()\$1\$1[]:;"'<>,.?/)   
**Konfirmasi kata sandi**  
Ketik ulang kata sandi administrator. 

1. Pilih **Berikutnya**.

1. Di halaman **Pilih VPC dan subnet**, berikan informasi berikut:  
**VPC**  
Pilih VPC untuk direktori.  
Anda dapat menemukan direktori dan instans DB secara berbeda VPCs, tetapi jika Anda melakukannya, pastikan untuk mengaktifkan lalu lintas lintas VPC. Untuk informasi selengkapnya, lihat [Langkah 4: Aktifkan lalu lintas antar-VPC antara direktori dan instans DB](#USER_SQLServerWinAuth.SettingUp.VPC-Peering).  
**Subnet**  
Pilih subnet untuk server direktori. Kedua subnet harus berada di Zona Ketersediaan yang berbeda.

1. Pilih **Berikutnya**.

1. Tinjau informasi direktori. Jika perubahan diperlukan, pilih **Sebelumnya**. Jika informasi sudah benar, pilih **Buat direktori**.   
![\[Periksa dan buat halaman\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/WinAuth2.png)

Pembuatan direktori memerlukan waktu beberapa menit. Setelah berhasil dibuat, nilai **Status** berubah menjadi **Aktif**.

Untuk melihat informasi tentang direktori Anda, pilih ID direktori di daftar direktori. Catat **ID Direktori**. Anda memerlukan nilai ini saat membuat atau memodifikasi instans DB SQL Server Anda.

![\[Halaman detail direktori\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/WinAuth3.png)


## Langkah 2: Buat peran IAM yang akan digunakan oleh Amazon RDS
<a name="USER_SQLServerWinAuth.SettingUp.CreateIAMRole"></a>

Jika Anda menggunakan konsol untuk membuat instans DB SQL Server, Anda dapat melewati langkah ini. Jika Anda menggunakan CLI atau API RDS untuk membuat instans DB SQL Server Anda, Anda harus membuat peran IAM yang menggunakan kebijakan IAM terkelola `AmazonRDSDirectoryServiceAccess`. Peran ini memungkinkan Amazon RDS untuk melakukan panggilan ke Directory Service untuk Anda. 

Jika Anda menggunakan kebijakan khusus untuk bergabung dengan domain, daripada menggunakan `AmazonRDSDirectoryServiceAccess` kebijakan AWS-managed, pastikan Anda mengizinkan `ds:GetAuthorizedApplicationDetails` tindakan tersebut. Persyaratan ini berlaku mulai Juli 2019, karena adanya perubahan pada Directory Service API.

Kebijakan IAM berikut, `AmazonRDSDirectoryServiceAccess`, menyediakan akses ke Directory Service.

**Example Kebijakan IAM untuk menyediakan akses ke Directory Service**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
            "ds:DescribeDirectories", 
            "ds:AuthorizeApplication", 
            "ds:UnauthorizeApplication",
            "ds:GetAuthorizedApplicationDetails"
        ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
```

Sebaiknya gunakan kunci konteks kondisi global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) dan [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) dalam hubungan kepercayaan berbasis sumber daya untuk membatasi izin layanan ke sumber daya tertentu. Ini adalah cara yang paling efektif untuk melindungi dari [masalah confused deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

Anda dapat menggunakan kedua kunci konteks kondisi global tersebut dan nilai `aws:SourceArn` berisi ID akun. Dalam hal ini, nilai `aws:SourceAccount` dan akun dalam nilai `aws:SourceArn` harus menggunakan ID akun yang sama saat digunakan dalam pernyataan yang sama.
+ Gunakan `aws:SourceArn` jika Anda menginginkan akses lintas layanan untuk satu sumber daya.
+ Gunakan `aws:SourceAccount` jika Anda ingin mengizinkan sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas layanan.

Dalam relasi kepercayaan, pastikan untuk menggunakan kunci konteks kondisi global `aws:SourceArn` dengan Amazon Resource Name (ARN) dari sumber daya yang mengakses peran. Untuk Autentikasi Windows, pastikan untuk menyertakan instans DB, seperti yang ditunjukkan pada contoh berikut.

**Example relasi kepercayaan dengan kunci konteks kondisi global untuk Autentikasi Windows**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "rds.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": [
                        "arn:aws:rds:Region:my_account_ID:db:db_instance_identifier"
                    ]
                }
            }
        }
    ]
}
```

Buat peran IAM menggunakan kebijakan IAM ini dan relasi kepercayaan. Untuk informasi selengkapnya tentang pembuatan peran IAM, lihat [Membuat kebijakan yang dikelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#create-managed-policy-console) dalam *Panduan Pengguna IAM*.

## Langkah 3: Buat dan konfigurasikan pengguna dan grup
<a name="USER_SQLServerWinAuth.SettingUp.CreateUsers"></a>

Anda dapat membuat pengguna dan grup dengan alat Active Directory Users and Computers. Alat ini merupakan salah satu alat Active Directory Domain Services dan Active Directory Lightweight Directory Services. Pengguna merepresentasikan orang individu atau entitas yang memiliki akses ke direktori Anda. Grup sangat berguna untuk memberikan atau menolak hak akses ke grup pengguna, daripada harus menerapkan hak akses tersebut ke setiap pengguna.

Untuk membuat pengguna dan grup dalam Directory Service direktori, Anda harus terhubung ke instans Windows EC2 yang merupakan anggota Directory Service direktori. Anda juga harus masuk sebagai pengguna yang memiliki hak akses untuk membuat pengguna dan grup. Untuk informasi selengkapnya, lihat [Menambahkan pengguna dan grup (Simple AD dan AWS Managed Microsoft AD)](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/creating_ad_users_and_groups.html) di *Panduan AWS Directory Service Administrasi*.

## Langkah 4: Aktifkan lalu lintas antar-VPC antara direktori dan instans DB
<a name="USER_SQLServerWinAuth.SettingUp.VPC-Peering"></a>

Jika Anda ingin menempatkan direktori dan instans DB dalam VPC yang sama, lewati langkah ini dan lanjutkan ke [Langkah 5: Buat atau ubah instans DB SQL Server](#USER_SQLServerWinAuth.SettingUp.CreateModify).

[Jika Anda berencana untuk menemukan direktori dan instans DB yang berbeda VPCs, konfigurasikan lalu lintas lintas VPC menggunakan pengintip VPC atau Transit Gateway.AWS](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)

Prosedur berikut memungkinkan lalu lintas antara VPCs menggunakan VPC peering. Ikuti petunjuk di [Apa yang dimaksud dengan peering VPC?](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html) dalam *Panduan Peering Amazon Virtual Private Cloud*.

**Untuk mengaktifkan lalu lintas VPC menggunakan peering VPC**

1. Siapkan aturan perutean VPC yang sesuai untuk memastikan lalu lintas jaringan dapat berjalan dua arah.

1. Pastikan grup keamanan instans DB dapat menerima lalu lintas masuk dari grup keamanan direktori.

1. Pastikan bahwa tidak ada aturan Access Control List (ACL) jaringan untuk memblokir lalu lintas.

Jika AWS akun lain memiliki direktori, Anda harus berbagi direktori.

**Untuk berbagi direktori antar AWS akun**

1. *Mulai berbagi direktori dengan AWS akun tempat instans DB akan dibuat dengan mengikuti petunjuk di [Tutorial: Berbagi AWS Managed Microsoft AD direktori Anda untuk domain EC2 yang mulus dalam Panduan Administrasi](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_directory_sharing.html).Directory Service *

1. Masuk ke Directory Service konsol menggunakan akun untuk instans DB, dan pastikan domain memiliki `SHARED` status sebelum melanjutkan.

1. Saat masuk ke Directory Service konsol menggunakan akun untuk instans DB, perhatikan nilai **ID Direktori**. Anda perlu menggunakan ID direktori ini untuk menggabungkan instans DB ke domain.

## Langkah 5: Buat atau ubah instans DB SQL Server
<a name="USER_SQLServerWinAuth.SettingUp.CreateModify"></a>

Buat atau ubah instans DB SQL Server untuk digunakan dengan direktori Anda. Anda dapat menggunakan konsol, CLI, atau API RDS untuk mengaitkan suatu instans DB dengan direktori. Anda dapat menyesuaikan waktu ini dengan cara berikut:
+ Buat instance SQL Server DB baru menggunakan konsol, perintah [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)CLI, atau operasi DBInstance Create [RDS](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) API.

  Untuk petunjuk, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+ Ubah instance SQL Server DB yang ada menggunakan konsol, perintah [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)CLI, atau operasi DBInstance Modify [RDS](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API.

  Untuk petunjuk, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).
+ [Pulihkan instans SQL Server DB dari snapshot DB menggunakan konsol, perintah CLI [restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html), atau operasi Restore From RDS API. DBInstance DBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)

  Untuk petunjuk, lihat [Memulihkan ke instans DB](USER_RestoreFromSnapshot.md).
+ Kembalikan instance SQL Server DB ke point-in-time menggunakan konsol, perintah [restore-db-instance-to- point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) CLI, atau operasi DBInstance ToPointInTime Restore [RDS](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) API.

  Untuk petunjuk, lihat [Memulihkan instans DB ke waktu yang ditentukan untuk Amazon RDS](USER_PIT.md).

 Autentikasi Windows hanya mendukung instans DB SQL Server di VPC. 

 Agar instans DB dapat menggunakan direktori domain yang Anda buat, hal berikut diperlukan: 
+  Untuk **Direktori**, Anda harus memilih pengidentifikasi domain (`d-ID`) yang dibuat saat Anda membuat direktori.
+  Pastikan bahwa grup keamanan VPC memiliki aturan keluar yang memungkinkan instans DB berkomunikasi dengan direktori.

![\[Direktori Autentikasi Windows Microsoft SQL Server\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/WinAuth1.png)


Saat Anda menggunakan AWS CLI, parameter berikut diperlukan agar instans DB dapat menggunakan direktori yang Anda buat:
+ Untuk parameter `--domain`, gunakan pengidentifikasi domain (`d-ID`) yang dihasilkan saat Anda membuat direktori.
+ Untuk parameter `--domain-iam-role-name`, gunakan peran yang Anda buat yang menggunakan kebijakan IAM terkelola `AmazonRDSDirectoryServiceAccess`.

Misalnya, perintah CLI berikut memodifikasi instans DB untuk menggunakan direktori.

Untuk Linux, macOS, atau Unix:

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --domain d-ID \
    --domain-iam-role-name role-name
```

Untuk Windows:

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --domain d-ID ^
    --domain-iam-role-name role-name
```

**penting**  
Jika Anda memodifikasi instans DB untuk mengaktifkan autentikasi Kerberos, boot ulang instans DB tersebut setelah membuat perubahan.

## Langkah 6: Buat login SQL Server Autentikasi Windows
<a name="USER_SQLServerWinAuth.CreateLogins"></a>

Gunakan kredensial pengguna master Amazon RDS untuk terhubung ke instans basis data SQL Server sebagaimana Anda lakukan dengan instans DB lain. Karena instans DB bergabung dengan AWS Managed Microsoft AD domain, Anda dapat menyediakan login dan pengguna SQL Server. Anda melakukannya dari pengguna dan grup Active Directory di domain Anda. Izin basis data dikelola melalui izin SQL Server standar yang diberikan dan dicabut ke login Windows ini.

Agar pengguna Active Directory dapat mengautentikasi dengan SQL Server, login Windows SQL Server harus ada untuk pengguna tersebut atau grup tempat pengguna tersebut menjadi anggota. Kontrol akses fine-grained akan ditangani melalui pemberian dan pencabutan izin pada login SQL Server ini. Pengguna yang tidak memiliki login SQL Server atau yang tidak termasuk dalam grup dengan login tersebut tidak akan dapat mengakses instans DB SQL Server.

Izin ALTER ANY LOGIN diperlukan untuk membuat login Active Directory SQL Server. Jika Anda belum membuat login apa pun dengan izin ini, hubungkan sebagai pengguna master instans DB menggunakan Autentikasi SQL Server.

Jalankan perintah bahasa definisi data (DDL) berikut untuk membuat login SQL Server untuk pengguna atau grup Directory Active.

**catatan**  
Tentukan pengguna dan grup yang menggunakan nama login pra-Windows 2000 dalam format `domainName\login_name`. Anda tidak dapat menggunakan nama prinsipal pengguna (UPN) dalam format *`login_name`*`@`*`DomainName`*.  
Anda hanya dapat membuat login Otentikasi Windows pada contoh RDS untuk SQL Server dengan menggunakan pernyataan T-SQL. Anda tidak dapat menggunakan studio Manajemen SQL Server untuk membuat login Otentikasi Windows.

```
USE [master]
GO
CREATE LOGIN [mydomain\myuser] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english];
GO
```

Untuk informasi selengkapnya, lihat [CREATE LOGIN (Transact-SQL)](https://msdn.microsoft.com/en-us/library/ms189751.aspx) dalam dokumentasi Microsoft Developer Network.

Pengguna (baik manusia maupun aplikasi) dari domain Anda kini dapat terhubung ke instans RDS for SQL Server dari mesin klien yang tergabung dengan domain menggunakan autentikasi Windows.

# Mengelola DB instance di Domain
<a name="USER_SQLServerWinAuth.Managing"></a>

 Anda dapat menggunakan konsol, AWS CLI, atau Amazon RDS API untuk mengelola instans DB dan hubungannya dengan domain Anda. Misalnya, Anda dapat memindahkan instans DB ke dalam, ke luar dari, atau antar-domain. 

 Misalnya, menggunakan API Amazon RDS, Anda dapat melakukan hal berikut: 
+  Untuk mencoba kembali domain join untuk keanggotaan yang gagal, gunakan operasi [Modify DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API dan tentukan ID direktori keanggotaan saat ini. 
+  Untuk memperbarui nama peran IAM untuk keanggotaan, gunakan operasi API `ModifyDBInstance` dan tentukan ID direktori keanggotaan saat ini dan peran IAM baru. 
+  Untuk menghapus instans DB dari domain, gunakan operasi API `ModifyDBInstance` dan tentukan `none` sebagai parameter domain. 
+  Untuk memindahkan instans DB dari satu domain ke domain lain, gunakan operasi API `ModifyDBInstance` dan tentukan pengidentifikasi domain baru sebagai parameter domain. 
+  Untuk mencantumkan keanggotaan setiap instans DB, gunakan operasi [DBInstancesDescribe](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/DescribeDBInstances.html) API. 

## Memahami keanggotaan Domain
<a name="USER_SQLServerWinAuth.Understanding"></a>

 Setelah Anda membuat atau memodifikasi instans DB Anda, instans ini akan menjadi anggota domain. AWS Konsol menunjukkan status keanggotaan domain untuk instans DB. Status DB instance dapat menjadi salah satu dari yang berikut: 
+  **joined** – Instans adalah anggota domain.
+  **joining** – Instans sedang dalam proses untuk menjadi anggota domain.
+  **pending-join** – Keanggotaan instans tertunda.
+  **pending-maintenance-join**— AWS akan mencoba menjadikan instance sebagai anggota domain selama jendela pemeliharaan terjadwal berikutnya.
+  **pending-removal** – Penghapusan instans dari domain tertunda.
+  **pending-maintenance-removal**— AWS akan mencoba untuk menghapus instance dari domain selama jendela pemeliharaan terjadwal berikutnya.
+  **failed** – Masalah konfigurasi telah mencegah instans bergabung dengan domain. Periksa dan perbaiki konfigurasi Anda sebelum menerbitkan ulang perintah modifikasi instans.
+  **removing** – Instans sedang dalam proses untuk dihapus dari domain.

Permintaan untuk menjadi anggota domain dapat gagal karena masalah konektivitas jaringan atau peran IAM yang salah. Misalnya, Anda dapat membuat instans DB atau memodifikasi instans yang sudah ada dan mengalami kegagalan saat mencoba menjadikan instans DB sebagai anggota suatu domain. Dalam hal ini, terbitkan ulang perintah untuk membuat atau memodifikasi instans DB atau modifikasi instans yang baru dibuat untuk digabungkan ke domain.

# Menghubungkan ke SQL Server dengan autentikasi Windows
<a name="USER_SQLServerWinAuth.Connecting"></a>

Untuk terhubung ke SQL Server dengan Autentikasi Windows, Anda harus masuk ke komputer yang tergabung dengan domain sebagai pengguna domain. Setelah meluncurkan SQL Server Management Studio, pilih **Autentikasi Windows** sebagai jenis autentikasi, seperti yang ditunjukkan berikut ini.

![\[Terhubung ke SQL Server menggunakan Autentikasi Windows\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/WinAuth4.png)


## Memulihkan instans DB SQL Server lalu menambahkannya ke domain
<a name="USER_SQLServerWinAuth.Restore"></a>

Anda dapat mengembalikan snapshot DB atau melakukan point-in-time pemulihan (PITR) untuk instance SQL Server DB dan kemudian menambahkannya ke domain. Setelah instans DB dipulihkan, modifikasi instans ini menggunakan proses yang dijelaskan dalam [Langkah 5: Buat atau ubah instans DB SQL Server](USER_SQLServerWinAuth.SettingUp.md#USER_SQLServerWinAuth.SettingUp.CreateModify) untuk menambahkan instans DB ke domain.

# Upgrade mesin Microsoft SQL Server DB
<a name="USER_UpgradeDBInstance.SQLServer"></a>

Ketika Amazon RDS mendukung versi baru mesin basis data, Anda dapat meningkatkan instans DB Anda ke versi baru. Ada dua jenis peningkatan untuk instans DB SQL Server: peningkatan versi mayor dan versi minor. 

*Peningkatan versi mayor* dapat berisi perubahan basis data yang tidak memiliki kompatibilitas mundur dengan aplikasi yang ada. Akibatnya, Anda harus *secara manual* melakukan upgrade versi utama dari instans DB Anda. Anda dapat memulai peningkatan versi mayor dengan mengubah instans DB Anda. Namun, sebelum melakukan peningkatan versi mayor, kami sarankan agar Anda menguji peningkatan tersebut dengan mengikuti langkah-langkah yang dijelaskan dalam [Menguji upgrade RDS untuk SQL Server](USER_UpgradeDBInstance.SQLServer.UpgradeTesting.md). 

*Upgrade versi minor* hanya berisi perubahan yang kompatibel dengan aplikasi yang ada. Anda dapat memutakhirkan versi minor untuk instans DB Anda dengan dua cara:
+ *Secara manual* - Ubah instans DB Anda untuk memulai pemutakhiran
+ *Secara otomatis* - Aktifkan upgrade versi minor otomatis untuk instans DB Anda

Saat Anda mengaktifkan upgrade versi minor otomatis, RDS untuk SQL Server secara otomatis memutakhirkan instans database Anda selama jendela pemeliharaan terjadwal ketika pembaruan keamanan penting tersedia dalam versi minor yang lebih baru.

Untuk versi mesin minor setelah`16.00.4120.1`,`15.00.4365.2`,`14.00.3465.1`,`13.00.6435.1`, protokol keamanan berikut dinonaktifkan secara default:
+ `rds.tls10`(Protokol TLS 1.0)
+ `rds.tls11`(Protokol TLS 1.1)
+ `rds.rc4`(RC4 sandi)
+ `rds.curve25519`(Enkripsi Curve25519)
+ `rds.3des168`(Enkripsi Triple DES)

Untuk versi engine sebelumnya, Amazon RDS mengaktifkan protokol keamanan ini secara default.

```
...

"ValidUpgradeTarget": [
    {
        "Engine": "sqlserver-se",
        "EngineVersion": "14.00.3281.6.v1",
        "Description": "SQL Server 2017 14.00.3281.6.v1",
        "AutoUpgrade": false,
        "IsMajorVersionUpgrade": false
    }
...
```

Untuk informasi selengkapnya tentang cara melakukan peningkatan, lihat [Meningkatkan instans DB SQL Server](#USER_UpgradeDBInstance.SQLServer.Upgrading). Untuk informasi tentang versi SQL Server yang tersedia di Amazon RDS, lihat [Amazon RDS for Microsoft SQL Server](CHAP_SQLServer.md).

Amazon RDS juga mendukung kebijakan peluncuran pemutakhiran untuk mengelola peningkatan versi minor otomatis di beberapa sumber daya database dan. Akun AWS Untuk informasi selengkapnya, lihat [Menggunakan kebijakan peluncuran AWS Organizations pemutakhiran untuk peningkatan versi minor otomatis](RDS.Maintenance.AMVU.UpgradeRollout.md).

**Topics**
+ [Upgrade versi utama RDS untuk Server SQL](USER_UpgradeDBInstance.SQLServer.Major.md)
+ [Pertimbangan untuk peningkatan SQL Server](USER_UpgradeDBInstance.SQLServer.Considerations.md)
+ [Menguji upgrade RDS untuk SQL Server](USER_UpgradeDBInstance.SQLServer.UpgradeTesting.md)
+ [Meningkatkan instans DB SQL Server](#USER_UpgradeDBInstance.SQLServer.Upgrading)
+ [Meningkatkan instans DB yang dihentikan sebelum dukungan berakhir](#USER_UpgradeDBInstance.SQLServer.DeprecatedVersions)

# Upgrade versi utama RDS untuk Server SQL
<a name="USER_UpgradeDBInstance.SQLServer.Major"></a>

Amazon RDS saat ini mendukung upgrade versi utama berikut ke instans Microsoft SQL Server DB.

Anda dapat memutakhirkan instans DB yang ada ke SQL Server 2017 atau 2019 dari versi apa pun kecuali SQL Server 2008. Untuk meng-upgrade dari SQL Server 2008, pertama upgrade ke salah satu versi lainnya.


****  

| Versi saat ini | Versi peningkatan yang didukung | 
| --- | --- | 
|  SQLServer 2019  |  SQLServer 2022  | 
|  SQLServer 2017  |  SQLServer 2022 SQLServer 2019  | 
|  SQLServer 2016  |  SQLServer 2022 SQLServer 2019 SQLServer 2017  | 

Anda dapat menggunakan AWS CLI kueri, seperti contoh berikut, untuk menemukan peningkatan yang tersedia untuk versi mesin database tertentu.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws rds describe-db-engine-versions \
    --engine sqlserver-se \
    --engine-version 14.00.3281.6.v1 \
    --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" \
    --output table
```
Untuk Windows:  

```
aws rds describe-db-engine-versions ^
    --engine sqlserver-se ^
    --engine-version 14.00.3281.6.v1 ^
    --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^
    --output table
```
Output menunjukkan bahwa Anda dapat memutakhirkan versi 14.00.3281.6 ke versi SQL Server 2017 atau 2019 terbaru yang tersedia.  

```
--------------------------
|DescribeDBEngineVersions|
+------------------------+
|      EngineVersion     |
+------------------------+
|  14.00.3294.2.v1       |
|  14.00.3356.20.v1      |
|  14.00.3381.3.v1       |
|  14.00.3401.7.v1       | 
|  14.00.3421.10.v1      |
|  14.00.3451.2.v1       |
|  15.00.4043.16.v1      |
|  15.00.4073.23.v1      |
|  15.00.4153.1.v1       |
|  15.00.4198.2.v1       |
|  15.00.4236.7.v1       |
+------------------------+
```

## Tingkat kompatibilitas basis data
<a name="USER_UpgradeDBInstance.SQLServer.Major.Compatibility"></a>

Anda dapat menggunakan tingkat kompatibilitas database Microsoft SQL Server untuk menyesuaikan beberapa perilaku database untuk meniru versi SQL Server sebelumnya. Untuk informasi selengkapnya, lihat [Compatibility level](https://msdn.microsoft.com/en-us/library/bb510680.aspx) dalam dokumentasi Microsoft. Saat Anda meningkatkan instans DB, semua basis data yang ada tetap memiliki tingkat kompatibilitas aslinya. 

Anda dapat mengubah tingkat kompatibilitas database dengan menggunakan ALTER DATABASE perintah. Misalnya, untuk mengubah database bernama `customeracct` agar kompatibel dengan SQL Server 2016, keluarkan perintah berikut: 

```
1. ALTER DATABASE customeracct SET COMPATIBILITY_LEVEL = 130
```

# Pertimbangan untuk peningkatan SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.Considerations"></a>

Amazon RDS mengambil dua snapshot DB selama proses peningkatan. Snapshot DB pertama adalah snapshot dari instans DB sebelum perubahan peningkatan dibuat. Snapshot DB kedua diambil setelah peningkatan selesai.

**catatan**  
Amazon RDS hanya mengambil snapshot DB jika Anda telah mengatur periode retensi cadangan untuk instans DB Anda ke angka yang lebih besar dari 0. Untuk mengubah periode retensi cadangan Anda, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

Setelah peningkatan selesai, Anda tidak dapat kembali ke versi mesin basis data sebelumnya. Jika Anda ingin kembali ke versi yang lebih lama, pulihkan snapshot DB yang diambil sebelum peningkatan untuk membuat instans DB baru. 

Selama peningkatan SQL Server versi minor atau mayor, metrik **Ruang Penyimpanan Kosong** dan **Kedalaman Antrean Disk** akan menampilkan `-1`. Setelah peningkatan selesai, kedua metrik ini akan kembali normal.

Sebelum Anda meng-upgrade instance SQL Server Anda, tinjau informasi berikut.

**Topics**
+ [Praktik terbaik sebelum memulai upgrade](#USER_UpgradeDBInstance.SQLServer.BestPractices)
+ [Pertimbangan Multi-AZ](#USER_UpgradeDBInstance.SQLServer.MAZ)
+ [Pertimbangan replika baca](#USER_UpgradeDBInstance.SQLServer.readreplica)
+ [Pertimbangan grup opsi](#USER_UpgradeDBInstance.SQLServer.OGPG.OG)
+ [Pertimbangan grup parameter](#USER_UpgradeDBInstance.SQLServer.OGPG.PG)

## Praktik terbaik sebelum memulai upgrade
<a name="USER_UpgradeDBInstance.SQLServer.BestPractices"></a>

Sebelum memulai proses pemutakhiran, terapkan stpes persiapan berikut untuk memungkinkan kinerja peningkatan yang optimal dan meminimalkan potensi masalah:

Manajemen waktu dan beban kerja  
+ Jadwalkan peningkatan selama periode volume transaksi rendah.
+ Minimalkan operasi tulis selama jendela upgrade.
Hal ini memungkinkan Amazon RDS untuk menyelesaikan peningkatan lebih cepat dengan mengurangi jumlah file cadangan log transaksi yang perlu dipulihkan RDS selama pemasangan. secondary-to-primary

Manajemen transaksi  
+ Identifikasi dan pantau transaksi jangka panjang.
+ Pastikan semua transaksi penting dilakukan sebelum memulai peningkatan.
+ Cegah transaksi yang berjalan lama selama jendela upgrade.

Pengoptimalan file log  
Tinjau dan optimalkan file log transaksi:  
+ Kecilkan file log besar.
+ Kurangi pola konsumsi log yang tinggi.
+ Kelola File Log Virtual (VLFs).
+ Pertahankan ruang kosong yang memadai untuk operasi normal.

## Pertimbangan Multi-AZ
<a name="USER_UpgradeDBInstance.SQLServer.MAZ"></a>

Amazon RDS mendukung penerapan Multi-AZ untuk instans DB yang menjalankan Microsoft SQL Server dengan menggunakan SQL Server Database Mirroring (DBM) atau Always On Availability Groups (). AGs Untuk informasi selengkapnya, lihat [Deployment Multi-AZ untuk Amazon RDS for Microsoft SQL Server](USER_SQLServerMultiAZ.md).

Dalam penerapan Multi-AZ (Mirroring/AlwaysOn), ketika pemutakhiran diminta, RDS mengikuti strategi peningkatan bergulir untuk instance primer dan sekunder. Upgrade bergulir memastikan setidaknya satu instance tersedia untuk transaksi sementara instance sekunder ditingkatkan. Pemadaman diharapkan hanya berlangsung selama failover.

Selama upgrade, RDS menghapus instance sekunder dari konfigurasi Multi-AZ, melakukan upgrade instance sekunder, dan mengembalikan setiap backup log transaksi dari primer yang diambil selama waktu itu terputus. Setelah semua cadangan log dipulihkan, RDS bergabung dengan sekunder yang ditingkatkan ke primer. Ketika semua database berada dalam keadaan tersinkronisasi, RDS melakukan failover ke instance sekunder yang ditingkatkan. Setelah failover selesai, RDS melanjutkan dengan memutakhirkan instance primer lama, mengembalikan cadangan log transaksi, dan memasangkannya dengan primer baru.

Untuk meminimalkan durasi failover ini, sebaiknya gunakan titik akhir pendengar grup AlwaysOn AGs ketersediaan saat menggunakan pustaka klien yang mendukung opsi `MultiSubnetFailover` koneksi dalam string koneksi. Saat menggunakan titik akhir pendengar grup ketersediaan, waktu failover biasanya kurang dari 10 detik, namun durasi ini tidak menyertakan waktu pemulihan kerusakan tambahan.

## Pertimbangan replika baca
<a name="USER_UpgradeDBInstance.SQLServer.readreplica"></a>

Selama peningkatan versi basis data, Amazon RDS meningkatkan semua replika baca Anda bersama instans DB primer. Amazon RDS tidak mendukung peningkatan versi basis data pada replika baca secara terpisah. Untuk informasi selengkapnya tentang replika baca, lihat [Menggunakan replika baca untuk Microsoft SQL Server di Amazon RDS](SQLServer.ReadReplicas.md).

Saat Anda melakukan peningkatan versi basis data instans DB primer, semua replika baca juga ditingkatkan secara otomatis. Amazon RDS akan meningkatkan semua replika baca secara bersamaan sebelum meningkatkan instans DB primer. Replika baca mungkin tidak tersedia sampai peningkatan versi basis data pada instans DB primer selesai.

## Pertimbangan grup opsi
<a name="USER_UpgradeDBInstance.SQLServer.OGPG.OG"></a>

Jika instans DB Anda menggunakan grup opsi kustom, dalam beberapa kasus, Amazon RDS tidak dapat secara otomatis menetapkan grup opsi baru untuk DB Anda. Misalnya, saat Anda meningkatkan ke versi mayor baru, Anda harus menentukan grup opsi baru. Kami sarankan agar Anda membuat grup opsi baru, dan menambahkan opsi yang sama ke grup opsi kustom yang ada.

Untuk informasi selengkapnya, lihat [Membuat grup opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create) atau [Menyalin grup opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy).

## Pertimbangan grup parameter
<a name="USER_UpgradeDBInstance.SQLServer.OGPG.PG"></a>

Jika instans DB Anda menggunakan grup parameter DB kustom:
+ Amazon RDS secara otomatis mem-boot ulang instans DB setelah peningkatan.
+ Dalam beberapa kasus, RDS tidak dapat secara otomatis menetapkan grup parameter baru ke instans DB Anda.

  Misalnya, saat Anda meningkatkan ke versi mayor baru, Anda harus menentukan grup parameter baru. Kami menyarankan agar Anda membuat grup parameter baru, dan mengonfigurasi parameter seperti dalam grup parameter kustom yang ada.

Untuk informasi selengkapnya, lihat [Membuat grup parameter DB di Amazon RDS ](USER_WorkingWithParamGroups.Creating.md) atau [](USER_WorkingWithParamGroups.Copying.md).

# Menguji upgrade RDS untuk SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.UpgradeTesting"></a>

Sebelum melakukan peningkatan versi mayor pada instans DB, Anda harus menguji kompatibilitas basis data Anda secara menyeluruh, dan semua aplikasi yang mengakses basis data, dengan versi baru. Kami menyarankan agar Anda menggunakan prosedur berikut.

**Untuk menguji peningkatan versi mayor**

1. [Tinjau Upgrade SQL Server](https://docs.microsoft.com/en-us/sql/database-engine/install-windows/upgrade-sql-server) dalam dokumentasi Microsoft untuk versi baru mesin database untuk melihat apakah ada masalah kompatibilitas yang mungkin memengaruhi database atau aplikasi Anda.

1. Jika instans DB Anda menggunakan grup opsi kustom, buat grup opsi baru yang kompatibel dengan versi baru yang menjadi target peningkatan Anda. Untuk informasi selengkapnya, lihat [Pertimbangan grup opsi](USER_UpgradeDBInstance.SQLServer.Considerations.md#USER_UpgradeDBInstance.SQLServer.OGPG.OG).

1. Jika instans DB Anda menggunakan grup parameter kustom, buat grup parameter baru yang kompatibel dengan versi baru yang menjadi target peningkatan Anda. Untuk informasi selengkapnya, lihat [Pertimbangan grup parameter](USER_UpgradeDBInstance.SQLServer.Considerations.md#USER_UpgradeDBInstance.SQLServer.OGPG.PG).

1. Buat snapshot DB dari instans DB yang akan ditingkatkan. Untuk informasi selengkapnya, lihat [Membuat snapshot DB untuk instans DB AZ tunggal untuk Amazon RDS](USER_CreateSnapshot.md).

1. Pulihkan snapshot DB untuk membuat instans DB uji baru. Untuk informasi selengkapnya, lihat [Memulihkan ke instans DB](USER_RestoreFromSnapshot.md).

1. Modifikasi instans DB uji baru ini untuk ditingkatkan ke versi baru menggunakan salah satu metode berikut:
   + [Konsol](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.Console)
   + [AWS CLI](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.CLI)
   + [API RDS](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.API)

1. Evaluasi penyimpanan yang digunakan oleh instans yang ditingkatkan untuk menentukan apakah peningkatan memerlukan penyimpanan tambahan. 

1. Jalankan pengujian jaminan kualitas terhadap instans DB yang ditingkatkan sebanyak yang diperlukan untuk memastikan bahwa basis data dan aplikasi Anda berfungsi baik dengan versi baru. Terapkan setiap pengujian baru yang diperlukan untuk mengevaluasi dampak dari masalah kompatibilitas yang Anda identifikasi pada langkah 1. Uji semua prosedur tersimpan dan fungsi. Arahkan versi pengujian aplikasi Anda ke instans DB yang ditingkatkan. 

1. Jika semua pengujian berhasil, maka lakukan peningkatan pada instans DB produksi Anda. Kami menyarankan agar Anda tidak mengizinkan operasi tulis ke instans DB hingga Anda mengonfirmasi bahwa semuanya berfungsi dengan benar. 

## Meningkatkan instans DB SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.Upgrading"></a>

Untuk informasi tentang peningkatan instans DB SQL Server secara manual atau otomatis, lihat hal berikut:
+ [Meningkatkan versi mesin instans DB ](USER_UpgradeDBInstance.Upgrading.md)
+ [Praktik terbaik untuk meningkatkan SQL Server 2008 R2 ke SQL Server 2016 di Amazon RDS for SQL Server](https://aws.amazon.com/blogs/database/best-practices-for-upgrading-sql-server-2008-r2-to-sql-server-2016-on-amazon-rds-for-sql-server/)

**penting**  
Jika Anda memiliki snapshot yang dienkripsi menggunakan AWS KMS, kami sarankan Anda memulai upgrade sebelum dukungan berakhir. 

## Meningkatkan instans DB yang dihentikan sebelum dukungan berakhir
<a name="USER_UpgradeDBInstance.SQLServer.DeprecatedVersions"></a>

Setelah sebuah versi mayor dihentikan, Anda tidak dapat menginstal versi tersebut di instans DB baru. RDS akan mencoba meningkatkan semua instans DB yang ada secara otomatis. 

Jika Anda perlu memulihkan instans DB yang tidak digunakan lagi, Anda dapat melakukan point-in-time pemulihan (PITR) atau memulihkan snapshot. Tindakan ini dapat memberikan akses sementara ke instans DB yang menggunakan versi yang sudah dihentikan. Namun, setelah sebuah versi mayor sepenuhnya dihentikan, instans DB ini juga akan secara otomatis ditingkatkan ke versi yang didukung. 

# Bekerja dengan penyimpanan di RDS untuk SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.DatabaseStorage"></a>

Dengan RDS untuk SQL Server, Anda dapat melampirkan hingga tiga volume tambahan ke RDS untuk instance SQL Server Anda, masing-masing dipetakan ke huruf drive Windows yang unik. Ini memungkinkan Anda untuk mendistribusikan file database di beberapa volume di luar `D:` drive default. Ketika Anda menambahkan volume penyimpanan, Anda mendapatkan peningkatan fleksibilitas untuk manajemen file database dan optimasi penyimpanan.

Manfaatnya meliputi:
+ **Distribusi file fleksibel** - Mendistribusikan file data database dan file log di beberapa volume untuk meningkatkan kinerja I/O.
+ **Optimalisasi penyimpanan** — Gunakan jenis dan konfigurasi penyimpanan yang berbeda untuk kebutuhan beban kerja yang berbeda.
+ **Skalabilitas** — Tambahkan kapasitas penyimpanan tanpa memodifikasi volume yang ada.

**Topics**
+ [Pertimbangan untuk menggunakan volume penyimpanan tambahan dengan RDS untuk SQL Server](#SQLServer.ASV.Considerations)
+ [Menambahkan, menghapus, atau memodifikasi volume penyimpanan dengan RDS untuk SQL Server](#SQLServer.ASV.Management)
+ [Kembalikan operasi untuk volume penyimpanan tambahan dengan RDS untuk SQL Server](#SQLServer.ASV.Restore)
+ [Kasus penggunaan untuk volume penyimpanan tambahan dengan RDS untuk SQL Server](#SQLServer.ASV.UseCases)

## Pertimbangan untuk menggunakan volume penyimpanan tambahan dengan RDS untuk SQL Server
<a name="SQLServer.ASV.Considerations"></a>

Perhatikan fitur dan batasan berikut saat menggunakan volume penyimpanan tambahan dengan RDS untuk SQL Server:
+ Anda hanya dapat menambahkan volume penyimpanan pada SQL Server Standard Edition (SE), Enterprise Edition (EE), dan Developer Edition (DEV-EE).
+ Anda dapat menambahkan hingga 3 volume penyimpanan tambahan per instans.
+ Nama volume secara otomatis dipetakan ke huruf drive Windows sebagai berikut:
  + `rdsdbdata2`— `H:` mengemudi
  + `rdsdbdata3`— `I:` mengemudi
  + `rdsdbdata4`— `J:` mengemudi
+ File TempDB terus menggunakan `T:` drive saat menggunakan penyimpanan NVMe instance. File SQL Server Audit dan file Microsoft Business Intelligence (MSBI) tetap ada di drive. `D:`
+ Anda hanya dapat menambahkan jenis penyimpanan General Purpose SSD (gp3) dan Provisioned IOPS SSD (io2).
+ Ukuran penyimpanan minimum volume penyimpanan tambahan sama dengan batas yang ditetapkan untuk `D:` drive default. Ukuran penyimpanan maksimum untuk instans DB Anda adalah total 256 TiB di semua volume.
+ Menambahkan volume penyimpanan ke instance dengan replika baca atau untuk membaca instance replika tidak didukung.
+ Menambahkan volume penyimpanan ke instans yang diaktifkan untuk pencadangan otomatis lintas wilayah tidak didukung.
+ Mengkonfigurasi volume penyimpanan tambahan untuk penskalaan otomatis penyimpanan tidak didukung.
+ Memindahkan file antar volume setelah pembuatan tidak didukung.
+ Anda tidak dapat menghapus `D:` volume, tetapi Anda dapat menghapus volume penyimpanan lain selama volume tersebut kosong.
+ Memodifikasi ukuran volume yang ada selama point-in-time pemulihan atau pemulihan snapshot (PITR) tidak didukung. Namun, Anda dapat menambahkan volume penyimpanan baru selama operasi pemulihan.

## Menambahkan, menghapus, atau memodifikasi volume penyimpanan dengan RDS untuk SQL Server
<a name="SQLServer.ASV.Management"></a>

Anda dapat menambahkan, memodifikasi, dan menghapus volume penyimpanan tambahan menggunakan AWS CLI atau Konsol Manajemen AWS. Semua operasi menggunakan operasi `modify-db-instance` API dengan `additional-storage-volumes` parameter.

**penting**  
Menambahkan atau menghapus volume penyimpanan tambahan akan membuat tindakan cadangan yang tertunda dan jendela pemadaman point-in-time pemulihan. Jendela ini ditutup saat alur kerja cadangan selesai.

**Topics**
+ [Menambahkan volume penyimpanan](#SQLServer.ASV.Adding)
+ [Menskalakan volume penyimpanan tambahan](#SQLServer.ASV.Scaling)
+ [Menghapus volume penyimpanan tambahan](#SQLServer.ASV.Removing)

### Menambahkan volume penyimpanan
<a name="SQLServer.ASV.Adding"></a>

Anda dapat menambahkan hingga tiga volume penyimpanan di luar `D:` drive default. Untuk menambahkan volume penyimpanan baru ke RDS Anda untuk instance SQL Server, gunakan `modify-db-instance` perintah dengan parameter. `additional-storage-volumes`

Contoh berikut menambahkan volume baru 4.000 GiB General Purpose SSD (gp3) bernama. `rdsdbdata4`

```
aws rds modify-db-instance \
  --db-instance-identifier my-sql-server-instance \
  --region us-east-1 \
  --additional-storage-volumes '[{"VolumeName":"rdsdbdata4","StorageType":"gp3","AllocatedStorage":4000}]' \
  --apply-immediately
```

### Menskalakan volume penyimpanan tambahan
<a name="SQLServer.ASV.Scaling"></a>

Anda dapat mengubah pengaturan penyimpanan apa pun untuk volume tambahan Anda kecuali untuk ukuran penyimpanan. Contoh berikut memodifikasi pengaturan IOPS untuk volume. `rdsdbdata2`

```
aws rds modify-db-instance \
  --db-instance-identifier my-sql-server-instance \
  --region us-east-1 \
  --additional-storage-volumes '[{"VolumeName":"rdsdbdata2","IOPS":4000}]' \
  --apply-immediately
```

### Menghapus volume penyimpanan tambahan
<a name="SQLServer.ASV.Removing"></a>

Anda tidak dapat menghapus `D:` volume, tetapi Anda dapat menghapus volume penyimpanan lainnya saat kosong.

**Awas**  
Sebelum Anda menghapus volume penyimpanan tambahan, pastikan tidak ada file database yang disimpan pada volume.

Contoh berikut menghapus `rdsdbdata4` volume.

```
aws rds modify-db-instance \
  --db-instance-identifier my-sql-server-instance \
  --region us-east-1 \
  --additional-storage-volumes '[{"VolumeName":"rdsdbdata4","SetForDelete":true}]' \
  --apply-immediately
```

## Kembalikan operasi untuk volume penyimpanan tambahan dengan RDS untuk SQL Server
<a name="SQLServer.ASV.Restore"></a>

Ketika Anda memulihkan database Anda, Anda dapat menambahkan volume penyimpanan. Anda juga dapat mengubah pengaturan penyimpanan volume yang ada.

**Topics**
+ [Pemulihan snapshot](#SQLServer.ASV.SnapshotRestore)
+ [Point-in-time pemulihan](#SQLServer.ASV.PITR)
+ [Pemulihan basis data asli](#SQLServer.ASV.NativeRestore)

### Pemulihan snapshot
<a name="SQLServer.ASV.SnapshotRestore"></a>

Saat memulihkan dari snapshot, Anda dapat menambahkan volume penyimpanan tambahan baru atau memodifikasi pengaturan IOPS, throughput, dan tipe penyimpanan volume yang ada.

Contoh berikut mengembalikan instance DB dari snapshot dan memodifikasi pengaturan IOPS untuk volume: `rdsdbdata2`

```
aws rds restore-db-instance-from-db-snapshot \
  --db-instance-identifier my-restored-instance \
  --db-snapshot-identifier my-snapshot \
  --region us-east-1 \
  --additional-storage-volumes '[{"VolumeName":"rdsdbdata2","IOPS":5000}]'
```

### Point-in-time pemulihan
<a name="SQLServer.ASV.PITR"></a>

Selama point-in-time pemulihan (PITR), Anda dapat menambahkan volume penyimpanan tambahan baru dengan konfigurasi khusus.

Contoh berikut melakukan PITR dan menambahkan 5.000 GiB General Purpose SSD (gp3) volume baru:

```
aws rds restore-db-instance-to-point-in-time \
  --source-db-instance-identifier my-source-instance \
  --target-db-instance my-pitr-instance \
  --use-latest-restorable-time \
  --region us-east-1 \
  --additional-storage-volumes '[{"VolumeName":"rdsdbdata4","StorageType":"gp3","AllocatedStorage":5000,"IOPS":5000,"StorageThroughput":200}]'
```

### Pemulihan basis data asli
<a name="SQLServer.ASV.NativeRestore"></a>

Anda dapat menggunakan prosedur `rds_restore_database` tersimpan untuk mengembalikan database ke volume penyimpanan tambahan tertentu. Dua parameter baru mendukung pemilihan volume:

**`data_file_volume`**  
Menentukan huruf drive untuk file data database

**`log_file_volume`**  
Menentukan huruf drive untuk file log database

Contoh berikut mengembalikan database dengan file data pada `H:` drive dan log file pada `I:` drive:

```
EXEC msdb.dbo.rds_restore_database    
    @restore_db_name='my_database',
    @s3_arn_to_restore_from='arn:aws:s3:::my-bucket/backup-file.bak',
    @data_file_volume='H:',
    @log_file_volume='I:';
```

Jika Anda tidak menentukan parameter volume, atau jika Anda menentukan `D:` drive untuk kedua parameter, file database dikembalikan ke `D:` drive default:

```
EXEC msdb.dbo.rds_restore_database    
    @restore_db_name='my_database',
    @s3_arn_to_restore_from='arn:aws:s3:::my-bucket/backup-file.bak';
```

## Kasus penggunaan untuk volume penyimpanan tambahan dengan RDS untuk SQL Server
<a name="SQLServer.ASV.UseCases"></a>

Volume penyimpanan tambahan mendukung berbagai skenario manajemen database. Bagian berikut menjelaskan kasus penggunaan umum dan pendekatan implementasi.

**Topics**
+ [Membuat database pada volume penyimpanan tambahan](#SQLServer.ASV.NewDatabase)
+ [Memperluas kapasitas penyimpanan](#SQLServer.ASV.ExtendStorage)
+ [Memindahkan database antar volume](#SQLServer.ASV.MoveDatabase)
+ [Mengarsipkan data ke penyimpanan hemat biaya](#SQLServer.ASV.ArchiveData)

### Membuat database pada volume penyimpanan tambahan
<a name="SQLServer.ASV.NewDatabase"></a>

Anda dapat membuat database baru secara langsung pada volume penyimpanan tambahan menggunakan pernyataan SQL Server `CREATE DATABASE` standar.

Contoh berikut membuat database dengan file data pada `H:` drive dan file log pada `I:` drive:

```
CREATE DATABASE MyDatabase
ON (
    NAME = 'MyDatabase_Data',
    FILENAME = 'H:\rdsdbdata\data\MyDatabase_Data.mdf',
    SIZE = 100MB,
    FILEGROWTH = 10MB
)
LOG ON (
    NAME = 'MyDatabase_Log',
    FILENAME = 'I:\rdsdbdata\data\MyDatabase_Log.ldf',
    SIZE = 10MB,
    FILEGROWTH = 10%
);
```

### Memperluas kapasitas penyimpanan
<a name="SQLServer.ASV.ExtendStorage"></a>

Ketika `D:` drive default mencapai kapasitas maksimumnya, Anda dapat menambahkan volume penyimpanan tambahan, menskalakan volume yang ada, dan membuat file data baru atau file log pada volume baru.

**Untuk memperluas kapasitas penyimpanan**

1. Tambahkan volume penyimpanan ke instans Anda menggunakan `modify-db-instance` perintah.

1. Tambahkan file data baru ke volume penyimpanan tambahan:

   ```
   ALTER DATABASE MyDatabase
   ADD FILE (
       NAME = 'MyDatabase_Data2',
       FILENAME = 'H:\rdsdbdata\data\MyDatabase_Data2.ndf',
       SIZE = 500MB,
       FILEGROWTH = 50MB
   );
   ```

### Memindahkan database antar volume
<a name="SQLServer.ASV.MoveDatabase"></a>

Untuk memindahkan database ke volume yang berbeda, gunakan pendekatan backup dan restore dengan prosedur `rds_backup_database` dan `rds_restore_database` disimpan. Untuk informasi selengkapnya, lihat [Menggunakan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Using.md).

**Untuk memindahkan database ke volume yang berbeda**

1. Cadangkan database menggunakan`rds_backup_database`:

   ```
   EXEC msdb.dbo.rds_backup_database 
       @source_db_name='MyDatabase',
       @s3_arn_to_backup_to='arn:aws:s3:::my-bucket/database-backup.bak';
   ```

1. Kembalikan database ke volume target:

   ```
   EXEC msdb.dbo.rds_restore_database    
       @restore_db_name='MyDatabase_New',
       @s3_arn_to_restore_from='arn:aws:s3:::my-bucket/database-backup.bak',
       @data_file_volume='H:',
       @log_file_volume='I:';
   ```

1. Jatuhkan database dari drive lama Anda untuk melepaskan spasi. Untuk informasi selengkapnya, lihat [Menjatuhkan database di Amazon RDS untuk instans DB Amazon RDS for Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.DropMirrorDB.md).

### Mengarsipkan data ke penyimpanan hemat biaya
<a name="SQLServer.ASV.ArchiveData"></a>

Untuk tabel yang dipartisi, Anda dapat mengarsipkan data lama ke volume penyimpanan tambahan dengan karakteristik kinerja yang berbeda.

**Untuk mengarsipkan data yang dipartisi**

1. Tambahkan volume penyimpanan dengan jenis dan kapasitas penyimpanan yang sesuai.

1. Buat filegroup baru pada volume penyimpanan tambahan:

   ```
   ALTER DATABASE MyDatabase
   ADD FILEGROUP ArchiveFileGroup;
   
   ALTER DATABASE MyDatabase
   ADD FILE (
       NAME = 'Archive_Data',
       FILENAME = 'H:\rdsdbdata\data\Archive_Data.ndf',
       SIZE = 1GB,
       FILEGROWTH = 100MB
   ) TO FILEGROUP ArchiveFileGroup;
   ```

1. Pindahkan partisi ke filegroup baru menggunakan perintah manajemen partisi SQL Server.

# Mengimpor dan mengekspor basis data SQL Server menggunakan pencadangan dan pemulihan native
<a name="SQLServer.Procedural.Importing"></a>

Amazon RDS mendukung pencadangan dan pemulihan native untuk basis data Microsoft SQL Server menggunakan file cadangan penuh (file .bak). Saat Anda menggunakan RDS, Anda mengakses file yang disimpan di Amazon S3 bukannya menggunakan sistem file lokal di server basis data.

Misalnya, Anda dapat membuat backup penuh dari server lokal Anda, menyimpannya di S3, lalu memulihkannya ke instans DB Amazon RDS yang ada. Anda juga dapat membuat backup dari RDS, menyimpannya di S3, lalu memulihkannya ke mana pun Anda inginkan.

Pencadangan dan pemulihan asli tersedia di semua AWS Wilayah untuk instans DB AZ tunggal dan multi-AZ, termasuk instans DB multi-AZ dengan replika baca. Pencadangan dan pemulihan native tersedia untuk semua edisi Microsoft SQL Server yang didukung di Amazon RDS.

Diagram berikut menunjukkan skenario yang didukung.

![\[Arsitektur Pencadangan dan Pemulihan Native\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/SQL-bak-file.png)


Menggunakan file .bak native untuk mencadangkan dan memulihkan basis data biasanya merupakan cara tercepat untuk mencadangkan dan memulihkan basis data. Ada banyak keuntungan tambahan jika menggunakan pencadangan dan pemulihan native. Misalnya, Anda dapat melakukan hal berikut:
+ Memigrasi basis data ke atau dari Amazon RDS.
+ Memigrasi basis data antara beberapa instans DB RDS untuk SQL Server.
+ Memigrasi data, skema, prosedur tersimpan, pemicu, dan kode basis data lainnya di dalam file .bak.
+ Mencadangkan dan memulihkan basis data tunggal, bukan seluruh instans DB.
+ Membuat salinan basis data untuk pengembangan, pengujian, pelatihan, dan demonstrasi.
+ Menyimpan dan mentransfer file backup dengan Amazon S3, untuk perlindungan tambahan bagi pemulihan bencana.
+ Buat backup native dari basis data yang telah mengaktifkan Enkripsi Data Transparan (TDE), dan pulihkan backup tersebut ke basis data on-premise. Untuk informasi selengkapnya, lihat [Dukungan untuk Enkripsi Data Transparan di SQL Server](Appendix.SQLServer.Options.TDE.md).
+ Kembalikan cadangan native basis data on-premise yang mengaktifkan TDE ke RDS untuk instans SQL Server DB. Untuk informasi selengkapnya, lihat [Dukungan untuk Enkripsi Data Transparan di SQL Server](Appendix.SQLServer.Options.TDE.md).

**Contents**
+ [Batasan dan rekomendasi](#SQLServer.Procedural.Importing.Native.Limitations)
+ [Menyiapkan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Enabling.md)
  + [Membuat peran IAM secara manual untuk pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)
+ [Menggunakan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Using.md)
  + [Membuat backup basis data](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Backup)
    + [Penggunaan](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Backup.Syntax)
    + [Contoh](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Backup.Examples)
  + [Memulihkan basis data](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Restore)
    + [Penggunaan](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Syntax)
    + [Contoh](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Examples)
  + [Memulihkan log](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Log)
    + [Penggunaan](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Log.Syntax)
    + [Contoh](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Log.Examples)
  + [Menyelesaikan pemulihan basis data](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Finish.Restore)
    + [Penggunaan](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Finish.Restore.Syntax)
  + [Bekerja dengan basis data yang dipulihkan secara parsial](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Partially.Restored)
    + [Menghilangkan basis data yang dipulihkan parsial](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Drop.Partially.Restored)
    + [Perilaku pemulihan dan point-in-time pemulihan snapshot untuk database yang dipulihkan sebagian](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Snapshot.Restore)
  + [Membatalkan tugas](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Cancel)
    + [Penggunaan](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Cancel.Syntax)
  + [Melacak status tugas](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Tracking)
    + [Penggunaan](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Tracking.Syntax)
    + [Contoh](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Tracking.Examples)
    + [Respons](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Tracking.Response)
+ [Mengompresi file backup](SQLServer.Procedural.Importing.Native.Compression.md)
+ [Pemecahan Masalah](SQLServer.Procedural.Importing.Native.Troubleshooting.md)
+ [Mengimpor dan mengekspor data SQL Server menggunakan metode lain](SQLServer.Procedural.Importing.Snapshots.md)
  + [Mengimpor data ke RDS for SQL Server dengan menggunakan snapshot](SQLServer.Procedural.Importing.Snapshots.md#SQLServer.Procedural.Importing.Procedure)
    + [Mengimpor data](SQLServer.Procedural.Importing.Snapshots.md#ImportData.SQLServer.Import)
      + [Wizard Membuat dan Menerbitkan Skrip](SQLServer.Procedural.Importing.Snapshots.md#ImportData.SQLServer.MgmtStudio.ScriptWizard)
      + [Wizard Impor dan Ekspor](SQLServer.Procedural.Importing.Snapshots.md#ImportData.SQLServer.MgmtStudio.ImportExportWizard)
      + [Penyalinan massal](SQLServer.Procedural.Importing.Snapshots.md#ImportData.SQLServer.MgmtStudio.BulkCopy)
  + [Mengekspor data dari RDS for SQL Server](SQLServer.Procedural.Importing.Snapshots.md#SQLServer.Procedural.Exporting)
    + [Wizard Impor dan Ekspor pada SQL Server](SQLServer.Procedural.Importing.Snapshots.md#SQLServer.Procedural.Exporting.SSIEW)
    + [Wizard Membuat dan Menerbitkan Skrip dan utilitas bcp pada SQL Server](SQLServer.Procedural.Importing.Snapshots.md#SQLServer.Procedural.Exporting.SSGPSW)
+ [Menggunakan utilitas BCP dari Linux untuk mengimpor dan mengekspor data](SQLServer.Procedural.Importing.BCP.Linux.md)
  + [Prasyarat](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Prerequisites)
  + [Menginstal alat baris perintah SQL Server di Linux](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Installing)
  + [Mengekspor data dari RDS for SQL Server](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Exporting)
    + [Sintaks ekspor dasar](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Exporting.Basic)
    + [Contoh ekspor](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Exporting.Example)
  + [Mengimpor data ke RDS untuk SQL Server](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Importing)
    + [Sintaks impor dasar](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Importing.Basic)
    + [Contoh impor](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Importing.Example)
  + [Opsi BCP umum](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Options)
  + [Praktik terbaik dan pertimbangan](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.BestPractices)
  + [Memecahkan masalah umum](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Troubleshooting)

## Batasan dan rekomendasi
<a name="SQLServer.Procedural.Importing.Native.Limitations"></a>

Berikut ini adalah beberapa batasan dalam menggunakan pencadangan dan pemulihan native: 
+ Anda tidak dapat mencadangkan, atau memulihkan dari, bucket Amazon S3 di AWS Wilayah lain dari instans Amazon RDS DB Anda.
+ Anda tidak dapat memulihkan basis data dengan nama yang sama seperti basis data yang sudah ada. Nama basis data bersifat unik.
+ Kami sangat menyarankan agar Anda tidak memulihkan cadangan dari satu zona waktu ke zona waktu yang berbeda. Jika Anda memulihkan cadangan dari satu zona waktu ke zona waktu yang berbeda, Anda harus mengaudit kueri dan aplikasi Anda untuk mengetahui efek dari perubahan zona waktu.
+ RDS untuk Microsoft SQL Server memiliki batas ukuran 5 TB per file. Untuk pencadangan native pada basis data yang lebih besar, Anda dapat menggunakan pencadangan multi-file.
+ Ukuran basis data maksimum yang dapat dicadangkan ke S3 bergantung pada memori, CPU, I/O, dan sumber daya jaringan yang tersedia pada instans DB. Semakin besar basis data, semakin banyak memori yang dikonsumsi agen pencadangan.
+ Anda tidak dapat mencadangkan atau memulihkan lebih dari 10 file backup sekaligus.
+ Pencadangan diferensial didasarkan pada backup penuh yang terakhir. Agar pencadangan diferensial berhasil, Anda tidak dapat mengambil snapshot antara backup penuh terakhir dan pencadangan diferensial. Jika Anda menginginkan pencadangan diferensial, tetapi ada snapshot manual atau otomatis, maka lakukan backup penuh lainnya sebelum melakukan pencadangan diferensial.
+ Pemulihan diferensial dan log diferensial tidak didukung untuk basis data dengan file yang file\$1guid (pengidentifikasi unik) diatur ke `NULL`.
+ Anda dapat menjalankan hingga dua tugas pencadangan atau pemulihan pada saat bersamaan.
+ Anda tidak dapat melakukan pencadangan log native dari SQL Server di Amazon RDS.
+ RDS mendukung pemulihan asli database hingga 64 TiB. Pemulihan native untuk basis data di Edisi Ekspres SQL Server dibatasi hingga 10 GB.
+ Anda tidak dapat melakukan pencadangan native selama waktu pemeliharaan, atau saat Amazon RDS sedang dalam proses mengambil snapshot basis data. Jika tugas pencadangan native tumpang tindih dengan jendela pencadangan harian RDS, tugas pencadangan native akan dibatalkan.
+ Pada instans DB Multi-AZ, Anda hanya dapat melakukan pemulihan native di basis data yang dicadangkan di model pemulihan penuh.
+ Memanggil prosedur RDS untuk pencadangan dan pemulihan native dalam transaksi tidak didukung.
+ Gunakan enkripsi simetris AWS KMS key untuk mengenkripsi cadangan Anda. Amazon RDS tidak mendukung kunci KMS asimetris. Untuk informasi selengkapnya, lihat [Membuat kunci enkripsi simetris KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) di *Panduan Developer AWS Key Management Service *.
+ File pencadangan native dienkripsi dengan kunci KMS yang ditentukan menggunakan mode kripto "Hanya Enkripsi". Saat Anda memulihkan file backup terenkripsi, ingatlah bahwa file tersebut dienkripsi dengan mode kripto "Encryption-Only".
+ Anda tidak dapat memulihkan basis data yang berisi kelompok file FILESTREAM.
+ Enkripsi sisi server Amazon S3 dengan AWS KMS (SSE-KMS) didukung melalui konfigurasi enkripsi default bucket S3 saat Anda meneruskan prosedur penyimpanan cadangan. `@enable_bucket_default_encryption=1` Secara default, pemulihan mendukung enkripsi sisi server objek S3.

  Saat Anda memberikan kunci KMS ke prosedur yang disimpan, setiap cadangan dan pemulihan asli dienkripsi dan didekripsi di sisi klien dengan kunci KMS. AWS menyimpan cadangan di bucket S3 dengan SSE-S3 saat `@enable_bucket_default_encryption=0` atau dengan kunci enkripsi default yang dikonfigurasi bucket S3 Anda saat. `@enable_bucket_default_encryption=1`
+ Saat menggunakan Titik Akses S3, titik akses tidak dapat dikonfigurasi untuk menggunakan VPC internal RDS.
+ Untuk kinerja tertinggi, sebaiknya gunakan bucket direktori atau titik akses untuk bucket direktori jika tersedia di wilayah Anda.

Jika basis data Anda dapat offline saat file backup dibuat, disalin, dan dipulihkan, kami menyarankan Anda untuk menggunakan pencadangan dan pemulihan native untuk memigrasinya ke RDS. Jika database lokal tidak bisa offline, sebaiknya gunakan database AWS Database Migration Service untuk memigrasikan database ke Amazon RDS. Untuk informasi lebih lanjut, lihat [Apa itu AWS Database Migration Service?](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) 

Pencadangan dan pemulihan native tidak dimaksudkan untuk menggantikan kemampuan pemulihan data dari fitur salinan snapshot lintas-wilayah. Kami menyarankan Anda menggunakan salinan snapshot untuk menyalin snapshot database Anda ke AWS Wilayah lain untuk pemulihan bencana lintas wilayah di Amazon RDS. Lihat informasi yang lebih lengkap di [Menyalin snapshot DB untuk Amazon RDS](USER_CopySnapshot.md).

# Menyiapkan pencadangan dan pemulihan native
<a name="SQLServer.Procedural.Importing.Native.Enabling"></a>

Untuk mengatur pencadangan dan pemulihan native, Anda memerlukan tiga komponen:

1. Bucket Amazon S3 untuk menyimpan file cadangan Anda.

   Anda harus memiliki bucket S3 yang akan digunakan untuk file backup kemudian mengunggah backup yang ingin Anda migrasikan ke RDS. Jika sudah memiliki bucket Amazon S3, Anda dapat menggunakannya. Jika tidak, Anda dapat [ membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingaBucket.html). Atau, Anda dapat memilih untuk dibuatkan bucket baru untuk Anda saat menambahkan opsi `SQLSERVER_BACKUP_RESTORE` dengan menggunakan Konsol Manajemen AWS.

   Untuk informasi tentang penggunaan S3, lihat [Panduan Pengguna Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)

1. Peran AWS Identity and Access Management (IAM) untuk mengakses bucket.

   Jika sudah memiliki peran IAM, Anda dapat menggunakannya. Anda dapat memilih untuk dibuatkan peran IAM baru ketika menambahkan opsi `SQLSERVER_BACKUP_RESTORE` dengan menggunakan Konsol Manajemen AWS. Atau, Anda dapat membuatnya secara manual.

   Jika Anda ingin membuat peran IAM baru secara manual, gunakan pendekatan yang dibahas di bagian berikutnya. Lakukan hal yang sama jika Anda ingin melampirkan hubungan kepercayaan dan kebijakan perizinan pada peran IAM yang sudah ada.

1. Opsi `SQLSERVER_BACKUP_RESTORE` ditambahkan ke grup opsi di instans DB Anda.

   Untuk mengaktifkan pencadangan dan pemulihan native pada instans DB Anda, tambahkan opsi `SQLSERVER_BACKUP_RESTORE` untuk kelompok opsi pada instans DB Anda. Untuk informasi dan petunjuk selengkapnya, silakan lihat [Dukungan untuk pencadangan dan pemulihan native di SQL Server](Appendix.SQLServer.Options.BackupRestore.md).

## Membuat peran IAM secara manual untuk pencadangan dan pemulihan native
<a name="SQLServer.Procedural.Importing.Native.Enabling.IAM"></a>

Jika Anda ingin membuat peran IAM baru secara manual untuk digunakan dengan pencadangan dan pemulihan native, Anda dapat melakukannya. Dalam hal ini, Anda membuat peran untuk mendelegasikan izin dari layanan Amazon RDS ke bucket Amazon S3. Saat Anda membuat peran IAM, Anda melampirkan hubungan kepercayaan dan kebijakan perizinan. Hubungan kepercayaan memungkinkan RDS mengambil peran ini. Kebijakan izin menentukan tindakan yang dapat dilakukan peran ini. Untuk informasi selengkapnya tentang pembuatan peran, lihat [Membuat peran untuk mendelegasikan izin ke layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html).

Untuk fitur pencadangan dan pemulihan native, gunakan hubungan kepercayaan dan kebijakan perizinan yang serupa dengan contoh dalam bagian ini. Dalam contoh berikut, kami menggunakan nama pengguna utama layanan `rds.amazonaws.com` sebagai alias untuk semua akun layanan. Dalam contoh lain, kami menentukan Amazon Resource Name (ARN) untuk mengidentifikasi akun, pengguna, atau peran lain yang kami berikan akses ke dalam kebijakan kepercayaan.

Sebaiknya gunakan kunci konteks kondisi global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) dan [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) dalam hubungan kepercayaan berbasis sumber daya untuk membatasi izin layanan ke sumber daya tertentu. Ini adalah cara yang paling efektif untuk melindungi dari [masalah confused deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

Anda dapat menggunakan kedua kunci konteks kondisi global tersebut dan nilai `aws:SourceArn` berisi ID akun. Dalam hal ini, nilai `aws:SourceAccount` dan akun dalam nilai `aws:SourceArn` harus menggunakan ID akun yang sama saat digunakan dalam pernyataan yang sama.
+ Gunakan `aws:SourceArn` jika Anda menginginkan akses lintas layanan untuk satu sumber daya.
+ Gunakan `aws:SourceAccount` jika Anda ingin mengizinkan pengaitan sumber daya apa pun di akun tersebut dengan penggunaan lintas layanan.

Dalam hubungan kepercayaan, pastikan untuk menggunakan kunci konteks kondisi global `aws:SourceArn` dengan ARN penuh dari sumber daya yang mengakses peran. Untuk pencadangan dan pemulihan native, pastikan untuk menyertakan grup opsi DB dan instans DB, seperti yang ditunjukkan dalam contoh berikut.

**Example hubungan kepercayaan dengan kunci konteks kondisi global untuk pencadangan dan pemulihan asli**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "rds.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": [
                        "arn:aws:rds:Region:0123456789:db:db_instance_identifier",
                        "arn:aws:rds:Region:0123456789:og:option_group_name"
                    ],
                    "aws:SourceAccount": "0123456789"
                }
            }
        }
    ]
}
```

Contoh berikut menggunakan ARN untuk menentukan sumber daya. Untuk informasi selengkapnya tentang penggunaanARNs, lihat [nama sumber daya Amazon (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). 

**Example kebijakan izin untuk pencadangan dan pemulihan asli tanpa dukungan enkripsi**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
        "Effect": "Allow",
        "Action":
            [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
        },
        {
        "Effect": "Allow",
        "Action":
            [
                "s3:GetObjectAttributes",
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload"
            ],
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

**Example kebijakan perizinan untuk pencadangan dan pemulihan native dengan didukung enkripsi**  
Jika Anda ingin mengenkripsi file backup, sertakan kunci enkripsi dalam kebijakan perizinan Anda. Untuk informasi kunci enkripsi selengkapnya, lihat [Memulai](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html) di *Panduan Developer AWS Key Management Service *.  
Anda harus menggunakan kunci KMS enkripsi simetris untuk mengenkripsi cadangan Anda. Amazon RDS tidak mendukung kunci KMS asimetris. Untuk informasi selengkapnya, lihat [Membuat kunci enkripsi simetris KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) di *Panduan Developer AWS Key Management Service *.  
Peran IAM juga harus menjadi pengguna kunci dan administrator kunci untuk kunci KMS, yaitu, harus disebutkan dalam kebijakan kunci. Untuk informasi selengkapnya, lihat [Membuat kunci enkripsi simetris KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) di *Panduan Developer AWS Key Management Service *.  
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessToKey",
      "Effect": "Allow",
      "Action": [
        "kms:DescribeKey",
        "kms:GenerateDataKey",
        "kms:Encrypt",
        "kms:Decrypt"
      ],
      "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id"
    },
    {
      "Sid": "AllowAccessToS3",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
    },
    {
      "Sid": "GetS3Info",
      "Effect": "Allow",
      "Action": [
        "s3:GetObjectAttributes",
        "s3:GetObject",
        "s3:PutObject",
        "s3:ListMultipartUploadParts",
        "s3:AbortMultipartUpload"
      ],
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
    }
  ]
}
```

**Example kebijakan izin untuk pencadangan dan pemulihan asli menggunakan titik akses tanpa dukungan enkripsi**  
Tindakan yang diperlukan untuk menggunakan titik akses S3 sama dengan untuk bucket S3. Jalur sumber daya diperbarui agar sesuai dengan pola ARN titik akses S3.  
Titik akses harus dikonfigurasi untuk menggunakan **Network origin: Internet** sebagai RDS tidak mempublikasikan pribadi VPCs. Lalu lintas S3 dari instans RDS tidak melalui internet publik karena melalui pribadi. VPCs  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
                ],
            "Resource": [
            "arn:aws:s3:us-east-1:111122223333:accesspoint/amzn-s3-demo-ap",
            "arn:aws:s3:::underlying-bucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObjectAttributes",
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload"
                ],
                "Resource": [
                "arn:aws:s3:us-east-1:111122223333:accesspoint/amzn-s3-demo-ap/*",
                    "arn:aws:s3:::underlying-bucket/*"
                    ]
                }
            ]   
}
```

**Example kebijakan izin untuk pencadangan dan pemulihan asli menggunakan titik akses untuk bucket direktori tanpa dukungan enkripsi**  
Bucket direktori menggunakan [mekanisme otorisasi berbasis sesi](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-authenticating-authorizing.html) yang berbeda dari bucket tujuan umum, jadi satu-satunya izin yang diperlukan untuk pemulihan cadangan asli adalah izin “s3express:” tingkat ember. CreateSession Untuk mengonfigurasi akses tingkat objek, Anda harus menggunakan [titik akses untuk bucket direktori](https://docs.aws.amazon.com//AmazonS3/latest/userguide/access-points-directory-buckets-policies.html).  
Titik akses harus dikonfigurasi untuk menggunakan **Network origin: Internet** sebagai RDS tidak mempublikasikan pribadi VPCs. Lalu lintas S3 dari instans RDS tidak melalui internet publik karena melalui pribadi. VPCs  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
        "Effect": "Allow",
        "Action": "s3express:CreateSession",
        "Resource": 
            [
                "arn:aws:s3express:us-east-1:111122223333:accesspoint/amzn-s3-demo-accesspoint--use1-az6--xa-s3",
                "arn:aws:s3express:us-east-1:111122223333:bucket/amzn-s3-demo-bucket--use1-az6--x-s3"
            ]
        }
    ]
}
```

# Menggunakan pencadangan dan pemulihan native
<a name="SQLServer.Procedural.Importing.Native.Using"></a>

Setelah Anda mengaktifkan dan mengonfigurasi pencadangan dan pemulihan native, Anda dapat mulai menggunakannya. Pertama, Anda melakukan koneksi ke basis data Microsoft SQL Server, lalu Anda memanggil prosedur tersimpan Amazon RDS untuk melakukan pekerjaan tersebut. Untuk petunjuk tentang melakukan koneksi ke basis data Anda, lihat [Menyambung ke instans Microsoft SQL Server DB](USER_ConnectToMicrosoftSQLServerInstance.md). 

Beberapa prosedur yang disimpan mewajibkan Anda untuk memberikan Amazon Resource Name (ARN) ke bucket dan file Amazon S3 Anda. Format untuk ARN Anda adalah `arn:aws:s3:::bucket_name/file_name.extension`. Amazon S3 tidak memerlukan nomor akun atau AWS Wilayah di. ARNs

Jika Anda juga memberikan kunci KMS opsional, format untuk ARN kuncinya adalah `arn:aws:kms:region:account-id:key/key-id`. Untuk informasi selengkapnya, lihat [nama sumber daya Amazon (ARNs) dan ruang nama AWS layanan](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). Anda harus menggunakan kunci KMS enkripsi simetris untuk mengenkripsi cadangan Anda. Amazon RDS tidak mendukung kunci KMS asimetris. Untuk informasi selengkapnya, lihat [Membuat kunci enkripsi simetris KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) di *Panduan Developer AWS Key Management Service *.

**catatan**  
Apakah Anda menggunakan kunci KMS atau tidak, tugas pencadangan dan pemulihan asli mengaktifkan enkripsi 256-bit Advanced Encryption Standard (AES) sisi server melalui SSE-S3 secara default untuk file yang diunggah ke S3. Meneruskan `@enable_bucket_default_encryption=1` ke prosedur penyimpanan cadangan menggunakan kunci enkripsi default yang dikonfigurasi bucket S3 Anda.

Untuk petunjuk bagaimana cara memanggil setiap prosedur tersimpan, lihat topik berikut:
+ [Membuat backup basis data](#SQLServer.Procedural.Importing.Native.Using.Backup)
+ [Memulihkan basis data](#SQLServer.Procedural.Importing.Native.Using.Restore)
+ [Memulihkan log](#SQLServer.Procedural.Importing.Native.Restore.Log)
+ [Menyelesaikan pemulihan basis data](#SQLServer.Procedural.Importing.Native.Finish.Restore)
+ [Bekerja dengan basis data yang dipulihkan secara parsial](#SQLServer.Procedural.Importing.Native.Partially.Restored)
+ [Membatalkan tugas](#SQLServer.Procedural.Importing.Native.Using.Cancel)
+ [Melacak status tugas](#SQLServer.Procedural.Importing.Native.Tracking)

## Membuat backup basis data
<a name="SQLServer.Procedural.Importing.Native.Using.Backup"></a>

Untuk membuat backup basis data Anda, gunakan prosedur `rds_backup_database` yang disimpan.

**catatan**  
Anda tidak dapat membuat backup basis data selama waktu pemeliharaan, atau saat Amazon RDS mengambil snapshot. 

### Penggunaan
<a name="SQLServer.Procedural.Importing.Native.Backup.Syntax"></a>

```
exec msdb.dbo.rds_backup_database
	@source_db_name='database_name',
	@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name.extension',
	[@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'],	
	[@overwrite_s3_backup_file=0|1],
	[@block_size=512|1024|2048|4096|8192|16384|32768|65536],
        [@max_transfer_size=n],
        [@buffer_count=n],
	[@type='DIFFERENTIAL|FULL'],
	[@number_of_files=n],
	[@enable_bucket_default_encryption=0|1];
```

Parameter berikut diperlukan:
+ `@source_db_name` – Nama basis data untuk dicadangkan.
+ `@s3_arn_to_backup_to`— ARN menunjukkan bucket Amazon S3, titik akses, bucket direktori, atau titik akses untuk bucket direktori yang akan digunakan untuk pencadangan, ditambah nama file cadangan.

  File dapat memiliki ekstensi apa saja, tetapi `.bak` biasanya digunakan. Perhatikan bahwa titik akses ARNs harus dalam format`arn:aws:s3:us-east-1:111122223333:access-point-name/object/key`.

Parameter berikut ini bersifat opsional:
+ `@kms_master_key_arn`— ARN untuk kunci KMS enkripsi simetris untuk digunakan untuk mengenkripsi item.
  + Anda tidak dapat menggunakan kunci enkripsi default. Jika Anda menggunakan kunci default, basis data tidak akan dicadangkan.
  +  Jika Anda tidak menentukan pengidentifikasi kunci KMS, file backup tidak akan dienkripsi. Untuk informasi selengkapnya, lihat [Mengenkripsi sumber daya Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html).
  + Saat Anda menentukan kunci KMS, enkripsi sisi klien digunakan.
  + Amazon RDS tidak mendukung kunci KMS asimetris. Untuk informasi selengkapnya, lihat [Membuat kunci enkripsi simetris KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) di *Panduan Developer AWS Key Management Service *.
+ `@overwrite_s3_backup_file` – Nilai yang menunjukkan apakah file backup yang sudah ada akan ditimpa.
  + `0` – Tidak menimpa file yang ada. Nilai ini adalah default.

    Mengatur `@overwrite_s3_backup_file` ke 0 akan menghasilkan kesalahan jika file sudah ada.
  + `1` – Menimpa file yang sudah ada dengan nama yang ditentukan, meskipun itu bukan file cadangan.
+ `@type` – Jenis pencadangan.
  + `DIFFERENTIAL` – Membuat pencadangan diferensial.
  + `FULL` – Membuat backup penuh. Nilai ini adalah default.

  Pencadangan diferensial didasarkan pada backup penuh yang terakhir. Agar pencadangan diferensial berhasil, Anda tidak dapat mengambil snapshot antara backup penuh terakhir dan pencadangan diferensial. Jika Anda menginginkan pencadangan diferensial, tetapi ada snapshot, lakukan pencadangan penuh lainnya sebelum melanjutkan dengan pencadangan diferensial.

  Anda dapat mencari backup penuh atau snapshot terakhir menggunakan contoh kueri SQL berikut:

  ```
  select top 1
  database_name
  , 	backup_start_date
  , 	backup_finish_date
  from    msdb.dbo.backupset
  where   database_name='mydatabase'
  and     type = 'D'
  order by backup_start_date desc;
  ```
+ `@number_of_files` – Jumlah file yang menjadi tempat di mana backup akan terbagi (terpotong). Jumlah maksimum adalah 10.
  + Pencadangan multi-file didukung untuk backup penuh dan pencadangan diferensial.
  + Jika Anda memasukkan nilai 1 atau menghilangkan parameter, akan dibuat file backup tunggal.

  Berikan awalan yang sama-sama dimiliki beberapa file tersebut, lalu akhiri dengan tanda bintang (`*`). Tanda bintang dapat berada di mana saja di *file\$1name* bagian S3 ARN. Tanda bintang diganti dengan serangkaian string alfanumerik dalam file yang dihasilkan, dimulai dengan `1-of-number_of_files`.

  Misalnya, jika nama file pada S3 ARN adalah `backup*.bak` dan Anda mengatur `@number_of_files=4`, file backup yang dihasilkan adalah `backup1-of-4.bak`, `backup2-of-4.bak`, `backup3-of-4.bak`, dan `backup4-of-4.bak`.
  + Jika salah satu nama file sudah ada, dan `@overwrite_s3_backup_file` adalah 0, akan muncul kesalahan.
  + Cadangan multifile hanya dapat memiliki satu tanda bintang di *file\$1name* bagian S3 ARN.
  + Cadangan file tunggal dapat memiliki sejumlah tanda bintang di bagian S3 ARN*file\$1name*. Tanda bintang tidak dihapus dari nama file yang dihasilkan.
+ `@block_size`— Ukuran blok (dalam byte) yang menentukan ukuran blok fisik untuk operasi cadangan. Nilai yang valid adalah 512, 1024, 2048, 4096, 8192, 16384, 32768, dan 65536
+ `@max_transfer_size`Ukuran transfer maksimum menunjukkan batas atas volume data (dalam byte) yang ditransmisikan per I/O operasi selama proses pencadangan. Nilai yang valid adalah kelipatan 65536 byte (64 KB) hingga 4194304 byte (4 MB). 
+ `@buffer_count`— Jumlah total I/O buffer yang akan digunakan untuk proses pencadangan.
+ `@enable_bucket_default_encryption`— Nilai yang menunjukkan apakah akan menggunakan konfigurasi enkripsi default bucket S3 untuk enkripsi sisi server di S3. Bucket direktori selalu menggunakan konfigurasi enkripsi default bucket terlepas dari pengaturan ini.
  + `0`— Enkripsi sisi server menggunakan enkripsi 256-bit Advanced Encryption Standard (AES) melalui SSE-S3.
  + `1`[— Enkripsi sisi server menggunakan enkripsi default yang dikonfigurasi bucket S3 Anda.](https://docs.aws.amazon.com//AmazonS3/latest/userguide/bucket-encryption.html) 

### Contoh
<a name="SQLServer.Procedural.Importing.Native.Backup.Examples"></a>

**Example dari pencadangan diferensial**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup1.bak',
@overwrite_s3_backup_file=1,
@type='DIFFERENTIAL';
```

**Example cadangan penuh dengan enkripsi sisi klien**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup1.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE',
@overwrite_s3_backup_file=1,
@type='FULL';
```

**Example dari pencadangan multi-file**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@number_of_files=4;
```

**Example dari pencadangan diferensial multi-file**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@type='DIFFERENTIAL',
@number_of_files=4;
```

**Example dari pencadangan multi-file dengan enkripsi**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE',
@number_of_files=4;
```

**Example dari pencadangan multi-file dengan penimpaan S3**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@overwrite_s3_backup_file=1,
@number_of_files=4;
```

**Example cadangan dengan ukuran blok**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@block_size=512;
```

**Example cadangan multifile dengan `@max_transfer_size` dan `@buffer_count`**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@number_of_files=4,
@max_transfer_size=4194304,
@buffer_count=10;
```

**Example dari pencadangan file tunggal dengan parameter @number\$1of\$1files**  
Contoh ini menghasilkan file backup dengan nama `backup*.bak`.  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@number_of_files=1;
```

**Example cadangan penuh dengan enkripsi sisi server**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak',
@overwrite_s3_backup_file=1,
@type='FULL',
@enable_bucket_default_encryption=1;
```

**Example cadangan penuh menggunakan titik akses**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point/object/backup1.bak',
@overwrite_s3_backup_file=1,
@type='FULL';
```

**Example cadangan penuh menggunakan titik akses untuk ember direktori**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3express:us-east-1:123456789012:accesspoint/my-access-point--use1-az6--xa-s3/object/backup1.bak',
@overwrite_s3_backup_file=1,
@type='FULL';
```

## Memulihkan basis data
<a name="SQLServer.Procedural.Importing.Native.Using.Restore"></a>

Untuk memulihkan basis data Anda, panggil prosedur tersimpan `rds_restore_database`. Amazon RDS membuat snapshot awal basis data setelah tugas pemulihan selesai dan basis data terbuka.

### Penggunaan
<a name="SQLServer.Procedural.Importing.Native.Restore.Syntax"></a>

```
exec msdb.dbo.rds_restore_database
	@restore_db_name='database_name',
	@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name.extension',
	@with_norecovery=0|1,
	[@keep_cdc=0|1],
	[@data_file_volume='D:|H:|I:|J:'],
	[@log_file_volume='D:|H:|I:|J:'],
	[@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'],
        [@block_size=512|1024|2048|4096|8192|16384|32768|65536],
        [@max_transfer_size=n],
        [@buffer_count=n],
	[@type='DIFFERENTIAL|FULL'];
```

Parameter berikut diperlukan:
+ `@restore_db_name` – Nama basis data yang akan dipulihkan. Nama basis data bersifat unik. Anda tidak dapat memulihkan basis data dengan nama yang sama seperti basis data yang sudah ada.
+ `@s3_arn_to_restore_from` – ARN yang menunjukkan prefiks Amazon S3 dan nama file backup yang digunakan untuk memulihkan basis data.
  + Untuk pencadangan file tunggal, berikan seluruh nama file.
  + Berikan awalan yang sama-sama dimiliki beberapa file tersebut, lalu akhiri dengan tanda bintang (`*`).
    + Jika menggunakan bucket direktori, ARN harus diakhiri `/*` karena [perbedaan untuk bucket direktori](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-differences.html).
  + Jika `@s3_arn_to_restore_from` kosong, pesan kesalahan berikut dikembalikan: Awalan ARN S3 tidak boleh kosong.

Parameter berikut ini diperlukan untuk pemulihan diferensial, tetapi opsional untuk pemulihan penuh:
+ `@with_norecovery` – Klausul pemulihan yang digunakan untuk operasi pemulihan.
  + Atur ke `0` untuk memulihkan dengan RECOVERY. Dalam hal ini, basis data sedang online setelah pemulihan.
  + Atur ke `1` untuk memulihkan dengan NORECOVERY. Dalam hal ini, basis data tetap dalam status RESTORING setelah tugas pemulihan selesai. Dengan pendekatan ini, Anda dapat melakukan pemulihan diferensial berikutnya.
  + Untuk pemulihan DIFFERENTIAL, tentukan `0` atau `1`.
  + Untuk pemulihan `FULL`, nilai ini default menjadi `0`.

Parameter berikut ini bersifat opsional:
+ `@keep_cdc`— Menunjukkan apakah akan mempertahankan konfigurasi Change Data Capture (CDC) pada database yang dipulihkan. Setel `1` untuk mengaktifkan KEEP\$1CDC, untuk menonaktifkan. `0` Nilai default-nya adalah `0`.
+ `@data_file_volume`- Menentukan huruf drive untuk file data database. Nilai default-nya adalah `D:`.
+ `@log_file_volume`— Menentukan huruf drive untuk file log database Nilai default adalah`D:`.
+ `@kms_master_key_arn` — Jika Anda mengenkripsi file backup, kunci KMS digunakan untuk mendekripsi file.

  Saat Anda menentukan kunci KMS, enkripsi sisi klien digunakan.
+ `@type` – Jenis pemulihan. Nilai yang valid adalah `DIFFERENTIAL` dan `FULL`. Nilai default-nya adalah `FULL`.
+ `@block_size`— Ukuran blok (dalam byte) yang menentukan ukuran blok fisik untuk operasi cadangan. Nilai yang valid adalah 512, 1024, 2048, 4096, 8192, 16384, 32768, dan 65536
+ `@max_transfer_size`Ukuran transfer maksimum menunjukkan batas atas volume data (dalam byte) yang ditransmisikan per I/O operasi selama proses pencadangan. Nilai yang valid adalah kelipatan 65536 byte (64 KB) hingga 4194304 byte (4 MB). 
+ `@buffer_count`— Jumlah total I/O buffer yang akan digunakan untuk proses pencadangan.

**catatan**  
Untuk pemulihan diferensial, basis data harus berada dalam status RESTORING atau harus ada tugas yang memulihkan dengan NORECOVERY.  
Anda tidak dapat memulihkan pencadangan diferensial di masa mendatang saat basis data online.  
Anda tidak dapat mengirimkan tugas pemulihan untuk basis data yang sudah memiliki tugas pemulihan tertunda dengan RECOVERY.  
Pemulihan penuh dengan NORECOVERY dan KEEP\$1CDC tidak didukung.  
Semua pemulihan asli tidak didukung pada instance yang memiliki replika baca lintas wilayah.  
Untuk konfigurasi yang didukung, memulihkan database pada instance Multi-AZ dengan replika baca mirip dengan memulihkan database pada instance Multi-AZ. Anda tidak perlu mengambil tindakan tambahan apa pun untuk memulihkan basis data di replika.

### Contoh
<a name="SQLServer.Procedural.Importing.Native.Restore.Examples"></a>

**Example dari pemulihan file tunggal**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak';
```

**Example dari pemulihan multi-file**  
Untuk menghindari kesalahan saat memulihkan beberapa file, pastikan semua file backup memiliki awalan yang sama, dan tidak ada file lain yang menggunakan awalan tersebut.  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup*';
```

**Example dari pemulihan basis data penuh dengan RECOVERY**  
Tiga contoh berikut ini melakukan tugas yang sama, pemulihan penuh dengan RECOVERY.  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak';
```

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
[@type='DIFFERENTIAL|FULL'];
```

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@type='FULL',
@with_norecovery=0;
```

**Example dari pemulihan basis data penuh dengan enkripsi**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE';
```

**Example mengembalikan dengan ukuran blok**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@block_size=512;
```

**Example pemulihan multifile dengan @max\$1transfer\$1size dan @buffer\$1count**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup*',
@max_transfer_size=4194304,
@buffer_count=10;
```

**Example dari pemulihan basis data penuh dengan NORECOVERY**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@type='FULL',
@with_norecovery=1;
```

**Example dari pemulihan diferensial dengan NORECOVERY**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@type='DIFFERENTIAL',
@with_norecovery=1;
```

**Example dari pemulihan diferensial dengan RECOVERY**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@type='DIFFERENTIAL',
@with_norecovery=0;
```

**Example pemulihan basis data lengkap dengan RECOVERY menggunakan titik akses**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point/object/backup1.bak',
@with_norecovery=0;
```

**Example pemulihan database lengkap dengan KEEP\$1CDC**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@keep_cdc=1;
```

## Memulihkan log
<a name="SQLServer.Procedural.Importing.Native.Restore.Log"></a>

Untuk memulihkan basis data Anda, panggil prosedur `rds_restore_log` yang disimpan.

### Penggunaan
<a name="SQLServer.Procedural.Importing.Native.Restore.Log.Syntax"></a>

```
exec msdb.dbo.rds_restore_log 
	@restore_db_name='database_name',
	@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/log_file_name.extension',
	[@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'],
	[@with_norecovery=0|1],
	[@keep_cdc=0|1],
	[@stopat='datetime'],
	[@block_size=512|1024|2048|4096|8192|16384|32768|65536],
        [@max_transfer_size=n],
        [@buffer_count=n];
```

Parameter berikut diperlukan:
+ `@restore_db_name` – Nama basis data yang lognya akan dipulihkan.
+ `@s3_arn_to_restore_from` – ARN menunjukkan awalan Amazon S3 dan nama file log yang digunakan untuk memulihkan log. File dapat memiliki ekstensi apa saja, tetapi `.trn` biasanya digunakan.

  Jika `@s3_arn_to_restore_from` kosong, pesan kesalahan berikut dikembalikan: Awalan ARN S3 tidak boleh kosong.

Parameter berikut ini bersifat opsional:
+ `@keep_cdc`— Menunjukkan apakah akan mempertahankan konfigurasi Change Data Capture (CDC) pada database yang dipulihkan. Setel ke 1 untuk mengaktifkan KEEP\$1CDC, 0 untuk menonaktifkan. Nilai default-nya adalah 0.
+ `@kms_master_key_arn` — Jika Anda mengenkripsi log, kunci KMS digunakan untuk mendekripsi log.
+ `@with_norecovery` – Klausul pemulihan yang digunakan untuk operasi pemulihan. Nilai ini default menjadi `1`.
  + Atur ke `0` untuk memulihkan dengan RECOVERY. Dalam hal ini, basis data sedang online setelah pemulihan. Anda tidak dapat memulihkan backup log lebih lanjut saat basis data sedang online.
  + Atur ke `1` untuk memulihkan dengan NORECOVERY. Dalam hal ini, basis data tetap dalam status RESTORING setelah tugas pemulihan selesai. Dengan pendekatan ini, Anda dapat melakukan pemulihan log berikutnya.
+ `@stopat` – Nilai yang menentukan bahwa basis data dipulihkan ke statusnya pada tanggal dan waktu yang ditentukan (dalam format tanggal). Hanya catatan log transaksi yang ditulis sebelum tanggal dan waktu yang ditentukan diterapkan ke basis data.

  Jika parameter ini tidak ditentukan (NULL), log lengkap dipulihkan.
+ `@block_size`— Ukuran blok (dalam byte) yang menentukan ukuran blok fisik untuk operasi cadangan. Nilai yang valid adalah 512, 1024, 2048, 4096, 8192, 16384, 32768, dan 65536
+ `@max_transfer_size`Ukuran transfer maksimum menunjukkan batas atas volume data (dalam byte) yang ditransmisikan per I/O operasi selama proses pencadangan. Nilai yang valid adalah kelipatan 65536 byte (64 KB) hingga 4194304 byte (4 MB). 
+ `@buffer_count`— Jumlah total I/O buffer yang akan digunakan untuk proses pencadangan.

**catatan**  
Untuk pemulihan log, basis data harus dalam keadaan memulihkan atau tugas yang memulihkan dengan NORECOVERY harus sudah ada.  
Anda tidak dapat memulihkan backup log saat basis data sedang online.  
Anda tidak dapat mengirimkan tugas pemulihan di basis data yang sudah memiliki tugas pemulihan tertunda dengan RECOVERY.

### Contoh
<a name="SQLServer.Procedural.Importing.Native.Restore.Log.Examples"></a>

**Example dari pemulihan log**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn';
```

**Example dari pemulihan log dengan enkripsi**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE';
```

**Example dari pemulihan log dengan NORECOVERY**  
Dua contoh berikut melakukan tugas yang sama, pemulihan log dengan NORECOVERY.  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@with_norecovery=1;
```

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn';
```

**Example mengembalikan dengan ukuran blok**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@block_size=512;
```

**Example dari pemulihan log dengan RECOVERY**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@with_norecovery=0;
```

**Example dari pemulihan log dengan klausul STOPAT**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@with_norecovery=0,
@stopat='2019-12-01 03:57:09';
```

**Example pemulihan log dengan KEEP\$1CDC**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@keep_cdc=1;
```

## Menyelesaikan pemulihan basis data
<a name="SQLServer.Procedural.Importing.Native.Finish.Restore"></a>

Jika tugas pemulihan terakhir pada basis data dilakukan menggunakan `@with_norecovery=1`, basis data sekarang dalam status RESTORING. Buka basis data ini untuk operasi normal dengan menggunakan prosedur tersimpan `rds_finish_restore`.

### Penggunaan
<a name="SQLServer.Procedural.Importing.Native.Finish.Restore.Syntax"></a>

```
exec msdb.dbo.rds_finish_restore @db_name='database_name';
```

**catatan**  
Untuk menggunakan pendekatan ini, basis data harus berada dalam status RESTORING tanpa ada tugas pemulihan yang tertunda.  
Untuk menyelesaikan pemulihan basis data, gunakan master login. Atau gunakan login pengguna terbaru yang memulihkan basis data atau log dengan NORECOVERY.

## Bekerja dengan basis data yang dipulihkan secara parsial
<a name="SQLServer.Procedural.Importing.Native.Partially.Restored"></a>

### Menghilangkan basis data yang dipulihkan parsial
<a name="SQLServer.Procedural.Importing.Native.Drop.Partially.Restored"></a>

Untuk melepaskan basis data yang dipulihkan parsial (dibiarkan dalam status RESTORING), gunakan prosedur tersimpan `rds_drop_database`.

```
exec msdb.dbo.rds_drop_database @db_name='database_name';
```

**catatan**  
Anda tidak dapat mengirimkan permintaan DROP basis data untuk basis data yang sudah memiliki tugas pemulihan tertunda atau sudah menyelesaikan tugas pemulihan.  
Untuk melepaskan basis data, gunakan master login. Atau gunakan login pengguna terbaru yang memulihkan basis data atau log dengan NORECOVERY.

### Perilaku pemulihan dan point-in-time pemulihan snapshot untuk database yang dipulihkan sebagian
<a name="SQLServer.Procedural.Importing.Native.Snapshot.Restore"></a>

Database yang dipulihkan sebagian dalam instance sumber (dibiarkan dalam status RESTORING) dijatuhkan dari instance target selama pemulihan dan pemulihan snapshot. point-in-time

## Membatalkan tugas
<a name="SQLServer.Procedural.Importing.Native.Using.Cancel"></a>

Untuk membatalkan tugas pencadangan atau pemulihan, panggil prosedur yang tersimpan `rds_cancel_task`.

**catatan**  
Anda tidak dapat membatalkan tugas FINISH\$1RESTORE.

### Penggunaan
<a name="SQLServer.Procedural.Importing.Native.Cancel.Syntax"></a>

```
exec msdb.dbo.rds_cancel_task @task_id=ID_number;
```

Parameter berikut diperlukan:
+ `@task_id` – ID tugas yang dibatalkan. Anda bisa mendapatkan ID tugas dengan memanggil `rds_task_status`. 

## Melacak status tugas
<a name="SQLServer.Procedural.Importing.Native.Tracking"></a>

Untuk melacak status tugas pencadangan dan pemulihan Anda, panggil prosedur tersimpan `rds_task_status`. Jika Anda tidak memberikan parameter apa pun, prosedur yang tersimpan akan memperlihatkan status semua tugas. Status tugas diperbarui kira-kira setiap dua menit sekali. Riwayat tugas disimpan selama 36 hari.

### Penggunaan
<a name="SQLServer.Procedural.Importing.Native.Tracking.Syntax"></a>

```
exec msdb.dbo.rds_task_status
	[@db_name='database_name'],
	[@task_id=ID_number];
```

Parameter berikut ini bersifat opsional: 
+ `@db_name` – Nama basis data yang status tugasnya akan ditampilkan.
+ `@task_id` – ID tugas untuk menunjukkan status tugas.

### Contoh
<a name="SQLServer.Procedural.Importing.Native.Tracking.Examples"></a>

**Example untuk menyusun daftar status untuk tugas tertentu**  

```
exec msdb.dbo.rds_task_status @task_id=5;
```

**Example untuk menyusun daftar status untuk basis data dan tugas tertentu**  

```
exec msdb.dbo.rds_task_status
@db_name='my_database',
@task_id=5;
```

**Example untuk menyusun daftar semua tugas dan statusnya di basis data tertentu**  

```
exec msdb.dbo.rds_task_status @db_name='my_database';
```

**Example untuk menyusun daftar semua tugas dan statusnya di instans saat ini**  

```
exec msdb.dbo.rds_task_status;
```

### Respons
<a name="SQLServer.Procedural.Importing.Native.Tracking.Response"></a>

Prosedur tersimpan `rds_task_status` memunculkan kolom berikut.


****  

| Kolom | Deskripsi | 
| --- | --- | 
| `task_id` |  ID tugas.   | 
| `task_type` |  Jenis tugas tergantung pada parameter input, sebagai berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html) Amazon RDS membuat snapshot awal basis data setelah basis data terbuka saat menyelesaikan tugas pemulihan berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html)  | 
| `database_name` |  Nama basis data yang terkait dengan tugas.   | 
| `% complete` |  Kemajuan tugas sebagai nilai persen.   | 
| `duration (mins)` |  Durasi yang dihabiskan untuk tugas, dalam menit.   | 
| `lifecycle` |  Status tugas. Status yang mungkin adalah sebagai berikut:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html)  | 
| `task_info` |  Informasi tambahan tentang tugas.  Jika terjadi kesalahan saat membuat backup atau memulihkan basis data, kolom ini berisi informasi tentang kesalahan tersebut. Untuk daftar kesalahan yang mungkin terjadi, dan strategi mitigasinya, lihat [Pemecahan Masalah](SQLServer.Procedural.Importing.Native.Troubleshooting.md).   | 
| `last_updated` |  Tanggal dan waktu status tugas terakhir diperbarui. Status akan diperbarui setelah setiap 5 persen kemajuan.  | 
| `created_at` | Tanggal dan waktu tugas dibuat. | 
| S3\$1object\$1arn | ARN menunjukkan awalan Amazon S3 dan nama file yang sedang dicadangkan atau dipulihkan. | 
| `overwrite_s3_backup_file` |  Nilai dari parameter `@overwrite_s3_backup_file` yang ditentukan saat memanggil tugas pencadangan. Untuk informasi selengkapnya, lihat [Membuat backup basis data](#SQLServer.Procedural.Importing.Native.Using.Backup).  | 
| KMS\$1master\$1key\$1arn | ARN untuk kunci KMS yang digunakan untuk enkripsi (untuk pencadangan) dan dekripsi (untuk pemulihan). | 
| filepath | Tidak berlaku untuk tugas pencadangan native dan pemulihan native. | 
| overwrite\$1file | Tidak berlaku untuk tugas pencadangan native dan pemulihan native. | 

# Mengompresi file backup
<a name="SQLServer.Procedural.Importing.Native.Compression"></a>

Untuk menghemat ruang di bucket Amazon S3, Anda dapat mengompresi file backup. Untuk informasi selengkapnya tentang pengompresan file backup, lihat [Backup compression](https://msdn.microsoft.com/en-us/library/bb964719.aspx) dalam dokumentasi Microsoft. 

Pengompresan file backup didukung untuk edisi basis data berikut: 
+ Edisi Perusahaan Microsoft SQL Server 
+ Edisi Standar Microsoft SQL Server 

Untuk memverifikasi opsi kompresi untuk file cadangan Anda, jalankan kode berikut:

```
1. exec rdsadmin.dbo.rds_show_configuration 'S3 backup compression';
```

Untuk mengaktifkan kompresi untuk file backup Anda, jalankan kode berikut:

```
1. exec rdsadmin.dbo.rds_set_configuration 'S3 backup compression', 'true';
```

Untuk mengaktifkan kompresi untuk file backup Anda, jalankan kode berikut: 

```
1. exec rdsadmin.dbo.rds_set_configuration 'S3 backup compression', 'false';
```

# Pemecahan Masalah
<a name="SQLServer.Procedural.Importing.Native.Troubleshooting"></a>

Berikut adalah masalah yang mungkin Anda hadapi saat menggunakan pencadangan native dan pemulihan native.


****  

| Masalah | Saran pemecahan masalah | 
| --- | --- | 
|  Opsi pencadangan/pemulihan basis data belum diaktifkan atau sedang dalam proses diaktifkan. Silakan di coba lagi nanti.  |  Pastikan Anda telah menambahkan opsi `SQLSERVER_BACKUP_RESTORE` ke grup opsi DB yang terkait dengan instans DB Anda. Untuk informasi selengkapnya, lihat [Menambahkan opsi pencadangan dan pemulihan native](Appendix.SQLServer.Options.BackupRestore.md#Appendix.SQLServer.Options.BackupRestore.Add).  | 
|  Izin EXECUTE ditolak pada objek '', database *rds\$1backup\$1database* 'msdb', skema 'dbo'.  |  Pastikan Anda menggunakan pengguna master saat menjalankan prosedur yang disimpan. Jika Anda mengalami kesalahan ini bahkan setelah masuk sebagai pengguna utama, itu mungkin karena izin pengguna admin tidak sejajar. Untuk mengatur ulang pengguna master, gunakan file Konsol Manajemen AWS. Lihat [Menyetel ulang keanggotaan peran db\$1owner untuk pengguna master untuk Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.ResetPassword.md).   | 
|  Izin EXECUTE ditolak pada objek '', database *rds\$1restore\$1database* 'msdb', skema 'dbo'.  |  Pastikan Anda menggunakan pengguna master saat menjalankan prosedur yang disimpan. Jika Anda mengalami kesalahan ini bahkan setelah masuk sebagai pengguna utama, itu mungkin karena izin pengguna admin tidak sejajar. Untuk mengatur ulang pengguna master, gunakan file Konsol Manajemen AWS. Lihat [Menyetel ulang keanggotaan peran db\$1owner untuk pengguna master untuk Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.ResetPassword.md).   | 
|  Akses Ditolak  | Proses pencadangan atau pemulihan tidak dapat mengakses file backup. Hal ini biasanya disebabkan oleh masalah seperti berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Troubleshooting.html)  | 
|  BACKUP basis data WITH COMPRESSION tidak didukung pada Edisi <edition\$1name>  |  Mengompresi file backup Anda hanya didukung untuk Edisi Perusahaan dan Edisi Standar Microsoft SQL Server. Untuk informasi selengkapnya, lihat [Mengompresi file backup](SQLServer.Procedural.Importing.Native.Compression.md).   | 
|  Kunci <ARN> tidak ada  |  Anda mencoba memulihkan backup terenkripsi, tetapi tidak menyediakan kunci enkripsi yang valid. Periksa kunci enkripsi Anda dan coba lagi. Untuk informasi selengkapnya, lihat [Memulihkan basis data](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Restore).   | 
|  Silakan menerbitkan ulang tugas dengan properti ketik dan timpa yang benar  |  Jika Anda mencoba membuat backup basis data dan memberikan nama file yang sudah ada, tetapi mengatur properti overwrite ke false, operasi penyimpanan gagal. Untuk memperbaiki kesalahan ini, berikan nama file yang belum ada, atau atur properti overwrite ke true. Untuk informasi selengkapnya, lihat [Membuat backup basis data](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Backup). Mungkin saja Anda ingin memulihkan basis data Anda, tetapi memanggil prosedur tersimpan `rds_backup_database` secara tidak sengaja. Dalam hal ini, panggil prosedur tersimpan `rds_restore_database`. Untuk informasi selengkapnya, lihat [Memulihkan basis data](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Restore). Jika Anda ingin memulihkan basis data dan memanggil prosedur tersimpan `rds_restore_database`, pastikan bahwa Anda memberikan nama file backup yang valid. Untuk informasi selengkapnya, lihat [Menggunakan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Using.md).  | 
|  Silakan tentukan bucket yang berada di wilayah yang sama dengan instans RDS  |  Anda tidak dapat mencadangkan, atau memulihkan dari, bucket Amazon S3 di AWS Wilayah lain dari instans Amazon RDS DB Anda. Anda dapat menggunakan replikasi Amazon S3 untuk menyalin file cadangan ke Wilayah yang benar. AWS  Untuk informasi lebih lanjut, lihat [Replikasi Lintas Wilayah](https://docs.aws.amazon.com/AmazonS3/latest/userguide/crr.html) dalam dokumentasi Amazon S3.  | 
|  Bucket yang ditentukan tidak ada  | Pastikan bahwa Anda telah memberikan ARN yang benar untuk bucket dan file Anda, dalam format yang benar.  Untuk informasi selengkapnya, lihat [Menggunakan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Using.md).  | 
|  Pengguna <ARN> tidak berwenang untuk melakukan <kms action> pada sumber daya <ARN>  |  Anda meminta operasi terenkripsi, tetapi tidak memberikan izin yang benar AWS KMS . Verifikasi bahwa Anda memiliki izin yang benar, atau tambahkan.  Untuk informasi selengkapnya, lihat [Menyiapkan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Enabling.md).  | 
|  Tugas Pemulihan tidak dapat memulihkan dari lebih dari 10 file backup. Kurangi jumlah file yang dicocokkan dan coba lagi.  |  Kurangi jumlah file yang ingin Anda gunakan untuk pemulihan. Anda dapat menjadikan setiap file lebih besar kalau perlu.  | 
|  Database *database\$1name* '' sudah ada. Dua basis data yang berbeda besar huruf atau aksen tidak diperbolehkan. Pilih nama basis data yang berbeda.  |  Anda tidak dapat memulihkan basis data dengan nama yang sama seperti basis data yang sudah ada. Nama basis data bersifat unik.  | 

# Mengimpor dan mengekspor data SQL Server menggunakan metode lain
<a name="SQLServer.Procedural.Importing.Snapshots"></a>

Selanjutnya, Anda dapat menemukan informasi tentang penggunaan snapshot untuk mengimpor data Microsoft SQL Server Anda ke Amazon RDS. Anda juga dapat menemukan informasi tentang penggunaan snapshot untuk mengekspor data Anda dari instans DB RDS yang menjalankan SQL Server. 

Jika skenario Anda mendukung, lebih mudah untuk memindahkan data ke dan dari Amazon RDS dengan menggunakan fungsi pencadangan native dan pemulihan native. Untuk informasi selengkapnya, lihat [Mengimpor dan mengekspor basis data SQL Server menggunakan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.md). 

**catatan**  
Amazon RDS for Microsoft SQL Server tidak mendukung impor data ke basis data `msdb`. 

## Mengimpor data ke RDS for SQL Server dengan menggunakan snapshot
<a name="SQLServer.Procedural.Importing.Procedure"></a>

**Untuk mengimpor data ke dalam instans DB SQL Server dengan menggunakan snapshot**

1. Buat instans DB. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).

1. Hentikan aplikasi dari mengakses instans DB tujuan. 

   Jika Anda mencegah akses ke instans DB saat mengimpor data, transfer data akan lebih cepat. Selain itu, Anda tidak perlu khawatir tentang konflik ketika data sedang dimuat jika aplikasi lain tidak dapat menulis ke instans DB pada waktu yang sama. Jika ada yang salah dan Anda harus kembali ke snapshot basis data sebelumnya, satu-satunya perubahan yang hilang adalah data hasil impor. Anda dapat mengimpor data ini kembali setelah Anda menyelesaikan masalah. 

   Untuk informasi tentang mengendalikan akses ke instans DB Anda, lihat [Mengontrol akses dengan grup keamanan](Overview.RDSSecurityGroups.md). 

1. Buat snapshot basis data target. 

   Jika basis data target sudah terisi data, kami menyarankan agar Anda mengambil snapshot basis data sebelum Anda melakukan impor data. Jika ada yang salah dalam impor data atau Anda ingin membuang perubahan, Anda dapat memulihkan basis data ke status sebelumnya dengan menggunakan snapshot. Untuk informasi tentang snapshot basis data, lihat [Membuat snapshot DB untuk instans DB AZ tunggal untuk Amazon RDS](USER_CreateSnapshot.md). 
**catatan**  
Saat Anda mengambil snapshot database, I/O operasi ke database ditangguhkan sesaat (milidetik) saat pencadangan sedang berlangsung. 

1. Nonaktifkan pencadangan otomatis pada basis data target. 

   Menonaktifkan pencadangan otomatis pada instans DB target akan meningkatkan performa saat Anda mengimpor data Anda karena Amazon RDS tidak mencatat transaksi ketika pencadangan otomatis dinonaktifkan. Namun, ada beberapa hal yang perlu dipertimbangkan. Pencadangan otomatis diperlukan untuk melakukan pemulihan. point-in-time Dengan demikian, Anda tidak dapat memulihkan basis data ke titik waktu tertentu saat Anda melakukan impor data. Selain itu, semua pencadangan otomatis yang dibuat di instans DB akan dihapus kecuali jika Anda memilih untuk menyimpannya. 

   Memilih untuk menyimpan pencadangan otomatis dapat membantu melindungi Anda dari menghapus data secara tidak sengaja. Amazon RDS juga menyimpan properti instans basis data bersamaan dengan setiap pencadangan otomatis agar mudah dipulihkan. Menggunakan opsi ini memungkinkan Anda memulihkan instance database yang dihapus ke titik waktu tertentu dalam periode retensi cadangan bahkan setelah menghapusnya. Pencadangan otomatis secara otomatis dihapus di akhir waktu backup yang ditentukan, seperti halnya untuk instans basis data aktif. 

   Anda juga dapat menggunakan snapshot sebelumnya untuk memulihkan basis data, dan semua snapshot yang Anda ambil tetap tersedia. Untuk mengetahui informasi tentang pencadangan otomatis, lihat [Pengantar cadangan](USER_WorkingWithAutomatedBackups.md). 

1. Nonaktifkan batasan kunci asing, jika berlaku. 

    Jika Anda perlu menonaktifkan batasan kunci asing, Anda dapat melakukannya dengan skrip berikut. 

   ```
   --Disable foreign keys on all tables
       DECLARE @table_name SYSNAME;
       DECLARE @cmd NVARCHAR(MAX);
       DECLARE table_cursor CURSOR FOR SELECT name FROM sys.tables;
       
       OPEN table_cursor;
       FETCH NEXT FROM table_cursor INTO @table_name;
       
       WHILE @@FETCH_STATUS = 0 BEGIN
         SELECT @cmd = 'ALTER TABLE '+QUOTENAME(@table_name)+' NOCHECK CONSTRAINT ALL';
         EXEC (@cmd);
         FETCH NEXT FROM table_cursor INTO @table_name;
       END
       
       CLOSE table_cursor;
       DEALLOCATE table_cursor;
       
       GO
   ```

1. Lepaskan indeks, jika berlaku. 

1. Nonaktifkan pemicu, jika berlaku. 

    Jika Anda perlu menonaktifkan pemicu, Anda dapat melakukannya dengan skrip berikut. 

   ```
   --Disable triggers on all tables
       DECLARE @enable BIT = 0;
       DECLARE @trigger SYSNAME;
       DECLARE @table SYSNAME;
       DECLARE @cmd NVARCHAR(MAX);
       DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
        table_object.name table_name
       FROM sysobjects trigger_object
       JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
       WHERE trigger_object.type = 'TR';
       
       OPEN trigger_cursor;
       FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
       
       WHILE @@FETCH_STATUS = 0 BEGIN
         IF @enable = 1
            SET @cmd = 'ENABLE ';
         ELSE
            SET @cmd = 'DISABLE ';
       
         SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
         EXEC (@cmd);
         FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
       END
       
       CLOSE trigger_cursor;
       DEALLOCATE trigger_cursor;
       
       GO
   ```

1. Kueri sumber instans SQL Server untuk setiap login yang ingin Anda impor ke instans DB tujuan. 

   SQL Server menyimpan login dan kata sandi di basis data `master`. Karena Amazon RDS tidak memberikan akses ke basis data `master`, Anda tidak dapat langsung melakukan impor login dan kata sandi ke instans DB tujuan Anda. Sebaliknya, Anda harus kueri basis data `master` pada sumber instans SQL Server untuk membuat file data definition language (DDL). File ini harus mencakup semua login dan kata sandi yang ingin Anda tambahkan ke instans DB tujuan. File ini juga harus menyertakan keanggotaan peran dan izin yang ingin Anda transfer. 

   Untuk informasi tentang kueri `master` database, lihat [Mentransfer login dan kata sandi antar instance SQL Server di](https://learn.microsoft.com/en-us/troubleshoot/sql/database-engine/security/transfer-logins-passwords-between-instances) Pangkalan Pengetahuan Microsoft.

   Output dari skrip tersebut adalah skrip lain yang dapat Anda jalankan di instans DB tujuan. Script dalam artikel Knowledge Base memiliki kode berikut: 

   ```
   p.type IN 
   ```

   Setiap tempat `p.type` muncul, gunakan kode berikut ini: 

   ```
   p.type = 'S' 
   ```

1. Impor data menggunakan metode di [Mengimpor data](#ImportData.SQLServer.Import). 

1. Berikan akses aplikasi ke instans DB target. 

   Setelah impor data selesai, Anda dapat memberikan akses ke instans DB pada aplikasi yang Anda blokir selama impor. Untuk informasi tentang mengendalikan akses ke instans DB Anda, lihat [Mengontrol akses dengan grup keamanan](Overview.RDSSecurityGroups.md). 

1. Aktifkan pencadangan otomatis pada instans DB target. 

   Untuk mengetahui informasi tentang pencadangan otomatis, lihat [Pengantar cadangan](USER_WorkingWithAutomatedBackups.md). 

1. Aktifkan batasan kunci asing. 

    Jika Anda menonaktifkan batasan kunci asing sebelumnya, sekarang Anda dapat mengaktifkannya dengan skrip berikut. 

   ```
   --Enable foreign keys on all tables
       DECLARE @table_name SYSNAME;
       DECLARE @cmd NVARCHAR(MAX);
       DECLARE table_cursor CURSOR FOR SELECT name FROM sys.tables;
       
       OPEN table_cursor;
       FETCH NEXT FROM table_cursor INTO @table_name;
       
       WHILE @@FETCH_STATUS = 0 BEGIN
         SELECT @cmd = 'ALTER TABLE '+QUOTENAME(@table_name)+' CHECK CONSTRAINT ALL';
         EXEC (@cmd);
         FETCH NEXT FROM table_cursor INTO @table_name;
       END
       
       CLOSE table_cursor;
       DEALLOCATE table_cursor;
   ```

1. Aktifkan indeks, jika berlaku.

1. Aktifkan pemicu, jika berlaku.

    Jika Anda menonaktifkan pemicu sebelumnya, sekarang Anda dapat mengaktifkannya dengan skrip berikut. 

   ```
   --Enable triggers on all tables
       DECLARE @enable BIT = 1;
       DECLARE @trigger SYSNAME;
       DECLARE @table SYSNAME;
       DECLARE @cmd NVARCHAR(MAX);
       DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
        table_object.name table_name
       FROM sysobjects trigger_object
       JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
       WHERE trigger_object.type = 'TR';
       
       OPEN trigger_cursor;
       FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
       
       WHILE @@FETCH_STATUS = 0 BEGIN
         IF @enable = 1
            SET @cmd = 'ENABLE ';
         ELSE
            SET @cmd = 'DISABLE ';
       
         SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
         EXEC (@cmd);
         FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
       END
       
       CLOSE trigger_cursor;
       DEALLOCATE trigger_cursor;
   ```

### Mengimpor data
<a name="ImportData.SQLServer.Import"></a>

Microsoft SQL Server Management Studio adalah klien SQL Server grafis yang disertakan dalam semua edisi Microsoft SQL Server kecuali Edisi Ekspres. SQL Server Management Studio Express tersedia dari Microsoft sebagai unduhan gratis. Untuk menemukan unduhan ini, lihat [situs web Microsoft](https://www.microsoft.com/en-us/download). 

**catatan**  
SQL Server Management Studio hanya tersedia sebagai aplikasi berbasis Windows.

SQL Server Management Studio mencakup alat-alat berikut, yang berguna dalam melakukan impor data ke instans DB SQL Server: 
+ Wizard Membuat dan Menerbitkan Skrip
+ Wizard Impor dan Ekspor
+ Penyalinan massal

#### Wizard Membuat dan Menerbitkan Skrip
<a name="ImportData.SQLServer.MgmtStudio.ScriptWizard"></a>

Wizard Membuat dan Menerbitkan Skrip membuat skrip yang berisi skema basis data, data itu sendiri, atau keduanya. Anda dapat membuat skrip untuk basis data dalam deployment SQL Server lokal Anda. Kemudian, Anda dapat menjalankan skrip untuk mentransfer informasi yang dimuat ke instans DB Amazon RDS. 

**catatan**  
Untuk basis data sebesar 1 GiB atau lebih besar, lebih efisien jika hanya membuat skrip skema basis data. Anda kemudian menggunakan Wizard Impor dan Ekspor atau fitur penyalinan massal dari SQL Server untuk mentransfer data.

Untuk informasi terperinci tentang Wizard Membuat dan Menerbitkan Skrip, lihat [Dokumentasi Microsoft SQL Server](http://msdn.microsoft.com/en-us/library/ms178078%28v=sql.105%29.aspx). 

Di dalam wizard, perhatikan dengan cermat opsi lanjutan pada halaman **Tetapkan Opsi Pembuatan Skrip** untuk memastikan bahwa semua yang Anda inginkan dalam skrip Anda sudah dipilih. Misalnya, secara default, pemicu basis data tidak disertakan dalam skrip.

Saat skrip dibuat dan disimpan, Anda dapat menggunakan SQL Server Management Studio untuk membuat koneksi ke instans DB Anda lalu menjalankan skrip tersebut.

#### Wizard Impor dan Ekspor
<a name="ImportData.SQLServer.MgmtStudio.ImportExportWizard"></a>

Wizard Impor dan Ekspor membuat paket Layanan Integrasi khusus, yang dapat Anda gunakan untuk menyalin data dari basis data SQL Server lokal Anda ke instans DB tujuan. Wizard dapat menyaring tabel mana dan bahkan tuple mana dalam tabel yang disalin ke instans DB tujuan.

**catatan**  
Wizard Impor dan Ekspor berfungsi dengan baik untuk set data besar, tapi mungkin bukan cara tercepat untuk melakukan ekspor data jarak jauh dari deployment lokal Anda. Untuk cara yang lebih cepat, pertimbangkan fitur penyalinan massal SQL Server.

Untuk informasi terperinci tentang Wizard Impor dan Ekspor, lihat [Dokumentasi Microsoft SQL Server](http://msdn.microsoft.com/en-us/library/ms140052%28v=sql.105%29.aspx).

Dalam wizard, di halaman **Pilih Tujuan**, lakukan hal berikut:
+ Untuk **Nama Server**, ketik nama titik akhir untuk instans DB Anda.
+ Untuk mode autentikasi server, pilih **Gunakan Autentikasi SQL Server**.
+ Untuk **Nama pengguna** dan **Kata Sandi**, ketik kredensial untuk pengguna utama yang Anda buat untuk instans DB.

#### Penyalinan massal
<a name="ImportData.SQLServer.MgmtStudio.BulkCopy"></a>

Fitur penyalinan massal SQL Server adalah cara efisien menyalin data dari basis data sumber ke instans DB Anda. Penyalinan massal menuliskan data yang Anda tentukan ke file data, seperti file ASCII. Anda kemudian dapat menjalankan penyalinan massal untuk menulis konten file ke instans DB tujuan. 

Bagian ini menggunakan utilitas **bcp**, yang sudah ada dalam semua edisi SQL Server. Untuk informasi terperinci tentang operasi impor dan ekspor massal, lihat [dokumentasi Microsoft SQL Server](http://msdn.microsoft.com/en-us/library/ms187042%28v=sql.105%29.aspx). 

**catatan**  
Sebelum Anda menggunakan penyalinan massal, Anda harus mengimpor skema basis data Anda terlebih dahulu ke instans DB tujuan. Wizard Membuat dan Menerbitkan Skrip, yang dijelaskan sebelumnya dalam topik ini, adalah alat yang sangat baik untuk tujuan ini. 

Perintah berikut terkoneksi ke instans SQL Server lokal. Perintah tersebut membuat file tab-delimited dari tabel yang ditentukan dalam direktori root C:\$1 dari deployment SQL Server Anda. Tabel ditentukan oleh nama yang sesuai syarat, dan file teks memiliki nama yang sama dengan tabel yang sedang disalin. 

```
bcp dbname.schema_name.table_name out C:\table_name.txt -n -S localhost -U username -P password -b 10000 
```

Kode sebelumnya mencakup opsi berikut:
+ `-n` menentukan bahwa penyalinan massal menggunakan tipe data native dari data yang akan disalin.
+ `-S` menentukan instans SQL Server yang terkoneksi dengan utilitas *bcp*.
+ `-U` menentukan nama pengguna akun untuk login ke instans SQL Server.
+ `-P` menentukan kata sandi untuk pengguna yang ditentukan oleh `-U`.
+ `-b` menentukan jumlah baris per batch dari data yang diimpor.

**catatan**  
Mungkin ada parameter lain yang penting untuk situasi impor Anda. Misalnya, Anda mungkin memerlukan parameter `-E` yang berkaitan dengan nilai identitas. Untuk informasi lebih lanjut; lihat deskripsi lengkap sintaks baris perintah untuk utilitas **bcp** di [Dokumentasi Microsoft SQL Server](http://msdn.microsoft.com/en-us/library/ms162802%28v=sql.105%29.aspx). 

Misalnya, anggaplah basis data bernama `store` yang menggunakan skema default, `dbo`, berisi tabel bernama `customers`. Akun pengguna `admin`, dengan kata sandi `insecure`, menyalin 10.000 baris tabel `customers` ke sebuah file bernama `customers.txt`. 

```
bcp store.dbo.customers out C:\customers.txt -n -S localhost -U admin -P insecure -b 10000 
```

Setelah Anda membuat file data, Anda dapat mengunggah data ke instans DB Anda dengan menggunakan perintah serupa. Sebelumnya, buat basis data dan skema pada instans DB target. Lalu gunakan argumen `in` untuk menentukan file input, bukan `out` untuk menentukan file output. Dibanding menggunakan localhost untuk menentukan instans SQL Server lokal, tentukan titik akhir instans DB Anda. Jika Anda menggunakan port selain 1433, sebutkan juga. Nama pengguna dan kata sandi adalah pengguna utama dan kata sandi untuk instans DB Anda. Sintaksnya adalah sebagai berikut. 

```
bcp dbname.schema_name.table_name 
					in C:\table_name.txt -n -S endpoint,port -U master_user_name -P master_user_password -b 10000
```

Untuk melanjutkan contoh sebelumnya, anggaplah bahwa nama pengguna master adalah `admin`, dan kata sandinya adalah `insecure`. Titik akhir untuk instans DB adalah `rds.ckz2kqd4qsn1.us-east-1.rds.amazonaws.com`, dan Anda menggunakan port 4080. Perintah yang digunakan adalah sebagai berikut. 

```
bcp store.dbo.customers in C:\customers.txt -n -S rds.ckz2kqd4qsn1.us-east-1.rds.amazonaws.com,4080 -U admin -P insecure -b 10000 
```

**catatan**  
Tentukan kata sandi selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

## Mengekspor data dari RDS for SQL Server
<a name="SQLServer.Procedural.Exporting"></a>

Anda dapat memilih salah satu opsi berikut untuk mengekspor data dari instans DB RDS untuk SQL Server:
+ **Pencadangan native untuk basis data menggunakan file backup penuh (.bak)** – Menggunakan .bak file untuk melakukan backup basis data sangatlah optimal, dan biasanya merupakan cara tercepat untuk mengekspor data. Untuk informasi selengkapnya, lihat [Mengimpor dan mengekspor basis data SQL Server menggunakan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.md). 
+ **Wizard Impor dan Ekspor pada SQL Server** – Untuk informasi lebih lanjut, lihat [Wizard Impor dan Ekspor pada SQL Server](#SQLServer.Procedural.Exporting.SSIEW). 
+ **Wizard Membuat dan Menerbitkan Skrip dan utilitas bcp SQL Server** – Untuk informasi lebih lanjut, lihat [Wizard Membuat dan Menerbitkan Skrip dan utilitas bcp pada SQL Server](#SQLServer.Procedural.Exporting.SSGPSW). 

### Wizard Impor dan Ekspor pada SQL Server
<a name="SQLServer.Procedural.Exporting.SSIEW"></a>

Anda dapat menggunakan Wizard Impor and Ekspor SQL Server untuk menyalin satu atau lebih tabel, tampilan, atau kueri dari instans DB RDS untuk SQL Server Anda ke penyimpanan data lain. Pilihan ini baik dilakukan jika penyimpanan data target bukan SQL Server. Untuk informasi selengkapnya, lihat [SQL Server Import and Export Wizard](http://msdn.microsoft.com/en-us/library/ms141209%28v=sql.110%29.aspx) di dokumentasi SQL Server. 

Wizard Impor dan Ekspor pada SQL Server tersedia sebagai bagian dari Microsoft SQL Server Management Studio. Klien SQL Server grafis ini tersedia dalam semua edisi Microsoft SQL Server kecuali Edisi Ekspres. SQL Server Management Studio hanya tersedia sebagai aplikasi berbasis Windows. SQL Server Management Studio Express tersedia dari Microsoft sebagai unduhan gratis. Untuk menemukan unduhan ini, lihat [situs web Microsoft](http://www.microsoft.com/en-us/search/Results.aspx?q=sql%20server%20management%20studio). 

**Untuk menggunakan Wizard Impor dan Ekspor pada SQL Server untuk ekspor data**

1. Dalam SQL Server Management Studio, hubungkan ke instans DB RDS untuk SQL Server Anda. Untuk detail tentang cara melakukannya, lihat [Menyambung ke instans Microsoft SQL Server DB](USER_ConnectToMicrosoftSQLServerInstance.md). 

1. Dalam **Penjelajah objek**, perluas **Basis data**, buka menu konteks (klik kanan) untuk basis data sumber, pilih **Tugas**, lalu pilih **Ekspor Data**. Wizard akan muncul. 

1. Di halaman **Pilih Sumber Data**, lakukan hal berikut:

   1. Untuk **Sumber Data**, pilih **SQL Server Native Client 11.0**. 

   1. Verifikasi bahwa kotak **Nama server** menampilkan titik akhir instans DB RDS untuk SQL Server Anda.

   1. Pilih **Gunakan Autentikasi SQL Server**. Untuk **Nama pengguna** dan **Kata sandi**, ketik nama pengguna master dan kata sandi instans DB Anda.

   1. Verifikasi bahwa kotak **Basis data** menampilkan basis data tempat Anda ingin melakukan ekspor data.

   1. Pilih **Berikutnya**.

1. Pada halaman **Pilih tujuan**, lakukan hal berikut ini:

   1. Untuk **Tujuan**, pilih **SQL Server Native Client 11.0**. 
**catatan**  
Sumber data target lainnya tersedia. Ini termasuk penyedia data .NET Framework, penyedia OLE DB, penyedia SQL Server Native Client, penyedia ADO.NET, Microsoft Office Excel, Microsoft Office Access, dan sumber Flat File. Jika Anda memilih untuk menargetkan salah satu sumber data ini, lewati sisa langkah 4. Untuk detail tentang informasi koneksi yang harus diberikan selanjutnya, lihat [Choose a destination](http://msdn.microsoft.com/en-us/library/ms178430%28v=sql.110%29.aspx) dalam dokumentasi SQL Server. 

   1. Untuk **Nama server**, ketik nama server dari instans DB SQL Server target. 

   1. Pilih jenis autentikasi yang sesuai. Ketik nama pengguna dan kata sandi jika perlu. 

   1. Untuk **Basis data**, pilih nama basis data target, atau pilih **Baru** untuk membuat basis data baru untuk diisi data yang di-ekspor. 

      Jika Anda memilih **Baru**, lihat [Create database](http://msdn.microsoft.com/en-us/library/ms183323%28v=sql.110%29.aspx) dalam dokumentasi SQL Server untuk perincian tentang informasi basis data yang akan diberikan.

   1. Pilih **Berikutnya**.

1. Di halaman **Salinan atau Kueri Tabel**, pilih **Salin data dari satu atau lebih tabel atau tampilan** atau **Tulis kueri untuk menentukan data yang akan ditransfer**. Pilih **Berikutnya**. 

1. Jika Anda memilih **Tulis kueri untuk menentukan data yang akan ditransfer**, Anda akan melihat halaman **Berikan Kueri Sumber**. Ketik atau tempel dalam kueri SQL, lalu pilih **Parse** untuk memverifikasinya. Setelah kueri memvalidasi, pilih **Lanjut**. 

1. Di halaman **Pilih Tabel dan Tampilan Sumber**, lakukan hal berikut:

   1. Pilih tabel dan tampilan yang ingin Anda ekspor, atau verifikasi bahwa kueri yang Anda berikan sudah dipilih.

   1. Pilih **Ubah Pemetaan** dan tentukan basis data dan informasi pemetaan kolom. Untuk informasi lebih lanjut, lihat [Column mappings](http://msdn.microsoft.com/en-us/library/ms189660%28v=sql.110%29.aspx) dalam dokumentasi SQL Server. 

   1. (Opsional) Untuk melihat pratinjau data yang akan diekspor, pilih tabel, tampilan, atau kueri, kemudian pilih **Pratinjau**.

   1. Pilih **Berikutnya**.

1. Di halaman **Jalankan Paket**, pastikan bahwa **Jalankan Segera** dipilih. Pilih **Berikutnya**. 

1. Di halaman **Selesaikan Wizard**, pastikan bahwa detail ekspor data sudah seperti yang Anda harapkan. Pilih **Selesai**. 

1. Di halaman **Eksekusi berhasil**, pilih **Tutup**. 

### Wizard Membuat dan Menerbitkan Skrip dan utilitas bcp pada SQL Server
<a name="SQLServer.Procedural.Exporting.SSGPSW"></a>

Anda dapat menggunakan Wizard Membuat dan Menerbitkan Skrip SQL Server untuk membuat skrip untuk seluruh basis data atau hanya objek yang dipilih. Anda dapat menjalankan skrip ini di instans DB SQL Server target untuk membuat ulang objek yang terskrip. Anda kemudian dapat menggunakan utilitas bcp untuk melakukan bulk ekspor data untuk objek yang dipilih ke instans DB target. Pilihan ini baik dilakukan jika Anda ingin memindahkan seluruh basis data (termasuk objek selain tabel) atau data dalam jumlah besar antara dua instans DB SQL Server. Untuk penjelasan lengkap tentang sintaks baris perintah bcp, lihat [utilitas bcp](http://msdn.microsoft.com/en-us/library/ms162802%28v=sql.110%29.aspx) di dokumentasi Microsoft SQL Server. 

Wizard Membuat dan Menerbitkan Skrip pada SQL Server tersedia sebagai bagian dari Microsoft SQL Server Management Studio. Klien SQL Server grafis ini tersedia dalam semua edisi Microsoft SQL Server kecuali Edisi Ekspres. SQL Server Management Studio hanya tersedia sebagai aplikasi berbasis Windows. SQL Server Management Studio Express tersedia dari Microsoft sebagai [unduhan gratis](http://www.microsoft.com/en-us/search/Results.aspx?q=sql%20server%20management%20studio). 

**Untuk menggunakan Wizard Membuat dan Menerbitkan Skrip serta utilitas bcp SQL Server untuk mengekspor data**

1. Dalam SQL Server Management Studio, hubungkan ke instans DB RDS untuk SQL Server Anda. Untuk detail tentang cara melakukannya, lihat [Menyambung ke instans Microsoft SQL Server DB](USER_ConnectToMicrosoftSQLServerInstance.md). 

1. Pada **Penjelajah Objek**, perluas simpul **Basis data** dan pilih basis data yang ingin Anda skripkan. 

1. Ikuti petunjuk di [Generate and publish scripts Wizard](http://msdn.microsoft.com/en-us/library/bb895179%28v=sql.110%29.aspx) dalam dokumentasi SQL Server untuk membuat file skrip.

1. Di SQL Server Management Studio, hubungkan ke instans DB SQL Server Anda.

1. Dengan instans DB SQL Server target yang dipilih di **Penjelajah Objek**, pilih **Buka** pada menu **File**, pilih **File**, lalu buka file skrip. 

1. Jika Anda telah membuat skrip seluruh basis data, tinjau pernyataan CREATE basis data dalam skrip. Pastikan basis data dibuat di lokasi dan dengan parameter yang Anda inginkan. Untuk informasi selengkapnya, lihat [CREATE DATABASE](http://msdn.microsoft.com/en-us/library/ms176061%28v=sql.110%29.aspx) di dokumentasi SQL Server. 

1. Jika Anda membuat pengguna basis data dalam skrip, periksalah untuk melihat apakah login server ada pada instans DB target untuk pengguna tersebut. Jika tidak, buat login untuk pengguna tersebut; jika tidak, perintah terskrip untuk membuat basis data akan gagal. Untuk informasi selengkapnya, lihat [Create a login](http://msdn.microsoft.com/en-us/library/aa337562%28v=sql.110%29.aspx) di dokumentasi SQL Server.

1. Pilih **\$1Execute** pada menu SQL Editor untuk menjalankan file skrip dan membuat objek basis data. Saat skrip selesai, verifikasi bahwa semua objek basis data yang ada sesuai dengan yang diharapkan.

1. Gunakan utilitas bcp untuk mengekspor data dari instans DB RDS untuk SQL Server ke dalam file. Buka prompt perintah dan ketik perintah berikut.

   ```
   bcp database_name.schema_name.table_name out data_file -n -S aws_rds_sql_endpoint -U username -P password
   ```

   Kode sebelumnya mencakup opsi berikut:
   + *table\$1name* adalah nama dari salah satu tabel yang telah Anda buat ulang di basis data target dan sekarang ingin diisi dengan data. 
   + *data\$1file* adalah jalur lengkap dan nama file data yang akan dibuat.
   + `-n` menentukan bahwa penyalinan massal menggunakan tipe data native dari data yang akan disalin.
   + `-S` menentukan instans DB SQL Server untuk ekspor.
   + `-U` menentukan nama pengguna yang digunakan saat terkoneksi ke instans DB SQL Server.
   + `-P` menentukan kata sandi untuk pengguna yang ditentukan oleh `-U`.

   Bagian berikut menunjukkan contoh perintah. 

   ```
   bcp world.dbo.city out C:\Users\JohnDoe\city.dat -n -S sql-jdoe.1234abcd.us-west-2.rds.amazonaws.com,1433 -U JohnDoe -P ClearTextPassword
   ```

   Ulangi langkah ini hingga Anda memiliki file data untuk semua tabel yang ingin Anda ekspor. 

1. Siapkan instans DB target Anda untuk impor data secara massal dengan mengikuti petunjuk di [Basic guidelines for bulk importing data](http://msdn.microsoft.com/en-us/library/ms189989%28v=sql.110%29.aspx) dalam dokumentasi SQL Server. 

1. Tentukan metode impor massal yang akan digunakan setelah mempertimbangkan performa dan kekhawatiran lain yang dibahas dalam [About bulk import and bulk export operations](http://msdn.microsoft.com/en-us/library/ms187042%28v=sql.105%29.aspx) dalam dokumentasi SQL Server. 

1. Impor data secara massal dari file data yang Anda buat dengan menggunakan utilitas bcp. Untuk melakukannya, ikuti petunjuk di [Import and export bulk data by using the bcp utility](http://msdn.microsoft.com/en-us/library/aa337544%28v=sql.110%29.aspx) atau [Import bulk data by using BULK INSERT or OPENROWSET(BULK...)](http://msdn.microsoft.com/en-us/library/ms175915%28v=sql.110%29.aspx) di dokumentasi SQL Server, tergantung pada apa yang Anda putuskan di langkah 11. 

# Menggunakan utilitas BCP dari Linux untuk mengimpor dan mengekspor data
<a name="SQLServer.Procedural.Importing.BCP.Linux"></a>

Utilitas BCP (Bulk Copy Program) menyediakan cara yang efisien untuk mentransfer sejumlah besar data antara RDS Anda untuk instance SQL Server DB dan file data. Anda dapat menggunakan BCP dari lingkungan Linux untuk melakukan operasi data massal, sehingga berguna untuk migrasi data, proses ETL, dan transfer data reguler.

BCP mendukung mengimpor data dari file ke tabel SQL Server dan mengekspor data dari tabel SQL Server ke file. Ini sangat efektif untuk mentransfer data terstruktur dalam berbagai format termasuk file teks yang dibatasi.

## Prasyarat
<a name="SQLServer.Procedural.Importing.BCP.Linux.Prerequisites"></a>

Sebelum menggunakan BCP dengan instans RDS untuk SQL Server DB dari Linux, pastikan Anda memiliki yang berikut:
+ Lingkungan Linux dengan konektivitas jaringan ke RDS Anda untuk instans SQL Server DB
+ Alat baris perintah Microsoft SQL Server yang diinstal pada sistem Linux Anda, termasuk:
  + sqlcmd - Alat kueri baris perintah SQL Server
  + bcp - Utilitas Program Salinan Massal
+ Kredensi yang valid untuk RDS Anda untuk instans SQL Server DB
+ Akses jaringan dikonfigurasi melalui grup keamanan untuk memungkinkan koneksi pada port SQL Server (biasanya 1433)
+ Izin database yang sesuai untuk operasi yang ingin Anda lakukan

## Menginstal alat baris perintah SQL Server di Linux
<a name="SQLServer.Procedural.Importing.BCP.Linux.Installing"></a>

Untuk menggunakan BCP dari Linux, Anda perlu menginstal alat baris perintah Microsoft SQL Server. Untuk petunjuk penginstalan mendetail untuk distribusi Linux spesifik Anda, lihat dokumentasi Microsoft berikut ini:
+ [Instal sqlcmd dan bcp alat baris perintah SQL Server di Linux](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools)
+ [utilitas bcp](https://docs.microsoft.com/en-us/sql/tools/bcp-utility) - Referensi lengkap untuk utilitas BCP

Setelah instalasi, pastikan alat tersedia di PATH Anda dengan menjalankan:

```
bcp -v
sqlcmd -?
```

## Mengekspor data dari RDS for SQL Server
<a name="SQLServer.Procedural.Importing.BCP.Linux.Exporting"></a>

Anda dapat menggunakan BCP untuk mengekspor data dari RDS Anda untuk SQL Server DB instance ke file pada sistem Linux Anda. Ini berguna untuk membuat cadangan, analisis data, atau menyiapkan data untuk migrasi.

### Sintaks ekspor dasar
<a name="SQLServer.Procedural.Importing.BCP.Linux.Exporting.Basic"></a>

Sintaks dasar untuk mengekspor data menggunakan BCP adalah:

```
bcp database.schema.table out output_file -S server_name -U username -P password [options]
```

Di mana:
+ `database.schema.table`- Nama tabel yang sepenuhnya memenuhi syarat
+ `output_file`- Path dan nama file output
+ `server_name`- RDS Anda untuk titik akhir SQL Server
+ `username`- Nama pengguna database Anda
+ `password`- Kata sandi basis data Anda

### Contoh ekspor
<a name="SQLServer.Procedural.Importing.BCP.Linux.Exporting.Example"></a>

Contoh berikut mengekspor data dari tabel bernama `customers` dalam `sales` database:

```
bcp sales.dbo.customers out /home/user/customers.txt \
    -S mydb.cluster-abc123.us-east-1.rds.amazonaws.com \
    -U admin \
    -P mypassword \
    -c \
    -t "|" \
    -r "\n"
```

Perintah ini:
+ Mengekspor data dari tabel `customers`
+ Menyimpan output ke `/home/user/customers.txt`
+ Menggunakan format karakter (`-c`)
+ Menggunakan pipa (\$1) sebagai pembatas bidang () `-t "|"`
+ Menggunakan baris baru sebagai pembatas baris () `-r "\n"`

## Mengimpor data ke RDS untuk SQL Server
<a name="SQLServer.Procedural.Importing.BCP.Linux.Importing"></a>

Anda dapat menggunakan BCP untuk mengimpor data dari file pada sistem Linux Anda ke RDS Anda untuk SQL Server DB instance. Ini berguna untuk migrasi data, memuat data uji, atau pembaruan data reguler.

### Sintaks impor dasar
<a name="SQLServer.Procedural.Importing.BCP.Linux.Importing.Basic"></a>

Sintaks dasar untuk mengimpor data menggunakan BCP adalah:

```
bcp database.schema.table in input_file -S server_name -U username -P password [options]
```

Di mana:
+ `database.schema.table`- Nama tabel tujuan yang memenuhi syarat
+ `input_file`- Jalur dan nama file input
+ `server_name`- RDS Anda untuk titik akhir SQL Server
+ `username`- Nama pengguna database Anda
+ `password`- Kata sandi basis data Anda

### Contoh impor
<a name="SQLServer.Procedural.Importing.BCP.Linux.Importing.Example"></a>

Contoh berikut mengimpor data dari file ke dalam tabel bernama`customers`:

```
bcp sales.dbo.customers in /home/user/customers.txt \
    -S mydb.cluster-abc123.us-east-1.rds.amazonaws.com \
    -U admin \
    -P mypassword \
    -c \
    -t "|" \
    -r "\n" \
    -b 1000
```

Perintah ini:
+ Mengimpor data ke dalam tabel `customers`
+ Membaca data dari `/home/user/customers.txt`
+ Menggunakan format karakter (`-c`)
+ Menggunakan pipa (\$1) sebagai pembatas bidang () `-t "|"`
+ Menggunakan baris baru sebagai pembatas baris () `-r "\n"`
+ Memproses data dalam batch 1000 baris () `-b 1000`

## Opsi BCP umum
<a name="SQLServer.Procedural.Importing.BCP.Linux.Options"></a>

BCP menyediakan banyak opsi untuk mengontrol pemformatan data dan perilaku transfer. Tabel berikut menjelaskan opsi yang umum digunakan:


| Opsi | Deskripsi | 
| --- | --- | 
| -c | Menggunakan tipe data karakter untuk semua kolom | 
| -n | Menggunakan tipe data database asli | 
| -t | Menentukan pembatas bidang (default adalah tab) | 
| -r | Menentukan pembatas baris (default adalah baris baru) | 
| -b | Menentukan ukuran batch untuk operasi massal | 
| -F | Menentukan baris pertama untuk ekspor atau impor | 
| -L | Menentukan baris terakhir untuk ekspor atau impor | 
| -e | Menentukan file kesalahan untuk menangkap baris ditolak | 
| -f | Menentukan file format untuk pemformatan data | 
| -q | Menggunakan pengidentifikasi yang dikutip untuk nama objek | 

## Praktik terbaik dan pertimbangan
<a name="SQLServer.Procedural.Importing.BCP.Linux.BestPractices"></a>

Saat menggunakan BCP dengan RDS untuk SQL Server dari Linux, pertimbangkan praktik terbaik berikut:
+ **Gunakan pemrosesan batch** - Untuk kumpulan data besar, gunakan `-b` opsi untuk memproses data dalam batch. T nya meningkatkan kinerja dan memungkinkan pemulihan kesalahan yang lebih baik.
+ **Tangani kesalahan dengan anggun** — Gunakan `-e` opsi untuk menangkap informasi kesalahan dan baris yang ditolak dalam file terpisah untuk dianalisis.
+ **Pilih format data yang sesuai** — Gunakan format karakter (`-c`) untuk kompatibilitas lintas platform atau format asli (`-n`) untuk kinerja yang lebih baik ketika sumber dan tujuan adalah SQL Server.
+ **Amankan kredensialmu** — Hindari meletakkan kata sandi langsung di baris perintah. Pertimbangkan untuk menggunakan variabel lingkungan atau file konfigurasi dengan izin yang sesuai.
+ **Uji dengan kumpulan data kecil** — Sebelum memproses data dalam jumlah besar, uji perintah BCP Anda dengan kumpulan data yang lebih kecil untuk memverifikasi pemformatan dan konektivitas.
+ **Monitor konektivitas jaringan** — Pastikan koneksi jaringan yang stabil, terutama untuk transfer data yang besar. Pertimbangkan untuk menggunakan alat seperti `screen` atau `tmux` untuk operasi yang berjalan lama.
+ **Validasi integritas data** — Setelah transfer data, verifikasi jumlah baris dan data sampel untuk memastikan operasi selesai dengan sukses.

## Memecahkan masalah umum
<a name="SQLServer.Procedural.Importing.BCP.Linux.Troubleshooting"></a>

Tabel berikut menjelaskan masalah umum yang mungkin Anda temui saat menggunakan BCP dari Linux dan solusinya:


| Isu | Solusi | 
| --- | --- | 
| Batas waktu koneksi atau kesalahan jaringan | Verifikasi titik akhir Amazon RDS, pengaturan grup keamanan, dan konektivitas jaringan Anda. Pastikan port SQL Server (biasanya 1433) dapat diakses dari sistem Linux Anda. | 
| Kegagalan otentikasi | Verifikasi nama pengguna dan kata sandi Anda. Pastikan pengguna database memiliki izin yang sesuai untuk operasi yang Anda lakukan. | 
| Kesalahan format data | Periksa pembatas bidang dan baris Anda. Pastikan format data sesuai dengan apa yang diharapkan BCP. Gunakan file format untuk struktur data yang kompleks. | 
| Kesalahan ditolak izin | Pastikan pengguna database Anda memiliki INSERT izin untuk impor atau SELECT izin untuk ekspor pada tabel target. | 
| Masalah penanganan file besar | Gunakan pemrosesan batch dengan -b opsi. Pertimbangkan untuk membagi file besar menjadi potongan-potongan yang lebih kecil untuk kinerja yang lebih baik dan pemulihan kesalahan. | 
| Masalah pengkodean karakter | Pastikan file data Anda menggunakan pengkodean karakter yang kompatibel. Gunakan -c opsi untuk format karakter atau tentukan halaman kode yang sesuai. | 

# Menggunakan replika baca untuk Microsoft SQL Server di Amazon RDS
<a name="SQLServer.ReadReplicas"></a>

Anda biasanya menggunakan replika baca untuk mengonfigurasi replikasi antara instans DB Amazon RDS. Untuk informasi umum tentang replika baca, lihat [Menggunakan replika baca instans DB](USER_ReadRepl.md). 

Di bagian ini, Anda dapat menemukan informasi spesifik tentang replika baca di Amazon RDS for SQL Server.
+ [Menyelaraskan pengguna dan objek basis data dengan replika baca SQL Server](SQLServer.ReadReplicas.ObjectSynchronization.md)
+ [Memecahkan masalah replika baca SQL Server](SQLServer.ReadReplicas.Troubleshooting.md)

## Mengonfigurasi replika baca untuk SQL Server
<a name="SQLServer.ReadReplicas.Configuration"></a>

Sebelum instans DB dapat berfungsi sebagai instans sumber untuk replikasi, Anda harus mengaktifkan pencadangan otomatis pada instans DB sumber. Untuk melakukannya, atur periode retensi cadangan ke nilai selain 0. Mengatur jenis deployment ini juga memberlakukan pencadangan otomatis yang diaktifkan.

Membuat replika baca SQL Server tidak memerlukan pemadaman listrik untuk instans DB primer. Amazon RDS menetapkan parameter dan izin yang diperlukan untuk instans DB sumber dan replika baca tanpa gangguan layanan. Snapshot diambil dari instans DB sumber dan menjadi replika baca. Tidak terjadi penghentian saat Anda menghapus replika baca. 

Anda dapat membuat hingga 15 replika baca dari satu instans DB sumber. Agar replikasi dapat beroperasi secara efektif, kami menyarankan Anda mengonfigurasi setiap replika baca dengan jumlah sumber daya komputasi dan penyimpanan yang sama dengan instans DB sumber. Jika Anda menskalakan instans DB sumber, replika baca juga perlu diskalakan.

Versi mesin SQL Server DB dari instans DB sumber dan semua replika baca harus sama. Amazon RDS meningkatkan primer segera setelah meningkatkan replika baca, terlepas dari jendela pemeliharaan. Untuk informasi selengkapnya tentang meningkatkan versi mesin DB, lihat [Upgrade mesin Microsoft SQL Server DB](USER_UpgradeDBInstance.SQLServer.md).

Agar replika baca dapat menerima dan menerapkan perubahan dari sumber, harus memiliki sumber daya komputasi dan penyimpanan yang memadai. Jika replika baca mencapai kapasitas komputasi, jaringan, atau sumber daya penyimpanan, replika baca akan berhenti menerima atau menerapkan perubahan dari sumbernya. Anda dapat memodifikasi sumber daya penyimpanan dan CPU dari replika baca secara terpisah dari sumbernya dan replika baca lainnya. 

Untuk informasi selengkapnya tentang cara membuat replika baca, lihat[Membuat replika baca](USER_ReadRepl.Create.md).

## Batasan replika baca dengan SQL Server
<a name="SQLServer.ReadReplicas.Limitations"></a>

Batasan berikut berlaku untuk replika baca SQL Server di Amazon RDS:
+ Replika baca hanya tersedia pada mesin SQL Server Edisi Perusahaan (EE).
+ Replika baca tersedia untuk SQL Server versi 2016–2022.
+ Anda dapat membuat hingga 15 replika baca dari satu instans DB sumber. Replikasi mungkin tertinggal ketika instans DB sumber Anda memiliki lebih dari 5 replika baca.
+ Replika baca hanya tersedia untuk instans DB yang berjalan pada kelas instans DB dengan empat atau lebih v. CPUs
+ Replika baca mendukung hingga 100 database tergantung pada jenis kelas instance dan mode ketersediaan. Anda harus membuat database pada instans DB sumber untuk secara otomatis mereplikasi mereka ke replika baca. Anda tidak dapat memilih database individual untuk direplikasi. Untuk informasi selengkapnya, lihat [Batasan untuk instans DB Microsoft SQL Server](CHAP_SQLServer.md#SQLServer.Concepts.General.FeatureSupport.Limits).
+ Anda tidak dapat menjatuhkan database dari replika baca. Untuk menjatuhkan database, jatuhkan dari instance DB sumber dengan prosedur yang `rds_drop_database` disimpan. Untuk informasi selengkapnya, lihat [Menjatuhkan database di Amazon RDS untuk instans DB Amazon RDS for Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.DropMirrorDB.md).
+ Jika instans DB sumber menggunakan Transparent Data Encryption (TDE) untuk mengenkripsi data, replika baca juga secara otomatis mengkonfigurasi TDE.

  Jika instans DB sumber menggunakan kunci KMS untuk mengenkripsi data, baca replika di wilayah yang sama menggunakan kunci KMS yang sama. Untuk replika baca lintas wilayah, Anda harus menentukan kunci KMS dari wilayah replika baca saat membuat replika baca. Anda tidak dapat mengubah kunci KMS untuk replika baca.
+ Replika baca memiliki zona waktu dan pemeriksaan yang sama dengan instans DB sumber, terlepas dari Availabilty Zone tempat mereka dibuat.
+ Berikut ini tidak didukung di Amazon RDS for SQL Server:
  + Penyimpanan cadangan replika baca
  + Point-in-time pemulihan dari replika baca
  + Tangkapan replika baca secara manual
  + Replika baca Multi-AZ
  + Membuat replika baca replika
  + Sinkronisasi login pengguna untuk membaca replika
+ Amazon RDS for SQL Server tidak melakukan intervensi untuk mengurangi keterlambatan replika yang tinggi antara instans DB sumber dan replika baca-nya. Pastikan instans DB sumber dan replika pembacaannya berukuran benar, dalam hal daya komputasi dan penyimpanan, agar sesuai dengan beban operasionalnya.
+ Anda dapat mereplikasi antara Wilayah AWS GovCloud (AS-Timur) dan AWS GovCloud (AS-Barat), tetapi tidak masuk atau keluar. AWS GovCloud (US) Regions

## Pertimbangan opsi untuk RDS untuk replika SQL Server
<a name="SQLServer.ReadReplicas.limitations.options"></a>

Sebelum Anda membuat replika RDS untuk SQL Server, pertimbangkan persyaratan, batasan, dan rekomendasi berikut:
+ Jika replika SQL Server Anda berada di Wilayah yang sama dengan lokasi instans DB sumbernya, pastikan replika tersebut berasal dari grup opsi yang sama dengan lokasi instans DB sumber. Perubahan pada grup opsi sumber atau keanggotaan grup opsi sumber menyebar ke replika. Perubahan ini diterapkan ke replika segera setelah diterapkan ke instans DB sumber, terlepas dari masa pemeliharaan replika.

  Untuk informasi selengkapnya tentang grup opsi, lihat [Menggunakan grup opsi](USER_WorkingWithOptionGroups.md).
+ Saat Anda membuat replika lintas Wilayah SQL, Amazon RDS membuat grup opsi khusus untuk replika tersebut.

  Anda tidak dapat menghapus replika lintas Wilayah SQL dari grup opsi khususnya. Tidak ada instans DB lain yang dapat menggunakan grup opsi khusus untuk replika lintas Wilayah SQL Server.

  Opsi berikut adalah opsi yang direplikasi. Untuk menambahkan opsi replikasi ke replika lintas Wilayah SQL Server, tambahkan opsi tersebut ke grup opsi instans DB sumber. Opsi ini juga diinstal pada semua replika instans DB sumber.
  + `TDE`

  Opsi berikut adalah opsi yang direplikasi. Anda dapat menambahkan atau menghapus opsi non-replikasi dari grup opsi khusus.
  + `MSDTC`
  + `SQLSERVER_AUDIT`
  + Untuk mengaktifkan opsi `SQLSERVER_AUDIT` pada replika baca lintas wilayah, tambahkan opsi `SQLSERVER_AUDIT` pada grup opsi khusus pada replika baca lintas wilayah dan grup opsi instans sumber. Dengan menambahkan opsi `SQLSERVER_AUDIT` pada instans sumber replika baca Lintas wilayah SQL Server, Anda dapat membuat Objek Audit Tingkat Server dan Spesifikasi Audit Tingkat Server pada setiap replika baca lintas wilayah dari instans sumber. Untuk mengizinkan akses replika baca lintas wilayah untuk mengunggah log audit yang telah selesai ke bucket Amazon S3, tambahkan opsi `SQLSERVER_AUDIT` ke grup opsi khusus dan konfigurasikan pengaturan opsi. Bucket Amazon S3 yang Anda gunakan sebagai target untuk berkas audit harus berada di Wilayah yang sama dengan replika baca lintas Wilayah. Anda dapat mengubah pengaturan opsi `SQLSERVER_AUDIT` untuk setiap replika baca lintas wilayah secara independen sehingga masing-masing dapat mengakses bucket Amazon S3 di Wilayah masing-masing.

  Opsi berikut tidak didukung untuk replika baca.
  + `SSRS`
  + `SSAS`
  + `SSIS`

  Opsi berikut didukung sebagian untuk replika baca lintas Wilayah.
  + `SQLSERVER_BACKUP_RESTORE`
  + Instans DB sumber dari replika SQL Server Lintas-wilayah dapat memiliki opsi `SQLSERVER_BACKUP_RESTORE`, tetapi Anda tidak dapat melakukan pemulihan native pada instans DB sumber sampai Anda menghapus semua replika Lintas wilayahnya. Setiap tugas pemulihan native yang ada akan dibatalkan selama pembuatan replika Lintas wilayah. Anda tidak dapat menambahkan opsi `SQLSERVER_BACKUP_RESTORE` ke grup opsi khusus.

    Untuk informasi lain tentang backup dan pemulihan native, lihat [Mengimpor dan mengekspor basis data SQL Server menggunakan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.md)

  Saat Anda mempromosikan replika baca lintas Wilayah SQL, replika yang dipromosikan memiliki perilaku yang sama seperti instans DB SQL Server lainnya, termasuk manajemen opsinya. Untuk informasi selengkapnya tentang grup opsi, lihat [Menggunakan grup opsi](USER_WorkingWithOptionGroups.md).

# Menyelaraskan pengguna dan objek basis data dengan replika baca SQL Server
<a name="SQLServer.ReadReplicas.ObjectSynchronization"></a>

Setiap login, peran server kustom, pekerjaan agen SQL, atau objek tingkat server lainnya yang ada di instans DB utama pada saat membuat replika baca diharapkan hadir dalam replika baca yang baru dibuat. Namun, objek tingkat server apa pun yang dibuat dalam instans DB utama setelah pembuatan replika baca tidak akan direplikasi secara otomatis, dan Anda harus membuatnya secara manual di replika baca.

Pengguna basis data secara otomatis direplikasi dari instans DB primer ke replika baca. Karena basis data replika baca dalam mode hanya-baca, pengidentifikasi keamanan (SID) dari pengguna basis data tidak dapat diperbarui dalam basis data. Oleh karena itu, saat membuat login SQL di replika baca, penting untuk memastikan bahwa SID dari login itu cocok dengan SID dari login SQL yang sesuai di instans DB utama. Jika Anda tidak SIDs menyinkronkan login SQL, mereka tidak akan dapat mengakses database dalam replika baca. Windows Active Directory (AD) Authenticated Login tidak mengalami masalah ini karena SQL Server memperoleh SID dari Active Directory.

**Untuk menyinkronkan login SQL dari instans DB primer ke replika baca**

1. Hubungkan ke instans DB utama.

1. Buat login SQL baru di instans DB primer.

   ```
   USE [master]
   GO
   CREATE LOGIN TestLogin1
   WITH PASSWORD = 'REPLACE WITH PASSWORD';
   ```
**catatan**  
Tentukan kata sandi selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

1. Buat pengguna basis data baru untuk login SQL di basis data.

   ```
   USE [REPLACE WITH YOUR DB NAME]
   GO
   CREATE USER TestLogin1 FOR LOGIN TestLogin1;
   GO
   ```

1. Periksa SID dari login SQL yang baru dibuat di instans DB primer.

   ```
   SELECT name, sid FROM sys.server_principals WHERE name =  'TestLogin1';
   ```

1. Hubungkan ke replika baca. Buat login SQL baru.

   ```
   CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=REPLACE WITH sid FROM STEP #4;
   ```

**Sebagai alternatif, jika Anda memiliki akses ke basis data replika baca, Anda dapat memperbaiki pengguna yatim piatu sebagai berikut:**

1. Hubungkan ke replika baca.

1. Identifikasi pengguna yatim piatu dalam basis data.

   ```
   USE [REPLACE WITH YOUR DB NAME]
   GO
   EXEC sp_change_users_login 'Report';
   GO
   ```

1. Buat login SQL baru untuk pengguna basis data yatim piatu.

   ```
   CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=REPLACE WITH sid FROM STEP #2;
   ```

   Contoh:

   ```
   CREATE LOGIN TestLogin1 WITH PASSWORD = 'TestPa$$word#1', SID=0x1A2B3C4D5E6F7G8H9I0J1K2L3M4N5O6P;
   ```
**catatan**  
Tetapkan kata sandi selain penggugah (prompt) yang ditampilkan di sini sebagai praktik terbaik keamanan.

# Memecahkan masalah replika baca SQL Server
<a name="SQLServer.ReadReplicas.Troubleshooting"></a>

Anda dapat memantau kelambatan replikasi di Amazon CloudWatch dengan melihat RDS `ReplicaLag` metrik Amazon. Untuk informasi tentang waktu keterlambatan replika, lihat [Memantau replikasi baca](USER_ReadRepl.Monitoring.md).

Jika lag replikasi terlalu panjang, Anda dapat menggunakan kueri berikut untuk mendapatkan informasi tentang keterlambatan.

```
SELECT AR.replica_server_name
     , DB_NAME (ARS.database_id) 'database_name'
     , AR.availability_mode_desc
     , ARS.synchronization_health_desc
     , ARS.last_hardened_lsn
     , ARS.last_redone_lsn
     , ARS.secondary_lag_seconds
FROM sys.dm_hadr_database_replica_states ARS
INNER JOIN sys.availability_replicas AR ON ARS.replica_id = AR.replica_id
--WHERE DB_NAME(ARS.database_id) = 'database_name'
ORDER BY AR.replica_server_name;
```

# 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.

# Fitur tambahan untuk Microsoft SQL Server di Amazon RDS
<a name="User.SQLServer.AdditionalFeatures"></a>

Di bagian berikut, Anda dapat menemukan informasi tentang menambah RDS instans Amazon yang menjalankan mesin Microsoft SQL Server DB.

**Topics**
+ [Menggunakan Kebijakan Kata Sandi untuk login SQL Server pada RDS untuk SQL Server](SQLServer.Concepts.General.PasswordPolicy.Using.md)
+ [Mengintegrasikan instans DB Amazon RDS for SQL Server dengan Amazon S3](User.SQLServer.Options.S3-integration.md)
+ [Menggunakan Database Mail di Amazon RDS untuk SQL Server](SQLServer.DBMail.md)
+ [Amazon RDS for SQL Server mendukung penyimpanan instans lokal untuk basis data tempdb](SQLServer.InstanceStore.md)
+ [Menggunakan acara diperpanjang dengan Amazon RDS untuk Microsoft SQL Server](SQLServer.ExtendedEvents.md)
+ [Akses ke cadangan log transaksi dengan RDS for SQL Server](USER.SQLServer.AddlFeat.TransactionLogAccess.md)

# Menggunakan Kebijakan Kata Sandi untuk login SQL Server pada RDS untuk SQL Server
<a name="SQLServer.Concepts.General.PasswordPolicy.Using"></a>

Amazon RDS memungkinkan Anda mengatur kebijakan kata sandi untuk instans Amazon RDS DB yang menjalankan Microsoft SQL Server. Gunakan ini untuk mengatur kompleksitas, panjang, dan persyaratan penguncian untuk login yang menggunakan SQL Server Authentication untuk mengautentikasi ke instans DB Anda.

## Istilah kunci
<a name="SQLServer.Concepts.General.PasswordPolicy.Using.KT"></a>

**Login**  
**Di SQL Server, prinsipal tingkat server yang dapat mengautentikasi ke instance database disebut sebagai login.** Mesin database lain mungkin merujuk pada prinsipal ini sebagai *pengguna*. Dalam RDS untuk SQL Server, login dapat mengautentikasi menggunakan SQL Server Authentication atau Windows Authentication.

**Login SQL Server**  
Login yang menggunakan nama pengguna dan kata sandi untuk mengautentikasi menggunakan SQL Server Authentication adalah login SQL Server. Kebijakan kata sandi yang Anda konfigurasikan melalui parameter DB hanya berlaku untuk login SQL Server.

**Login Windows**  
Login yang didasarkan pada prinsipal Windows dan mengotentikasi menggunakan Windows Authentication adalah login Windows. Anda dapat mengonfigurasi kebijakan kata sandi untuk login Windows Anda di Active Directory. Untuk informasi selengkapnya, lihat [Menggunakan Active Directory dengan RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).

## Mengaktifkan dan menonaktifkan kebijakan untuk setiap login
<a name="SQLServer.Concepts.General.PasswordPolicy.EnableDisable"></a>

 Setiap login SQL Server memiliki flag untuk `CHECK_POLICY` dan. `CHECK_EXPIRATION` Secara default, login baru dibuat dengan `CHECK_POLICY` set to `ON` dan `CHECK_EXPIRATION` set ke`OFF`. 

Jika `CHECK_POLICY` diaktifkan untuk login, RDS untuk SQL Server memvalidasi kata sandi terhadap kompleksitas dan persyaratan panjang minimum. Kebijakan penguncian juga berlaku. Contoh pernyataan T-SQL untuk mengaktifkan `CHECK_POLICY` dan: `CHECK_EXPIRATION` 

```
ALTER LOGIN [master_user] WITH CHECK_POLICY = ON, CHECK_EXPIRATION = ON;
```

Jika `CHECK_EXPIRATION` diaktifkan, kata sandi tunduk pada kebijakan usia kata sandi. Pernyataan T-SQL untuk memeriksa apakah `CHECK_POLICY` dan `CHECK_EXPIRATION` diatur:

```
SELECT name, is_policy_checked, is_expiration_checked FROM sys.sql_logins;
```

## Parameter kebijakan kata sandi
<a name="SQLServer.Concepts.General.PasswordPolicy.PWDPolicyParams"></a>

Semua parameter kebijakan kata sandi bersifat dinamis dan tidak memerlukan reboot DB untuk diterapkan. Tabel berikut mencantumkan parameter DB yang dapat Anda atur untuk mengubah kebijakan kata sandi untuk login SQL Server:


****  

| Parameter DB | Deskripsi | Nilai yang Diizinkan | nilai default | 
| --- | --- | --- | --- | 
| rds.password\$1complexity\$1enabled | Persyaratan kompleksitas kata sandi harus dipenuhi saat membuat atau mengubah kata sandi untuk login SQL Server. Kendala berikut harus dipenuhi: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/SQLServer.Concepts.General.PasswordPolicy.Using.html)  | 0,1 | 0 | 
| rds.password\$1min\$1length | Jumlah minimum karakter yang diperlukan dalam kata sandi untuk login SQL Server. | 0-14 | 0 | 
| rds.password\$1min\$1age | Jumlah minimum hari kata sandi login SQL Server harus digunakan sebelum pengguna dapat mengubahnya. Kata sandi dapat segera diubah saat disetel ke 0. | 0-998 | 0 | 
| rds.password\$1max\$1age | Jumlah hari maksimum kata sandi login SQL Server dapat digunakan setelah itu pengguna diminta untuk mengubahnya. Kata sandi tidak pernah kedaluwarsa saat disetel ke 0. | 0-999 | 42 | 
| rds.password\$1lockout\$1threshold | Jumlah upaya login gagal berturut-turut yang menyebabkan login SQL Server menjadi terkunci. | 0-999 | 0 | 
| rds.password\$1lockout\$1duration | Jumlah menit login SQL Server yang terkunci harus menunggu sebelum dibuka kuncinya. | 1-60 | 10 | 
| rds.password\$1lockout\$1reset\$1counter\$1after | Jumlah menit yang harus berlalu setelah upaya login gagal sebelum penghitung upaya login yang gagal diatur ulang ke 0. | 1-60 | 10 | 

**catatan**  
Untuk informasi selengkapnya tentang kebijakan kata sandi SQL Server, lihat [Kebijakan Kata Sandi](https://learn.microsoft.com/en-us/sql/relational-databases/security/password-policy).   
Kompleksitas kata sandi dan kebijakan panjang minimum juga berlaku untuk pengguna DB dalam database yang terkandung. Untuk informasi selengkapnya, lihat [Database Terisi](https://learn.microsoft.com/en-us/sql/relational-databases/databases/contained-databases).

Kendala berikut berlaku untuk parameter kebijakan kata sandi:
+ `rds.password_min_age`Parameter harus kurang dari`rds.password_max_age parameter`, kecuali `rds.password_max_age` diatur ke 0
+ `rds.password_lockout_reset_counter_after`Parameter harus kurang dari atau sama dengan `rds.password_lockout_duration` parameter.
+ Jika `rds.password_lockout_threshold` diatur ke 0, `rds.password_lockout_duration` dan `rds.password_lockout_reset_counter_after` tidak berlaku.

### Pertimbangan untuk login yang ada
<a name="SQLServer.Concepts.General.PasswordPolicy.ExistingLogins"></a>

Setelah memodifikasi kebijakan kata sandi pada sebuah instance, kata sandi yang ada untuk login **tidak** dievaluasi secara surut terhadap kompleksitas kata sandi dan persyaratan panjang yang baru. Hanya kata sandi baru yang divalidasi terhadap kebijakan baru. 

SQL Server mengevaluasi **kata** sandi yang ada untuk persyaratan usia.

Ada kemungkinan kata sandi segera kedaluwarsa setelah kebijakan kata sandi diubah. Misalnya, jika login telah `CHECK_EXPIRATION` diaktifkan dan kata sandinya terakhir diubah 100 hari yang lalu dan Anda menetapkan `rds.password_max_age` parameter menjadi 5 hari, kata sandi segera kedaluwarsa dan login perlu mengubah kata sandi mereka pada upaya berikutnya untuk masuk.

**catatan**  
RDS untuk SQL Server tidak mendukung kebijakan riwayat kata sandi. Kebijakan riwayat mencegah login menggunakan kembali kata sandi yang digunakan sebelumnya.

### Pertimbangan untuk deployment multi-AZ
<a name="SQLServer.Concepts.General.PasswordPolicy.MAZPasswords"></a>

Status penghitung dan penguncian upaya login yang gagal untuk instance Multi-AZ tidak mereplikasi antar node. Jika login dikunci ketika instance Multi-AZ gagal selesai, kemungkinan login sudah dibuka kuncinya di node baru.

# Pertimbangan kata sandi untuk login master
<a name="SQLServer.Concepts.General.PasswordPolicy.MasterLogin"></a>

Saat Anda membuat instance RDS untuk SQL Server DB, kata sandi pengguna utama tidak dievaluasi terhadap kebijakan kata sandi. Kata sandi master baru juga tidak dievaluasi terhadap kata sandi saat melakukan operasi ke pengguna master, khususnya saat mengatur `MasterUserPassword` `ModifyDBInstance` perintah. Dalam kedua kasus, Anda dapat mengatur kata sandi untuk pengguna utama yang tidak memenuhi kebijakan kata sandi Anda, dan operasi masih berhasil. Jika kebijakan tidak terpenuhi, RDS mencoba untuk meningkatkan acara RDS, dengan rekomendasi untuk menetapkan kata sandi yang kuat. Berhati-hatilah untuk hanya menggunakan kata sandi yang kuat untuk pengguna utama. 

RDS mencoba menghasilkan pesan peristiwa berikut ketika kata sandi pengguna utama tidak memenuhi persyaratan kebijakan kata sandi:
+ Pengguna master dibuat, tetapi kata sandi tidak memenuhi persyaratan panjang minimum kebijakan kata sandi Anda. Pertimbangkan untuk menggunakan kata sandi yang lebih kuat.
+ Pengguna master dibuat, tetapi kata sandi tidak memenuhi persyaratan kompleksitas kebijakan kata sandi Anda. Pertimbangkan untuk menggunakan kata sandi yang lebih kuat.
+ Kata sandi pengguna utama disetel ulang, tetapi kata sandi tidak memenuhi persyaratan panjang minimum kebijakan kata sandi Anda. Pertimbangkan untuk menggunakan kata sandi yang lebih kuat.
+ Kata sandi pengguna utama disetel ulang, tetapi kata sandi tidak memenuhi persyaratan kompleksitas kebijakan kata sandi Anda. Pertimbangkan untuk menggunakan kata sandi yang lebih kuat.

Secara default, pengguna master dibuat dengan `CHECK_POLICY` dan `CHECK_EXPIRATION` diatur ke`OFF`. Untuk menerapkan kebijakan kata sandi ke pengguna utama, Anda harus mengaktifkan flag ini secara manual untuk pengguna master setelah pembuatan instans DB. Setelah Anda mengaktifkan flag ini, ubah kata sandi pengguna utama langsung di SQL Server (mis. melalui pernyataan T-SQL atau SSMS) untuk memvalidasi kata sandi baru terhadap kebijakan kata sandi.

**catatan**  
Jika pengguna master terkunci, Anda dapat membuka kunci pengguna dengan mengatur ulang kata sandi pengguna utama menggunakan `ModifyDBInstance` perintah.

## Mengubah kata sandi pengguna master
<a name="SQLServer.Concepts.General.PasswordPolicy.MasterLogin.Reset"></a>

Anda dapat memodifikasi kata sandi pengguna master dengan menggunakan perintah [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html).

**catatan**  
Saat Anda mengatur ulang kata sandi pengguna utama, RDS me-reset berbagai izin untuk pengguna master dan pengguna master mungkin kehilangan izin tertentu. Menyetel ulang kata sandi pengguna master juga membuka kunci pengguna utama, jika terkunci.

RDS memvalidasi kata sandi pengguna utama baru dan mencoba untuk memancarkan peristiwa RDS jika kata sandi tidak memenuhi kebijakan. RDS menetapkan kata sandi meskipun tidak memenuhi kebijakan kata sandi. 

# Mengintegrasikan instans DB Amazon RDS for SQL Server dengan Amazon S3
<a name="User.SQLServer.Options.S3-integration"></a>

Anda dapat mentransfer file antara instans DB yang menjalankan Amazon RDS for SQL Server dan bucket Amazon S3. Dengan melakukannya, Anda dapat menggunakan fitur Amazon S3 dengan SQL Server seperti BULK INSERT. Misalnya, Anda dapat mengunduh .csv, .xml, .txt, dan file lain dari Amazon S3 ke host instans DB dan mengimpor data dari `D:\S3\` ke dalam basis data. Semua file disimpan di `D:\S3\` pada instans DB.

Batasan berikut berlaku:

**catatan**  
Lalu lintas antara host RDS dan rute S3 melalui titik akhir VPC di RDS internal VPCs untuk semua fitur SQL Server yang menggunakan S3. Lalu lintas ini tidak menggunakan ENI titik akhir instans RDS. Kebijakan bucket S3 tidak dapat membatasi lalu lintas RDS berdasarkan kondisi jaringan.
+ File yang ada di folder `D:\S3` akan dihapus pada replika siaga setelah failover pada instans Multi-AZ. Untuk informasi selengkapnya, lihat [Batasan Multi-AZ untuk integrasi S3](#S3-MAZ).
+ Instans DB dan bucket S3 harus berada di AWS Region yang sama.
+ Jika Anda menjalankan lebih dari satu tugas integrasi S3 sekaligus, tugas akan berjalan secara berurutan, bukan secara paralel.
**catatan**  
Tugas integrasi S3 akan berada di antrean yang sama dengan tugas pencadangan dan pemulihan native. Maksimal, Anda hanya dapat memiliki dua tugas yang berlangsung dalam antrean ini kapan saja. Oleh karena itu, dua tugas pencadangan dan pemulihan native yang berjalan akan memblokir tugas integrasi S3.
+ Anda harus mengaktifkan ulang fitur integrasi S3 pada instans yang dipulihkan. Integrasi S3 tidak akan disebarkan dari instans sumber ke instans yang dipulihkan. File dalam `D:\S3` dihapus pada instans yang dipulihkan.
+ Pengunduhan ke instans DB dibatasi hingga 100 file. Dengan kata lain, tidak boleh ada lebih dari 100 file di `D:\S3\`.
+ Hanya file tanpa ekstensi file atau dengan ekstensi file berikut yang dapat diunduh: .abf, .asdatabase, .bcp, .configsettings, .csv, .dat, .deploymentoptions, .deploymenttargets, .fmt, .info, .ispac, .lst, .tbl, .txt, .xml, dan .xmla.
+ Bucket S3 harus memiliki pemilik yang sama dengan peran terkait AWS Identity and Access Management (IAM). Oleh karena itu, integrasi S3 lintas akun tidak didukung.
+ bucket S3 tidak dapat dibuka untuk publik.
+ Ukuran file untuk pengunggahan dari RDS ke S3 dibatasi 50 GB per file.
+ Ukuran file untuk unduhan dari S3 ke RDS dibatasi sebesar ukuran maksimum yang didukung oleh S3.

**Topics**
+ [Prasyarat untuk mengintegrasikan RDS for SQL Server dengan S3](Appendix.SQLServer.Options.S3-integration.preparing.md)
+ [Mengaktifkan RDS integrasi SQL Server dengan S3](Appendix.SQLServer.Options.S3-integration.enabling.md)
+ [Mentransfer file antara RDS for SQL Server dan Amazon S3](Appendix.SQLServer.Options.S3-integration.using.md)
+ [Daftar file pada instans RDS DB](Appendix.SQLServer.Options.S3-integration.using.listing-files.md)
+ [Menghapus file pada instans RDS DB](Appendix.SQLServer.Options.S3-integration.using.deleting-files.md)
+ [Memantau status tugas transfer file](Appendix.SQLServer.Options.S3-integration.using.monitortasks.md)
+ [Membatalkan tugas](Appendix.SQLServer.Options.S3-integration.canceltasks.md)
+ [Batasan Multi-AZ untuk integrasi S3](#S3-MAZ)
+ [Menonaktifkan RDS integrasi SQL Server dengan S3](Appendix.SQLServer.Options.S3-integration.disabling.md)

Untuk informasi selengkapnya tentang menggunakan file di Amazon S3, lihat [Mulai menggunakan Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3).

# Prasyarat untuk mengintegrasikan RDS for SQL Server dengan S3
<a name="Appendix.SQLServer.Options.S3-integration.preparing"></a>

Sebelum Anda memulai, temukan atau buat bucket S3 yang ingin Anda gunakan. Selain itu, tambahkan izin sehingga RDS instans DB dapat mengakses bucket S3. Untuk mengonfigurasi akses ini, Anda perlu membuat kebijakan IAM dan peran IAM.

## Konsol
<a name="Appendix.SQLServer.Options.S3-integration.preparing.console"></a>

**Untuk membuat kebijakan IAM bagi Aurora untuk mengakses Amazon S3**

1. Di [Konsol Manajemen IAM](https://console.aws.amazon.com/iam/home?#home), pilih **Kebijakan** di panel navigasi.

1. Buat kebijakan baru, dan gunakan **Editor visual** untuk langkah-langkah berikut.

1. Untuk **Layanan**, masukkan **S3** lalu pilih layanan **S3**.

1. Untuk **Tindakan**, pilih yang berikut ini untuk memberikan akses yang diperlukan oleh instans DB Anda:
   + `ListAllMyBuckets` – diperlukan.
   + `ListBucket` – diperlukan.
   + `GetBucketAcl` – diperlukan.
   + `GetBucketLocation` – diperlukan.
   + `GetObject` – diperlukan untuk mengunduh file dari S3 ke `D:\S3\`
   + `PutObject` – diperlukan untuk mengunggah file dari `D:\S3\` ke S3
   + `ListMultipartUploadParts` – diperlukan untuk mengunggah file dari `D:\S3\` ke S3
   + `AbortMultipartUpload` – diperlukan untuk mengunggah file dari `D:\S3\` ke S3

1. Untuk **Sumber Daya**, opsi yang ditampilkan bergantung pada tindakan mana yang Anda pilih di langkah sebelumnya. Anda mungkin melihat opsi untuk **bucket**, **objek**, atau keduanya. Untuk setiap hal berikut ini, tambahkan Amazon Resource Name (ARN) yang sesuai.

   Untuk **bucket**, tambahkan ARN untuk bucket yang ingin Anda gunakan. Misalnya, jika bucket Anda diberi nama *amzn-s3-demo-bucket*, atur ARN ke `arn:aws:s3:::amzn-s3-demo-bucket`.

   Untuk **objek**, masukkan ARN untuk bucket lalu pilih salah satu hal berikut:
   + Untuk memberikan akses ke semua file dalam bucket tertentu, pilih **Semua** untuk **Nama bucket** dan **Nama objek**.
   + Untuk memberikan akses ke file atau folder tertentu di bucket, ARNs sediakan bucket dan objek tertentu yang ingin diakses SQL Server. 

1. Ikuti petunjuk dalam konsol hingga Anda selesai membuat kebijakan.

   Hal di atas adalah panduan singkat untuk membuat kebijakan. Untuk informasi selengkapnya tentang pembuatan peran IAM, lihat [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dalam *Panduan Pengguna IAM*.

**Untuk membuat peran IAM yang menggunakan kebijakan IAM dari prosedur sebelumnya**

1. Di [Konsol Manajemen IAM](https://console.aws.amazon.com/iam/home?#home), pilih **Peran** di panel navigasi.

1. Buat peran IAM baru, dan pilih opsi berikut saat muncul di konsol:
   + **AWSlayanan**
   + **RDS**
   + **RDS – Tambahkan Peran ke Basis Data**

   Lalu, pilih **Next:Permissions** di bagian bawah.

1. Untuk **Lampirkan kebijakan izin**, masukkan nama kebijakan IAM yang telah Anda buat sebelumnya. Lalu, pilih kebijakan dari daftar.

1. Ikuti petunjuk dalam konsol hingga Anda selesai membuat peran.

   Hal di atas adalah panduan singkat untuk membuat peran. Jika Anda menginginkan petunjuk yang lebih terperinci tentang pembuatan peran, lihat [Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) dalam *Panduan Pengguna IAM*.

## AWS CLI
<a name="Appendix.SQLServer.Options.S3-integration.preparing.CLI"></a>

Untuk memberi Amazon RDS akses ke bucket Amazon S3, gunakan proses berikut:

1. Buat kebijakan IAM yang memberi Amazon RDS akses ke bucket S3.

1. Buat peran IAM yang dapat digunakan Amazon RDS atas nama Anda untuk mengakses bucket S3 Anda.

   Untuk informasi selengkapnya, lihat [Membuat peran untuk mendelegasikan izin ke pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) dalam *Panduan Pengguna IAM*.

1. Lampirkan kebijakan IAM yang Anda buat ke peran IAM yang Anda buat.

**Untuk membuat kebijakan IAM**

Sertakan tindakan yang sesuai untuk memberikan akses yang diperlukan oleh instans DB Anda:
+ `ListAllMyBuckets` – diperlukan.
+ `ListBucket` – diperlukan.
+ `GetBucketAcl` – diperlukan.
+ `GetBucketLocation` – diperlukan.
+ `GetObject` – diperlukan untuk mengunduh file dari S3 ke `D:\S3\`
+ `PutObject` – diperlukan untuk mengunggah file dari `D:\S3\` ke S3
+ `ListMultipartUploadParts` – diperlukan untuk mengunggah file dari `D:\S3\` ke S3
+ `AbortMultipartUpload` – diperlukan untuk mengunggah file dari `D:\S3\` ke S3

1. AWS CLIPerintah berikut membuat kebijakan IAM bernama `rds-s3-integration-policy` dengan opsi ini. Kebijakan ini memberikan akses ke bucket bernama *amzn-s3-demo-bucket*.  
**Example**  

   Untuk Linux, macOS, atau Unix:

   ```
   aws iam create-policy \
   	 --policy-name rds-s3-integration-policy \
   	 --policy-document '{
   	        "Version": "2012-10-17",		 	 	 
   	        "Statement": [
   	            {
   	                "Effect": "Allow",
   	                "Action": "s3:ListAllMyBuckets",
   	                "Resource": "*"
   	            },
   	            {
   	                "Effect": "Allow",
   	                "Action": [
   	                    "s3:ListBucket",
   	                    "s3:GetBucketAcl",
   	                    "s3:GetBucketLocation"
   	                ],
   	                "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
   	            },
   	            {
   	                "Effect": "Allow",
   	                "Action": [
   	                    "s3:GetObject",
   	                    "s3:PutObject",
   	                    "s3:ListMultipartUploadParts",
   	                    "s3:AbortMultipartUpload"
   	                ],
   	                "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*"
   	            }
   	        ]
   	    }'
   ```

   Untuk Windows:

   Pastikan untuk mengubah akhiran baris ke akhiran baris yang didukung oleh antarmuka Anda (`^`, bukan `\`). Selain itu, di Windows, Anda harus meng-escape semua tanda kutip ganda dengan `\`. Agar tidak perlu meng-escape kutipan dalam JSON, Anda dapat menyimpannya ke file dan meneruskannya sebagai parameter. 

   Pertama, buat file `policy.json` dengan kebijakan izin berikut:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3:ListAllMyBuckets",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketACL",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:ListMultipartUploadParts",
                   "s3:AbortMultipartUpload"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*"
           }
       ]
   }
   ```

------

   Lalu, gunakan perintah berikut ini untuk membuat kebijakan:

   ```
   aws iam create-policy ^
        --policy-name rds-s3-integration-policy ^
        --policy-document file://file_path/assume_role_policy.json
   ```

1. Setelah kebijakan dibuat, catat Amazon Resource Name (ARN) kebijakan tersebut. Anda memerlukan ARN ini untuk langkah berikutnya.

**Untuk membuat peran IAM**
+ AWS CLIPerintah berikut menciptakan peran `rds-s3-integration-role` IAM untuk tujuan ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws iam create-role \
  	   --role-name rds-s3-integration-role \
  	   --assume-role-policy-document '{
  	     "Version": "2012-10-17",		 	 	 
  	     "Statement": [
  	       {
  	         "Effect": "Allow",
  	         "Principal": {
  	            "Service": "rds.amazonaws.com"
  	          },
  	         "Action": "sts:AssumeRole"
  	       }
  	     ]
  	   }'
  ```

  Untuk Windows:

  Pastikan untuk mengubah akhiran baris ke akhiran baris yang didukung oleh antarmuka Anda (`^`, bukan `\`). Selain itu, di Windows, Anda harus meng-escape semua tanda kutip ganda dengan `\`. Agar tidak perlu meng-escape kutipan dalam JSON, Anda dapat menyimpannya ke file dan meneruskannya sebagai parameter. 

  Pertama, buat file `assume_role_policy.json` dengan kebijakan berikut:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Service": [
                      "rds.amazonaws.com"
                  ]
              },
              "Action": "sts:AssumeRole"
          }
      ]
  }
  ```

------

  Lalu gunakan perintah berikut ini untuk membuat peran IAM:

  ```
  aws iam create-role ^
       --role-name rds-s3-integration-role ^
       --assume-role-policy-document file://file_path/assume_role_policy.json
  ```  
**Example menggunakan kunci konteks kondisi global untuk membuat peran IAM**  

  Sebaiknya gunakan kunci konteks kondisi global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) dan [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) dalam relasi kepercayaan berbasis sumber daya untuk membatasi izin layanan ke sumber daya tertentu. Ini adalah cara paling efektif untuk melindungi dari [masalah "confused deputy"](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

  Anda dapat menggunakan kedua kunci konteks kondisi global dan memiliki nilai `aws:SourceArn` yang berisi ID akun. Dalam hal ini, nilai `aws:SourceAccount` dan akun dalam nilai `aws:SourceArn` harus menggunakan ID akun yang sama ketika digunakan dalam pernyataan kebijakan yang sama.
  + Gunakan `aws:SourceArn` jika Anda ingin akses lintas layanan untuk satu sumber daya.
  + Gunakan `aws:SourceAccount` jika Anda ingin mengizinkan sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas layanan.

  Dalam kebijakan, pastikan untuk menggunakan kunci konteks kondisi global `aws:SourceArn` dengan Amazon Resource Name (ARN) lengkap dari sumber daya yang mengakses peran. Untuk integrasi S3, pastikan untuk menyertakan instans DB ARNs, seperti yang ditunjukkan pada contoh berikut.

  Untuk Linux, macOS, atau Unix:

  ```
  aws iam create-role \
  	   --role-name rds-s3-integration-role \
  	   --assume-role-policy-document '{
  	     "Version": "2012-10-17",		 	 	 
  	     "Statement": [
  	       {
  	         "Effect": "Allow",
  	         "Principal": {
  	            "Service": "rds.amazonaws.com"
  	          },
  	         "Action": "sts:AssumeRole",
                  "Condition": {
                      "StringEquals": {
                          "aws:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier"
                      }
                  }
  	       }
  	     ]
  	   }'
  ```

  Untuk Windows:

  Tambahkan kunci konteks kondisi global ke `assume_role_policy.json`.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Service": [
                      "rds.amazonaws.com"
                  ]
              },
              "Action": "sts:AssumeRole",
              "Condition": {
                  "StringEquals": {
                      "aws:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier"
                  }
              }
          }
      ]
  }
  ```

------

**Untuk melampirkan kebijakan IAM untuk peran IAM**
+ AWS CLIPerintah berikut melampirkan kebijakan ke peran bernama`rds-s3-integration-role`. Ganti `your-policy-arn` dengan ARN kebijakan yang Anda catat di langkah sebelumnya.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws iam attach-role-policy \
  	   --policy-arn your-policy-arn \
  	   --role-name rds-s3-integration-role
  ```

  Untuk Windows:

  ```
  aws iam attach-role-policy ^
  	   --policy-arn your-policy-arn ^
  	   --role-name rds-s3-integration-role
  ```

# Mengaktifkan RDS integrasi SQL Server dengan S3
<a name="Appendix.SQLServer.Options.S3-integration.enabling"></a>

Di bagian berikut, Anda dapat menemukan cara mengaktifkan integrasi Amazon S3 dengan Amazon RDS untuk SQL Server. Untuk bekerja dengan integrasi S3, instans DB Anda harus dikaitkan dengan IAM peran yang sebelumnya Anda buat sebelum Anda menggunakan parameter `S3_INTEGRATION` nama-fitur.

**catatan**  
Untuk menambahkan IAM peran ke instans DB, status instans DB harus **tersedia**.

## Konsol
<a name="Appendix.SQLServer.Options.S3-integration.enabling.console"></a>

**Untuk mengaitkan IAM peran Anda dengan instans DB Anda**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Pilih nama instans DB SQL Server RDS untuk menampilkan detailnya.

1. Pada tab **Konektivitas & keamanan**, di bagian **Kelola IAM peran**, pilih IAM peran yang akan ditambahkan untuk **Tambahkan IAM peran ke instance ini**.

1. Untuk **Fitur**, pilih **S3\$1 INTEGRATION**.  
![\[Tambahkan peran S3_INTEGRATION\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/ora-s3-integration-role.png)

1. Pilih **Tambahkan peran**.

## AWS CLI
<a name="Appendix.SQLServer.Options.S3-integration.enabling.cli"></a>

**Untuk menambahkan IAM peran ke instance RDS for SQL Server DB**
+  AWS CLI Perintah berikut menambahkan IAM peran Anda ke instance RDS untuk SQL Server DB bernama`mydbinstance`.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds add-role-to-db-instance \
  	   --db-instance-identifier mydbinstance \
  	   --feature-name S3_INTEGRATION \
  	   --role-arn your-role-arn
  ```

  Untuk Windows:

  ```
  aws rds add-role-to-db-instance ^
  	   --db-instance-identifier mydbinstance ^
  	   --feature-name S3_INTEGRATION ^
  	   --role-arn your-role-arn
  ```

  Ganti `your-role-arn` dengan peran ARN yang Anda catat di langkah sebelumnya. `S3_INTEGRATION`harus ditentukan untuk `--feature-name` opsi.

# Mentransfer file antara RDS for SQL Server dan Amazon S3
<a name="Appendix.SQLServer.Options.S3-integration.using"></a>

Anda dapat menggunakan prosedur tersimpan Amazon RDS untuk mengunduh dan mengunggah file antara Amazon S3 dan instans DB RDS Anda. Anda juga dapat menggunakan prosedur tersimpan Amazon RDS untuk menampilkan daftar dan menghapus file di instans RDS.

File yang Anda unduh dari dan unggah ke S3 disimpan di folder `D:\S3`. Ini adalah satu-satunya folder yang dapat Anda gunakan untuk mengakses file Anda. Anda dapat menyusun file menjadi subfolder, yang dibuat untuk Anda saat Anda menyertakan folder tujuan selama pengunduhan.

Beberapa prosedur tersimpan mengharuskan Anda memberikan Amazon Resource Name (ARN) ke bucket dan file S3 Anda. Format untuk ARN Anda adalah `arn:aws:s3:::amzn-s3-demo-bucket/file_name`. Amazon S3 tidak memerlukan nomor akun atau AWS Wilayah di. ARNs

Tugas integrasi S3 berjalan secara berurutan dan berada di antrean yang sama dengan tugas pencadangan dan pemulihan native. Maksimal, Anda hanya dapat memiliki dua tugas yang berlangsung dalam antrean ini kapan saja. Mungkin perlu waktu hingga lima menit hingga tugas mulai diproses.

## Mengunduh file dari bucket Amazon S3 ke instans DB SQL Server
<a name="Appendix.SQLServer.Options.S3-integration.using.download"></a>

Untuk mengunduh file dari bucket S3 ke instans DB RDS for SQL Server, gunakan prosedur tersimpan Amazon RDS `msdb.dbo.rds_download_from_s3` dengan parameter berikut ini.


| Nama parameter | Jenis data | Default | Wajib | Deskripsi | 
| --- | --- | --- | --- | --- | 
|  `@s3_arn_of_file`  |  NVARCHAR  |  –  |  Wajib  |  ARN S3 dari file yang akan diunduh, misalnya: `arn:aws:s3:::amzn-s3-demo-bucket/mydata.csv`  | 
|  `@rds_file_path`  |  NVARCHAR  |  –  |  Opsional  |  Jalur file untuk instans RDS. Jika tidak ditentukan, jalur file-nya adalah `D:\S3\<filename in s3>`. RDS mendukung jalur absolut dan jalur relatif. Jika Anda ingin membuat subfolder, sertakan dalam jalur file.  | 
|  `@overwrite_file`  |  INT  |  0  |  Opsional  | Timpa file yang ada:  0 = Jangan timpa 1 = Timpa | 

Anda dapat mengunduh file tanpa ekstensi file dan file dengan ekstensi file berikut: .bcp, .csv, .dat, .fmt, .info, .lst, .tbl, .txt, dan .xml.

**catatan**  
File dengan ekstensi file .ispac dapat diunduh ketika SQL Server Integration Services diaktifkan. Untuk informasi selengkapnya tentang pengaktifan SSIS, lihat [SQL Server Integration Services](Appendix.SQLServer.Options.SSIS.md).  
File dengan ekstensi file berikut dapat diunduh ketika SQL Server Analysis Services diaktifkan: .abf, .asdatabase, .configsettings, .deploymentoptions, .deploymenttargets, dan .xmla. Untuk informasi selengkapnya tentang pengaktifan SSAS, lihat [SQLLayanan Analisis Server](Appendix.SQLServer.Options.SSAS.md).

Contoh berikut menunjukkan prosedur tersimpan untuk mengunduh file dari S3. 

```
exec msdb.dbo.rds_download_from_s3
	    @s3_arn_of_file='arn:aws:s3:::amzn-s3-demo-bucket/bulk_data.csv',
	    @rds_file_path='D:\S3\seed_data\data.csv',
	    @overwrite_file=1;
```

Contoh operasi `rds_download_from_s3` membuat folder yang diberi nama `seed_data` di `D:\S3\` jika folder belum ada. Kemudian, contoh tersebut mengunduh file sumber `bulk_data.csv` dari S3 ke file baru bernama `data.csv` di instans DB. Jika file sebelumnya ada, file ini akan ditimpa karena parameter `@overwrite_file` diatur ke `1`.

## Mengunggah file dari instans DB SQL Server ke bucket Amazon S3
<a name="Appendix.SQLServer.Options.S3-integration.using.upload"></a>

Untuk mengunggah file dari instans DB RDS for SQL Server ke bucket S3, gunakan prosedur tersimpan Amazon RDS `msdb.dbo.rds_upload_to_s3` dengan parameter berikut ini.


| Nama parameter | Jenis data | Default | Wajib | Deskripsi | 
| --- | --- | --- | --- | --- | 
|  `@s3_arn_of_file`  |  NVARCHAR  |  –  |  Wajib  |  ARN S3 dari file yang akan dibuat di S3, misalnya: `arn:aws:s3:::amzn-s3-demo-bucket/mydata.csv`  | 
|  `@rds_file_path`  |  NVARCHAR  |  –  |  Wajib  | Jalur file yang akan diunggah ke S3. Jalur absolut dan relatif didukung. | 
|  `@overwrite_file`  |  INT  |  –  |  Opsional  |  Timpa file yang ada:  0 = Jangan timpa 1 = Timpa  | 

Contoh berikut mengunggah file bernama `data.csv` dari lokasi yang ditentukan di `D:\S3\seed_data\` ke file `new_data.csv` dalam bucket S3 yang ditentukan berdasarkan ARN.

```
exec msdb.dbo.rds_upload_to_s3 
		@rds_file_path='D:\S3\seed_data\data.csv',
		@s3_arn_of_file='arn:aws:s3:::amzn-s3-demo-bucket/new_data.csv',
		@overwrite_file=1;
```

Jika file sebelumnya ada di S3, file ini akan ditimpa karena parameter @overwrite\$1file diatur ke `1`.

# Daftar file pada instans RDS DB
<a name="Appendix.SQLServer.Options.S3-integration.using.listing-files"></a>

Untuk menampilkan daftar file yang tersedia di instans DB, gunakan prosedur tersimpan dan fungsi. Pertama, jalankan prosedur tersimpan berikut untuk mengumpulkan detail file dari file dalam `D:\S3\`. 

```
exec msdb.dbo.rds_gather_file_details;
```

Prosedur tersimpan menampilkan ID tugas. Seperti tugas lain, prosedur tersimpan ini berjalan secara asinkron. Segera setelah status tugas menjadi `SUCCESS`, Anda dapat menggunakan ID tugas dalam fungsi `rds_fn_list_file_details` untuk menampilkan daftar file dan direktori yang ada di D:\$1S3\$1, seperti yang ditunjukkan berikut ini.

```
SELECT * FROM msdb.dbo.rds_fn_list_file_details(TASK_ID);
```

Fungsi `rds_fn_list_file_details` menampilkan tabel dengan kolom berikut.


| Parameter output | Deskripsi | 
| --- | --- | 
| filepath | Jalur file absolut (misalnya, D:\$1S3\$1mydata.csv) | 
| size\$1in\$1bytes | Ukuran file (dalam byte) | 
| last\$1modified\$1utc | Tanggal dan waktu modifikasi terakhir dalam UTC format | 
| is\$1directory | Opsi yang menunjukkan apakah item merupakan direktori (true/false) | 

# Menghapus file pada instans RDS DB
<a name="Appendix.SQLServer.Options.S3-integration.using.deleting-files"></a>

Untuk menghapus file yang tersedia pada instans DB, gunakan prosedur RDS tersimpan Amazon `msdb.dbo.rds_delete_from_filesystem` dengan parameter berikut. 


| Nama parameter | Jenis data | Default | Wajib | Deskripsi | 
| --- | --- | --- | --- | --- | 
|  `@rds_file_path`  |  NVARCHAR  |  –  |  Diperlukan  | Jalur file dari file yang akan dihapus. Jalur absolut dan relatif didukung.  | 
|  `@force_delete`  |  INT  | 0 |  Opsional  |  Untuk menghapus direktori, tanda ini harus disertakan dan diatur ke `1`. `1` = menghapus direktori Parameter ini diabaikan jika Anda menghapus file.  | 

Untuk menghapus direktori, `@rds_file_path` harus diakhiri dengan garis miring terbalik (`\`) dan `@force_delete` harus diatur ke `1`.

Contoh berikut menghapus file `D:\S3\delete_me.txt`.

```
exec msdb.dbo.rds_delete_from_filesystem
    @rds_file_path='D:\S3\delete_me.txt';
```

Contoh berikut menghapus direktori `D:\S3\example_folder\`.

```
exec msdb.dbo.rds_delete_from_filesystem
    @rds_file_path='D:\S3\example_folder\',
    @force_delete=1;
```

# Memantau status tugas transfer file
<a name="Appendix.SQLServer.Options.S3-integration.using.monitortasks"></a>

Untuk melacak status tugas integrasi S3, panggil fungsi `rds_fn_task_status`. Fungsi ini membutuhkan dua parameter. Parameter pertama harus selalu `NULL` karena tidak berlaku pada integrasi S3. Parameter kedua dapat berisi ID tugas.

Untuk melihat daftar semua tugas, tetapkan parameter pertama ke `NULL` dan parameter kedua ke `0`, seperti yang ditunjukkan dalam contoh berikut.

```
SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,0);
```

Untuk melihat daftar semua tugas, tetapkan parameter pertama ke `NULL` dan parameter kedua ke ID tugas, seperti yang ditunjukkan dalam contoh berikut.

```
SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,42);
```

Fungsi `rds_fn_task_status` menampilkan informasi berikut.


|  Parameter output  |  Deskripsi  | 
| --- | --- | 
|  `task_id`  |  ID tugas.  | 
|  `task_type`  |  Untuk integrasi S3, tugas dapat memiliki jenis tugas berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.S3-integration.using.monitortasks.html)  | 
|  `database_name`  | Tidak berlaku untuk tugas integrasi S3. | 
|  `% complete`  |  Progres tugas sebagai persentase.  | 
|  `duration(mins)`  |  Jumlah waktu yang dihabiskan untuk tugas, dalam menit.  | 
|  `lifecycle`  |  Status tugas. Status yang mungkin adalah: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.S3-integration.using.monitortasks.html)  | 
|  `task_info`  |  Informasi tambahan tentang tugas. Jika terjadi kesalahan selama pemrosesan, kolom ini berisi informasi tentang kesalahan tersebut.   | 
|  `last_updated`  |  Tanggal dan waktu status tugas terakhir diperbarui.   | 
|  `created_at`  |  Tanggal dan waktu tugas dibuat.  | 
|  `S3_object_arn`  |  ARN dari objek S3 tempat file diunduh atau diunggah.  | 
|  `overwrite_S3_backup_file`  |  Tidak berlaku untuk tugas integrasi S3.  | 
|  `KMS_master_key_arn`  |  Tidak berlaku untuk tugas integrasi S3.  | 
|  `filepath`  |  Jalur file pada instans DB RDS.  | 
|  `overwrite_file`  |  Opsi yang menunjukkan apakah file yang sudah ada akan ditimpa.  | 
|  `task_metadata`  |  Tidak berlaku untuk tugas integrasi S3.  | 

# Membatalkan tugas
<a name="Appendix.SQLServer.Options.S3-integration.canceltasks"></a>

Untuk membatalkan tugas integrasi S3, gunakan prosedur tersimpan `msdb.dbo.rds_cancel_task` dengan parameter `task_id`. Tugas hapus dan tugas tampilkan daftar yang sedang berlangsung tidak dapat dibatalkan. Contoh berikut menunjukkan permintaan untuk membatalkan tugas. 

```
exec msdb.dbo.rds_cancel_task @task_id = 1234;
```

Untuk mendapatkan gambaran umum tentang semua tugas dan tugasnyaIDs, gunakan `rds_fn_task_status` fungsi seperti yang dijelaskan dalam[Memantau status tugas transfer file](Appendix.SQLServer.Options.S3-integration.using.monitortasks.md).

## Batasan Multi-AZ untuk integrasi S3
<a name="S3-MAZ"></a>

Pada instans Multi-AZ, file dalam folder `D:\S3` dihapus pada replika siaga setelah failover. Failover dapat direncanakan, misalnya, selama modifikasi instans DB seperti mengubah kelas instans atau meningkatkan versi mesin. Atau, failover bisa jadi tidak terencana, selama pemadaman replika primer.

**catatan**  
Kami tidak menyarankan penggunaan `D:\S3` untuk penyimpanan file. Praktik terbaiknya adalah mengunggah file yang dibuat ke Amazon S3 agar durabel, dan mengunduh file tersebut saat Anda perlu mengimpor data.

Untuk menentukan waktu failover terakhir, Anda dapat menggunakan prosedur tersimpan `msdb.dbo.rds_failover_time`. Untuk informasi selengkapnya, lihat [Menentukan waktu failover terakhir untuk Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.LastFailover.md).

**Example tidak ada failover terbaru**  
Contoh ini menampilkan output saat tidak ada failover terbaru dalam log kesalahan. Tidak terjadi failover sejak 2020-04-29 23:59:00.01.  
Oleh karena itu, semua file yang diunduh setelah waktu tersebut yang belum dihapus menggunakan prosedur tersimpan `rds_delete_from_filesystem` masih dapat diakses di host saat ini. File yang diunduh sebelum waktu tersebut mungkin juga tersedia.  


| errorlog\$1available\$1from | recent\$1failover\$1time | 
| --- | --- | 
|  2020-04-29 23:59:00.0100000  |  null  | 

**Example failover terbaru**  
Contoh ini menampilkan output saat ada failover dalam log kesalahan. Failover terbaru adalah pada 2020-05-05 18:57:51.89.  
Semua file yang diunduh setelah waktu tersebut yang belum dihapus menggunakan prosedur tersimpan `rds_delete_from_filesystem` masih dapat diakses di host saat ini.  


| errorlog\$1available\$1from | recent\$1failover\$1time | 
| --- | --- | 
|  2020-04-29 23:59:00.0100000  |  05-05-2020 18:57:51.8900000  | 

# Menonaktifkan RDS integrasi SQL Server dengan S3
<a name="Appendix.SQLServer.Options.S3-integration.disabling"></a>

Berikut ini, Anda dapat menemukan cara menonaktifkan integrasi Amazon S3 dengan Amazon RDS untuk SQL Server. File dalam `D:\S3\` tidak dihapus saat menonaktifkan integrasi S3.

**catatan**  
Untuk menghapus IAM peran dari instans DB, status instans DB harus`available`.

## Konsol
<a name="Appendix.SQLServer.Options.S3-integration.disabling.console"></a>

**Untuk memisahkan IAM peran Anda dari instans DB Anda**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Pilih nama instans DB SQL Server RDS untuk menampilkan detailnya.

1. Pada tab **Konektivitas & keamanan**, di bagian **Kelola IAM peran**, pilih IAM peran yang akan dihapus.

1. Pilih **Hapus**.

## AWS CLI
<a name="Appendix.SQLServer.Options.S3-integration.disabling.cli"></a>

**Untuk menghapus IAM peran dari instance RDS for SQL Server DB**
+  AWS CLI Perintah berikut menghapus IAM peran dari instance RDS untuk SQL Server DB bernama`mydbinstance`.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds remove-role-from-db-instance \
  	   --db-instance-identifier mydbinstance \
  	   --feature-name S3_INTEGRATION \
  	   --role-arn your-role-arn
  ```

  Untuk Windows:

  ```
  aws rds remove-role-from-db-instance ^
  	   --db-instance-identifier mydbinstance ^
  	   --feature-name S3_INTEGRATION ^
  	   --role-arn your-role-arn
  ```

  Ganti `your-role-arn` dengan IAM peran yang sesuai ARN untuk `--feature-name` opsi tersebut.

# Menggunakan Database Mail di Amazon RDS untuk SQL Server
<a name="SQLServer.DBMail"></a>

Anda dapat menggunakan Database Mail untuk mengirim pesan email ke pengguna dari instans database Amazon RDS di SQL Server Anda. Pesan dapat berisi file dan hasil kueri. Database Mail mencakup komponen berikut:
+ **Objek konfigurasi dan keamanan** – Objek-objek ini membuat profil dan akun, dan disimpan di basis data `msdb`.
+ **Objek pesan** – Objek-objek ini mencakup [sp\$1send\$1dbmail](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql) prosedur tersimpan yang digunakan untuk mengirim pesan, dan struktur data yang menyimpan informasi tentang pesan. Semuanya disimpan di basis data `msdb`.
+ **Pembuatan log dan audit objek** – Database Mail menulis informasi log ke basis data `msdb` dan log peristiwa aplikasi Microsoft Windows.
+ **Database Mail dapat executable** – `DatabaseMail.exe` membaca dari antrean di basis data `msdb` dan mengirim pesan email.

RDSmendukung Database Mail untuk semua versi SQL Server di Web, Standar, dan Edisi Perusahaan.

## Batasan
<a name="SQLServer.DBMail.Limitations"></a>

Batasan berikut berlaku untuk menggunakan Database Mail pada instans SQL Server DB Anda:
+ Database Mail tidak didukung untuk SQL Server Express Edition.
+ Mengubah parameter konfigurasi Database Mail tidak didukung. Untuk melihat nilai preset (default), gunakan prosedur tersimpan [sysmail\$1help\$1configure\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-help-configure-sp-transact-sql).
+ Lampiran file tidak sepenuhnya didukung. Untuk informasi selengkapnya, lihat [Bekerja dengan lampiran file](#SQLServer.DBMail.Files).
+ Ukuran lampiran file maksimum adalah 1 MB.
+ Database Mail memerlukan konfigurasi tambahan pada instans DB Multi-AZ. Untuk informasi selengkapnya, lihat [Pertimbangan untuk deployment multi-AZ](#SQLServer.DBMail.MAZ).
+ Mengkonfigurasi Agen SQL Server untuk mengirim pesan email ke operator yang telah ditentukan tidak didukung.

# Mengaktifkan Database Mail
<a name="SQLServer.DBMail.Enable"></a>

Gunakan proses berikut untuk mengaktifkan Database Mail untuk instans DB Anda:

1. Buat grup parameter baru.

1. Ubah grup parameter untuk mengatur parameter `database mail xps` ke 1.

1. Hubungkan grup parameter baru dengan instans DB.

## Membuat grup parameter untuk Database Mail
<a name="DBMail.CreateParamGroup"></a>

Buat grup parameter untuk parameter `database mail xps` yang sesuai dengan edisi SQL Server dan versi instans DB Anda.

**catatan**  
Anda juga dapat mengubah grup parameter yang ada. Ikuti prosedur di [Mengubah grup parameter untuk Database Mail](#DBMail.ModifyParamGroup).

### Konsol
<a name="DBMail.CreateParamGroup.Console"></a>

Contoh berikut membuat grup parameter untuk Edisi Standar SQL Server 2016.

**Untuk membuat grup parameter**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup parameter**.

1. Pilih **Buat grup parameter**.

1. Di panel **Buat grup parameter**, lakukan hal berikut:

   1. Untuk **Rangkaian grup parameter**, pilih **sqlserver-se-13.0**.

   1. Untuk **Nama grup**, masukkan pengidentifikasi grup parameter, seperti **dbmail-sqlserver-se-13**.

   1. Untuk **Deskripsi**, masukkan **Database Mail XPs**.

1. Pilih **Buat**.

### CLI
<a name="DBMail.CreateParamGroup.CLI"></a>

Contoh berikut membuat grup parameter untuk Edisi Standar SQL Server 2016.

**Untuk membuat grup parameter**
+ Gunakan salah satu perintah berikut.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-db-parameter-group \
      --db-parameter-group-name dbmail-sqlserver-se-13 \
      --db-parameter-group-family "sqlserver-se-13.0" \
      --description "Database Mail XPs"
  ```

  Untuk Windows:

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name dbmail-sqlserver-se-13 ^
      --db-parameter-group-family "sqlserver-se-13.0" ^
      --description "Database Mail XPs"
  ```

## Mengubah grup parameter untuk Database Mail
<a name="DBMail.ModifyParamGroup"></a>

Ubah parameter `database mail xps` di grup parameter yang sesuai dengan edisi SQL Server dan versi instans DB Anda.

Untuk mengaktifkan Database Mail, atur parameter `database mail xps` ke 1.

### Konsol
<a name="DBMail.ModifyParamGroup.Console"></a>

Contoh berikut akan mengubah grup parameter yang telah Anda buat untuk Edisi Standar SQL Server 2016.

**Untuk mengubah grup parameter**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup parameter**.

1. Pilih grup parameter, seperti **dbmail-sqlserver-se-13**.

1. Di bagian **Parameter**, filter daftar parameter untuk **mail**.

1. Pilih **Database Mail xps**.

1. Pilih **Edit parameter**.

1. Masukkan **1**.

1. Pilih **Simpan perubahan**.

### CLI
<a name="DBMail.ModifyParamGroup.CLI"></a>

Contoh berikut akan mengubah grup parameter yang telah Anda buat untuk Edisi Standar SQL Server 2016.

**Untuk mengubah grup parameter**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds modify-db-parameter-group \
      --db-parameter-group-name dbmail-sqlserver-se-13 \
      --parameters "ParameterName='database mail xps',ParameterValue=1,ApplyMethod=immediate"
  ```

  Untuk Windows:

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name dbmail-sqlserver-se-13 ^
      --parameters "ParameterName='database mail xps',ParameterValue=1,ApplyMethod=immediate"
  ```

## Kaitkan grup parameter dengan instans DB
<a name="DBMail.AssocParamGroup"></a>

Anda dapat menggunakan Konsol Manajemen AWS atau AWS CLI untuk mengaitkan grup parameter Database Mail dengan instans DB.

### Konsol
<a name="DBMail.AssocParamGroup.Console"></a>

Anda dapat mengaitkan grup parameter Database Mail dengan instans DB baru atau yang sudah ada.
+ Untuk instans DB baru, kaitkan saat Anda meluncurkan instans. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+ Untuk instans DB yang sudah ada, kaitkan dengan mengubah instans. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

### CLI
<a name="DBMail.AssocParamGroup.CLI"></a>

Anda dapat mengaitkan grup parameter Database Mail dengan instans DB baru atau yang sudah ada.

**Untuk membuat instans DB dengan grup parameter Database Mail**
+ Tentukan jenis mesin DB dan versi utama yang sama seperti yang Anda gunakan saat membuat grup parameter.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier mydbinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 13.00.5426.0.v1 \
      --allocated-storage 100 \
      --manage-master-user-password \
      --master-username admin \
      --storage-type gp2 \
      --license-model li
      --db-parameter-group-name dbmail-sqlserver-se-13
  ```

  Untuk Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier mydbinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 13.00.5426.0.v1 ^
      --allocated-storage 100 ^
      --manage-master-user-password ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --db-parameter-group-name dbmail-sqlserver-se-13
  ```

**Untuk mengubah instans DB dan mengaitkan grup parameter Database Mail**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mydbinstance \
      --db-parameter-group-name dbmail-sqlserver-se-13 \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mydbinstance ^
      --db-parameter-group-name dbmail-sqlserver-se-13 ^
      --apply-immediately
  ```

# Mengonfigurasi Database Mail
<a name="SQLServer.DBMail.Configure"></a>

Anda melakukan tugas berikut untuk mengonfigurasikan Database Mail:

1. Buat profil Database Mail.

1. Buat akun Database Mail.

1. Tambahkan akun Database Mail ke profil Database Mail.

1. Tambahkan pengguna ke profil Database Mail.

**catatan**  
Untuk mengonfigurasi Database Mail, pastikan bahwa Anda memiliki izin `execute` pada prosedur yang disimpan dalam basis data `msdb`.

## Membuat profil Database Mail
<a name="SQLServer.DBMail.Configure.Profile"></a>

Untuk membuat profil Database Mail, Anda menggunakan prosedur tersimpan [sysmail\$1add\$1profile\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profile-sp-transact-sql). Contoh berikut membuat profil dengan nama `Notifications`.

**Untuk membuat profil**
+ Gunakan pernyataan SQL berikut.

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_profile_sp  
      @profile_name         = 'Notifications',  
      @description          = 'Profile used for sending outgoing notifications using Amazon SES.';
  GO
  ```

## Membuat akun Database Mail
<a name="SQLServer.DBMail.Configure.Account"></a>

Untuk membuat akun Database Mail, Anda menggunakan prosedur tersimpan [sysmail\$1add\$1account\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-account-sp-transact-sql). Contoh berikut membuat akun dengan nama `SES` di RDS untuk instans DB SQL Server di VPC pribadi, menggunakan Layanan Email Sederhana Amazon.

Menggunakan Amazon SES memerlukan parameter berikut:
+ `@email_address`— Identitas terverifikasi Amazon SES. Untuk informasi selengkapnya, lihat [Identitas terverifikasi di Amazon SES.](https://docs.aws.amazon.com/ses/latest/dg/verify-addresses-and-domains.html)
+ `@mailserver_name`— Titik akhir SMTP Amazon SES. Untuk informasi selengkapnya, lihat [Menghubungkan ke titik akhir Amazon SES SMTP](https://docs.aws.amazon.com/ses/latest/dg/smtp-connect.html).
+ `@username`— Nama pengguna SMTP Amazon SES. Untuk informasi selengkapnya, lihat [Mendapatkan kredensial Amazon SES SMTP](https://docs.aws.amazon.com/ses/latest/dg/smtp-credentials.html).

  Jangan gunakan nama AWS Identity and Access Management pengguna.
+ `@password`— Kata sandi Amazon SES SMTP. Untuk informasi selengkapnya, lihat [Mendapatkan kredensial Amazon SES SMTP](https://docs.aws.amazon.com/ses/latest/dg/smtp-credentials.html).

**Untuk membuat akun**
+ Gunakan pernyataan SQL berikut.

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_account_sp
      @account_name        = 'SES',
      @description         = 'Mail account for sending outgoing notifications.',
      @email_address       = 'nobody@example.com',
      @display_name        = 'Automated Mailer',
      @mailserver_name     = 'vpce-0a1b2c3d4e5f-01234567.email-smtp.us-west-2.vpce.amazonaws.com',
      @port                = 587,
      @enable_ssl          = 1,
      @username            = 'Smtp_Username',
      @password            = 'Smtp_Password';
  GO
  ```
**catatan**  
Tentukan kredensial selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

## Menambahkan akun Database Mail ke profil Database Mail
<a name="SQLServer.DBMail.Configure.AddAccount"></a>

Untuk menambahkan akun Database Mail ke profil Database Mail, gunakan prosedur tersimpan [sysmail\$1add\$1profileaccount\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profileaccount-sp-transact-sql). Contoh berikut menambahkan akun `SES` ke profil `Notifications`.

**Menambahkan akun ke profil**
+ Gunakan pernyataan SQL berikut.

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
      @profile_name        = 'Notifications',
      @account_name        = 'SES',
      @sequence_number     = 1;
  GO
  ```

## Menambahkan pengguna ke profil Database Mail
<a name="SQLServer.DBMail.Configure.AddUser"></a>

Untuk memberikan izin bagi pengguna utama basis data `msdb` untuk menggunakan profil Database Mail, Anda menggunakan prosedur [sysmail\$1add\$1principalprofile\$1sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-principalprofile-sp-transact-sql) tersimpan. *Pengguna utama* adalah entitas yang dapat meminta sumber daya SQL Server. Pengguna utama basis data harus dipetakan ke pengguna autentikasi SQL Server, pengguna Autentikasi Windows, atau grup Autentikasi Windows.

Contoh berikut memberikan akses publik ke profil `Notifications`.

**Untuk menambahkan pengguna ke profil**
+ Gunakan pernyataan SQL berikut.

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
      @profile_name       = 'Notifications',  
      @principal_name     = 'public',  
      @is_default         = 1;
  GO
  ```

## Amazon RDS menyimpan prosedur dan fungsi untuk Database Mail
<a name="SQLServer.DBMail.StoredProc"></a>

Microsoft menyediakan [prosedur tersimpan](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/database-mail-stored-procedures-transact-sql) untuk menggunakan Database Mail, seperti membuat, mencantumkan, memperbarui, dan menghapus akun dan profil. Selain itu, RDS menyediakan prosedur dan fungsi tersimpan untuk Database Mail yang ditunjukkan pada tabel berikut.


| Prosedur/Fungsi | Deskripsi | 
| --- | --- | 
| rds\$1fn\$1sysmail\$1allitems | Menampilkan pesan terkirim, termasuk yang dikirim oleh pengguna lain. | 
| rds\$1fn\$1sysmail\$1event\$1log | Menampilkan acara, termasuk acara untuk pesan yang dikirimkan oleh pengguna lain. | 
| rds\$1fn\$1sysmail\$1mailattachments | Menampilkan lampiran terkirim, termasuk yang dikirim oleh pengguna lain. | 
| rds\$1sysmail\$1control | Memulai dan menghentikan antrian email (DatabaseMailproses.exe). | 
| rds\$1sysmail\$1delete\$1mailitems\$1sp | Menghapus pesan email yang dikirim oleh semua pengguna dari tabel internal Database Mail. | 

# Mengirim pesan email menggunakan Database Mail
<a name="SQLServer.DBMail.Send"></a>

Anda menggunakan prosedur [sp\$1send\$1dbmail](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql) tersimpan untuk mengirim pesan email menggunakan Database Mail.

## Penggunaan
<a name="SQLServer.DBMail.Send.Usage"></a>

```
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'profile_name',
@recipients = 'recipient1@example.com[; recipient2; ... recipientn]',
@subject = 'subject',
@body = 'message_body',
[@body_format = 'HTML'],
[@file_attachments = 'file_path1; file_path2; ... file_pathn'],
[@query = 'SQL_query'],
[@attach_query_result_as_file = 0|1]';
```

Parameter berikut diperlukan:
+ `@profile_name` – Nama profil Database Mail yang akan digunakan untuk mengirim pesan.
+ `@recipients` – Daftar alamat email tujuan pengiriman pesan yang dipisahkan titik koma.
+ `@subject` – Subjek pesan.
+ `@body` – Konten pesan. Anda juga dapat menggunakan variabel yang dinyatakan sebagai isi.

Parameter berikut ini bersifat opsional:
+ `@body_format` – Parameter ini digunakan dengan variabel yang dinyatakan untuk mengirim email dalam format HTML.
+ `@file_attachments` – Daftar lampiran pesan yang disusun dengan titik koma. Path file harus berupa path absolut.
+ `@query` – Kueri SQL untuk dijalankan. Hasil kueri dapat dilampirkan sebagai file atau disertakan dalam konten pesan.
+ `@attach_query_result_as_file` – Apakah melampirkan hasil kueri sebagai file. Atur ke 0 untuk tidak, 1 untuk ya. Default-nya adalah 0.

## Contoh
<a name="SQLServer.DBMail.Send.Examples"></a>

Contoh-contoh berikut ini mendemonstrasikan cara mengirim pesan email.

**Example mengirimkan pesan ke satu penerima**  

```
USE msdb
GO

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'nobody@example.com',
     @subject            = 'Automated DBMail message - 1',
     @body               = 'Database Mail configuration was successful.';
GO
```

**Example mengirimkan pesan ke beberapa penerima**  

```
USE msdb
GO

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'recipient1@example.com;recipient2@example.com',
     @subject            = 'Automated DBMail message - 2',
     @body               = 'This is a message.';
GO
```

**Example mengirimkan hasil kueri SQL sebagai lampiran file**  

```
USE msdb
GO

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'nobody@example.com',
     @subject            = 'Test SQL query',
     @body               = 'This is a SQL query test.',
     @query              = 'SELECT * FROM abc.dbo.test',
     @attach_query_result_as_file = 1;
GO
```

**Example mengirimkan pesan dalam format HTML**  

```
USE msdb
GO

DECLARE @HTML_Body as NVARCHAR(500) = 'Hi, <h4> Heading </h4> </br> See the report. <b> Regards </b>';

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'nobody@example.com',
     @subject            = 'Test HTML message',
     @body               = @HTML_Body,
     @body_format        = 'HTML';
GO
```

**Example mengirimkan pesan menggunakan pemicu saat peristiwa tertentu terjadi di basis data**  

```
USE AdventureWorks2017
GO
IF OBJECT_ID ('Production.iProductNotification', 'TR') IS NOT NULL
DROP TRIGGER Purchasing.iProductNotification
GO

CREATE TRIGGER iProductNotification ON Production.Product
   FOR INSERT
   AS
   DECLARE @ProductInformation nvarchar(255);
   SELECT
   @ProductInformation = 'A new product, ' + Name + ', is now available for $' + CAST(StandardCost AS nvarchar(20)) + '!'
   FROM INSERTED i;

EXEC msdb.dbo.sp_send_dbmail
     @profile_name       = 'Notifications',
     @recipients         = 'nobody@example.com',
     @subject            = 'New product information',
     @body               = @ProductInformation;
GO
```

# Melihat pesan, log, dan lampiran
<a name="SQLServer.DBMail.View"></a>

Anda menggunakan prosedur RDS tersimpan untuk melihat pesan, log peristiwa, dan lampiran.

**Untuk melihat semua pesan email**
+ Gunakan SQL kueri berikut.

  ```
  SELECT * FROM msdb.dbo.rds_fn_sysmail_allitems(); --WHERE sent_status='sent' or 'failed' or 'unsent'
  ```

**Untuk melihat semua log peristiwa email**
+ Gunakan SQL kueri berikut.

  ```
  SELECT * FROM msdb.dbo.rds_fn_sysmail_event_log();
  ```

**Untuk melihat semua lampiran email**
+ Gunakan SQL kueri berikut.

  ```
  SELECT * FROM msdb.dbo.rds_fn_sysmail_mailattachments();
  ```

# Menghapus pesan
<a name="SQLServer.DBMail.Delete"></a>

Anda menggunakan prosedur `rds_sysmail_delete_mailitems_sp` yang disimpan untuk menghapus pesan.

**catatan**  
RDSsecara otomatis menghapus item tabel email ketika data DBMail riwayat mencapai ukuran 1 GB, dengan periode retensi minimal 24 jam.  
Jika Anda ingin menyimpan mail untuk periode yang lebih lama, Anda dapat mengarsipkannya. Untuk selengkapnya, lihat [Membuat pekerjaan Agen SQL Server untuk mengarsipkan pesan Mail Database dan log peristiwa](https://docs.microsoft.com/en-us/sql/relational-databases/database-mail/create-a-sql-server-agent-job-to-archive-database-mail-messages-and-event-logs) di dokumentasi Microsoft.

**Untuk menghapus semua pesan email**
+ Gunakan SQL pernyataan berikut.

  ```
  DECLARE @GETDATE datetime
  SET @GETDATE = GETDATE();
  EXECUTE msdb.dbo.rds_sysmail_delete_mailitems_sp @sent_before = @GETDATE;
  GO
  ```

**Untuk menghapus semua pesan email dengan status tertentu**
+ Gunakan SQL pernyataan berikut untuk menghapus semua pesan yang gagal.

  ```
  DECLARE @GETDATE datetime
  SET @GETDATE = GETDATE();
  EXECUTE msdb.dbo.rds_sysmail_delete_mailitems_sp @sent_status = 'failed';
  GO
  ```

# Memulai dan menghentikan antrian email
<a name="SQLServer.DBMail.StartStop"></a>

Gunakan petunjuk berikut untuk memulai dan menghentikan antrian email DB:

**Topics**
+ [Memulai antrean email](#SQLServer.DBMail.Start)
+ [Menghentikan antrean email](#SQLServer.DBMail.Stop)

## Memulai antrean email
<a name="SQLServer.DBMail.Start"></a>

Anda menggunakan prosedur `rds_sysmail_control` yang disimpan untuk memulai proses Database Mail.

**catatan**  
Mengaktifkan Database Mail secara otomatis memulai antrean email.

**Untuk memulai antrean email**
+ Gunakan SQL pernyataan berikut.

  ```
  EXECUTE msdb.dbo.rds_sysmail_control start;
  GO
  ```

## Menghentikan antrean email
<a name="SQLServer.DBMail.Stop"></a>

Anda menggunakan prosedur `rds_sysmail_control` yang disimpan untuk memulai menghentikan proses Database Mail.

**Untuk menghentikan antrean email**
+ Gunakan SQL pernyataan berikut.

  ```
  EXECUTE msdb.dbo.rds_sysmail_control stop;
  GO
  ```

## Bekerja dengan lampiran file
<a name="SQLServer.DBMail.Files"></a>

Ekstensi lampiran file berikut tidak didukung dalam pesan Database Mail dari RDS SQL Server: .ade, .adp, .apk, .appx, .appxbundle, .bat, .bak, .cab, .chm, .cmd, .com, .cpl, .dll, .dmg, .exe, .hta, .inf1, .ins, .isp, .iso, .jar, .job, .job, .js, .jse, .ldf, .lib, .lnk, .mde, .mdf, .msc, .msi, .msix, .msixbundle, .msp, .mst, .nsh, .pif, .ps, .ps1, .psc1, .reg, .rgs, .scr, .sct, .shb, .shb, .shb s, .svg, .sys, .u3p, .vb, .vbe, .vbs, .vbscript, .vxd, .ws, .wsc, .wsf, dan .wsh.

Database Mail menggunakan konteks keamanan Microsoft Windows dari pengguna saat ini untuk mengontrol akses ke file. Pengguna yang masuk dengan Otentikasi SQL Server tidak dapat melampirkan file menggunakan `@file_attachments` parameter dengan prosedur yang `sp_send_dbmail` disimpan. Windows tidak mengizinkan SQL Server untuk menyediakan kredensil dari komputer jarak jauh ke komputer jarak jauh lainnya. Oleh karena itu, Database Mail tidak dapat melampirkan file dari jaringan berbagi ketika perintah dijalankan dari komputer selain komputer yang menjalankan SQL Server.

Namun, Anda dapat menggunakan pekerjaan Agen SQL Server untuk melampirkan file. Untuk informasi selengkapnya tentang Agen SQL Server, lihat [Menggunakan Agen SQL Server untuk Amazon RDS](Appendix.SQLServer.CommonDBATasks.Agent.md) dan [Agen SQL Server](https://docs.microsoft.com/en-us/sql/ssms/agent/sql-server-agent) di dokumentasi Microsoft.

## Pertimbangan untuk deployment multi-AZ
<a name="SQLServer.DBMail.MAZ"></a>

Ketika Anda mengonfigurasikan Database Mail di instans DB Multi-AZ DB, konfigurasi tidak secara otomatis diperbanyak ke sekunder. Kami merekomendasikan untuk mengonversi instans Multi-AZ ke instans AZ Tunggal, mengonfigurasi Database Mail, kemudian mengonversikan kembali instans DB ke Multi-AZ. Kemudian, kedua node primer dan sekunder memiliki konfigurasi Database Mail.

Jika Anda membuat replika baca dari instans Multi-AZ Anda yang memiliki Database Mail dikonfigurasi, replika mewarisi konfigurasi, tetapi tanpa kata sandi ke server. SMTP Perbarui akun Database Mail dengan kata sandi.

## Menghapus batasan SMTP (port 25)
<a name="SQLServer.DBMail.SMTP"></a>

Secara default, AWS memblokir lalu lintas keluar pada SMTP (port 25) RDS untuk instance SQL Server DB. Hal ini dilakukan untuk mencegah spam berdasarkan kebijakan pemilik elastic network interface. Anda dapat menghapus batasan ini jika diperlukan. Untuk informasi selengkapnya, lihat [Bagaimana cara menghapus pembatasan pada port 25 dari EC2 instans Amazon atau fungsi Lambda saya](https://repost.aws/knowledge-center/ec2-port-25-throttle)? . 

# Amazon RDS for SQL Server mendukung penyimpanan instans lokal untuk basis data tempdb
<a name="SQLServer.InstanceStore"></a>

*Penyimpanan instans* menyediakan penyimpanan tingkat blok sementara untuk instans DB Anda. Penyimpanan ini terletak pada disk yang secara fisik terpasang pada komputer host. Disk ini memiliki penyimpanan instans Non-Volatile Memory Express (NVMe) yang didasarkan pada solid-state drive (SSD). Penyimpanan tersebut dioptimalkan untuk latensi rendah, performa I/O acak sangat tinggi, dan throughput baca berurutan.

Dengan menempatkan file data `tempdb` dan file log `tempdb` di penyimpanan instans, Anda dapat mencapai latensi baca dan tulis yang lebih rendah dibandingkan dengan penyimpanan standar berdasarkan Amazon EBS.

**catatan**  
File log dari file dan basis data untuk basis data SQL Server tidak ditempatkan di penyimpanan instans.

## Mengaktifkan penyimpanan instans
<a name="SQLServer.InstanceStore.Enable"></a>

Ketika RDS menyediakan instans DB dengan salah satu kelas instans berikut, basis data `tempdb` secara otomatis ditempatkan ke penyimpanan instans:
+ db.m5d
+ db.r5d
+ db.x2iedn

Untuk mengaktifkan penyimpanan instans, lakukan salah satu hal berikut:
+ Buat instans DB SQL Server menggunakan salah satu dari jenis instans ini. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+ Mengubah instans DB SQL Server yang ada untuk menggunakan salah satunya. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

Penyimpanan instans tersedia di semua Wilayah AWS di mana satu atau beberapa jenis instans ini didukung. Untuk informasi selengkapnya tentang daftar kelas instans `db.m5d` dan `db.r5d`, lihat [ DB](Concepts.DBInstanceClass.md). Untuk informasi selengkapnya tentang kelas instans yang didukung oleh Amazon RDS for SQL Server, lihat [Dukungan kelas instans DB untuk Microsoft SQL Server](SQLServer.Concepts.General.InstanceClasses.md).

## Pertimbangan lokasi dan ukuran file
<a name="SQLServer.InstanceStore.Files"></a>

Pada instans tanpa penyimpanan instans, RDS menyimpan data `tempdb` dan file log di direktori `D:\rdsdbdata\DATA`. Kedua file mulai dari 8 MB secara default.

Pada instans dengan penyimpanan instans, RDS menyimpan data `tempdb` dan file log di direktori `T:\rdsdbdata\DATA`.

Saat `tempdb` hanya memiliki satu file data (`tempdb.mdf`) dan satu file log (`templog.ldf`), `templog.ldf` dimulai pada 8 MB secara default dan `tempdb.mdf` dimulai pada 80% atau lebih dari kapasitas penyimpanan instans. Dua puluh persen dari kapasitas penyimpanan atau 200 GB, mana pun yang kurang, tetap bebas untuk memulai. Beberapa file data `tempdb` membagi ruang disk 80% secara merata, sementara file log selalu memiliki ukuran awal 8-MB.

Misalnya, jika Anda mengubah kelas instans DB Anda dari `db.m5.2xlarge` ke `db.m5d.2xlarge`, ukuran file data `tempdb` meningkat dari 8 MB masing-masing hingga 234 GB secara total.

**catatan**  
Selain data `tempdb` dan file log di penyimpanan instans (`T:\rdsdbdata\DATA`), Anda masih dapat membuat data dan file log `tempdb` ekstra pada volume data (`D:\rdsdbdata\DATA`). File-file tersebut selalu memiliki ukuran awal 8 MB.

## Pertimbangan backup
<a name="SQLServer.InstanceStore.Backups"></a>

Anda mungkin perlu untuk mempertahankan backup untuk waktu yang lama, menimbulkan biaya dari waktu ke waktu. Blok data dan log `tempdb` dapat berubah sangat sering tergantung pada beban kerja. Hal ini dapat sangat meningkatkan ukuran snapshot DB.

Saat `tempdb` ada pada penyimpanan instans, snapshot tidak mencakup file sementara. Ini berarti bahwa ukuran snapshot lebih kecil dan mengkonsumsi lebih sedikit alokasi backup gratis dibandingkan dengan penyimpanan EBS saja.

## Kesalahan disk penuh
<a name="SQLServer.InstanceStore.DiskFull"></a>

Jika Anda menggunakan semua ruang yang tersedia di penyimpanan instans, Anda mungkin menerima kesalahan seperti berikut:
+ Log transaksi untuk basis data 'tempdb' penuh karena 'ACTIVE\$1TRANSACTION'.
+ Tidak dapat mengalokasikan ruang untuk objek 'dbo.SORT sementara menjalankan penyimpanan: 140738941419520' dalam basis data 'tempdb' karena filegroup 'PRIMARY' penuh. Membuat ruang disk dengan menghapus file yang tidak diperlukan, membuang objek dalam filegroup, menambahkan file tambahan ke filegroup, atau menyalakan autogrowth untuk file yang ada di filegroup.

Anda dapat melakukan satu atau beberapa hal berikut ketika penyimpanan instans penuh:
+ Menyesuaikan beban kerja Anda atau cara Anda menggunakan `tempdb`.
+ Menaikkan skala untuk menggunakan kelas instans DB dengan penyimpanan NVMe lebih banyak.
+ Berhenti menggunakan penyimpanan instans, dan menggunakan kelas instans dengan hanya penyimpanan EBS.
+ Gunakan mode campuran dengan menambahkan data sekunder atau file log untuk `tempdb` pada volume EBS.

## Menghapus penyimpanan instans
<a name="SQLServer.InstanceStore.Disable"></a>

Untuk menghapus penyimpanan instans, ubah instans DB SQL Server Anda untuk menggunakan jenis instans yang tidak mendukung penyimpanan instans, seperti db.m5, db.r5, atau db.x1e.

**catatan**  
Ketika Anda menghapus penyimpanan instans, file-file sementara dipindahkan ke direktori `D:\rdsdbdata\DATA` dan dikurangi ukurannya ke 8 MB.

# Menggunakan acara diperpanjang dengan Amazon RDS untuk Microsoft SQL Server
<a name="SQLServer.ExtendedEvents"></a>

Anda dapat menggunakan peristiwa yang diperpanjang di Microsoft SQL Server untuk menangkap informasi debugging dan pemecahan masalah untuk Amazon RDS untuk Server. SQL Peristiwa yang diperluas menggantikan SQL Trace dan Server Profiler, yang telah tidak digunakan lagi oleh Microsoft. Peristiwa diperpanjang mirip dengan jejak profiler tetapi dengan kontrol yang lebih rinci pada peristiwa yang dilacak. Acara yang diperpanjang didukung untuk SQL Server versi 2016 dan yang lebih baru di AmazonRDS. Untuk informasi selengkapnya, lihat [Extended events overview](https://docs.microsoft.com/en-us/sql/relational-databases/extended-events/extended-events) di dokumentasi Microsoft.

Peristiwa yang diperpanjang diaktifkan secara otomatis untuk pengguna dengan hak istimewa pengguna utama di Amazon RDS untuk SQL Server.

**Topics**
+ [Batasan dan rekomendasi](#SQLServer.ExtendedEvents.Limits)
+ [Mengkonfigurasi event yang diperpanjang RDS untuk Server SQL](#SQLServer.ExtendedEvents.Config)
+ [Pertimbangan untuk deployment multi-AZ](#SQLServer.ExtendedEvents.MAZ)
+ [Melakukan kueri file peristiwa diperpanjang](#SQLServer.ExtendedEvents.Querying)

## Batasan dan rekomendasi
<a name="SQLServer.ExtendedEvents.Limits"></a>

Saat menggunakan event yang diperpanjang di RDS for SQL Server, batasan berikut berlaku:
+ Peristiwa diperpanjang didukung hanya untuk Edisi Perusahaan dan Standar.
+ Anda tidak dapat mengubah sesi peristiwa diperpanjang default.
+ Pastikan untuk mengatur mode partisi memori sesi ke `NONE`.
+ Mode retensi peristiwa sesi dapat berupa `ALLOW_SINGLE_EVENT_LOSS` atau `ALLOW_MULTIPLE_EVENT_LOSS`.
+ Penelusuran Acara untuk target Windows (ETW) tidak didukung.
+ Pastikan bahwa target file berada di direktori `D:\rdsdbdata\log`.
+ Untuk target pencocokan pasangan, atur properti `respond_to_memory_pressure` ke `1`.
+ Memori target ring buffer tidak boleh lebih besar dari 4 MB.
+ Tindakan berikut tidak didukung:
  + `debug_break`
  + `create_dump_all_threads`
  + `create_dump_single_threads`
+ Peristiwa `rpc_completed` didukung pada versi berikut dan yang lebih baru: 15.0.4083.2, 14.0.3370.1, 13.0.5865.1, 12.0.6433.1, 11.0.7507.2.

## Mengkonfigurasi event yang diperpanjang RDS untuk Server SQL
<a name="SQLServer.ExtendedEvents.Config"></a>

On RDS for SQL Server, Anda dapat mengonfigurasi nilai parameter tertentu dari sesi acara yang diperpanjang. Tabel berikut menjelaskan parameter yang dapat dikonfigurasi ini.


| Nama parameter | Deskripsi | RDSnilai default | Nilai minimum | Nilai maksimum | 
| --- | --- | --- | --- | --- | 
| xe\$1session\$1max\$1memory | Tentukan jumlah maksimum memori untuk dialokasikan untuk sesi untuk buffering peristiwa. Nilai ini sesuai dengan pengaturan max\$1memory sesi peristiwa. | 4 MB | 4 MB | 8 MB | 
| xe\$1session\$1max\$1event\$1size | Menentukan ukuran memori maksimum yang diperbolehkan untuk peristiwa besar. Nilai ini sesuai dengan pengaturan max\$1event\$1size sesi peristiwa. | 4 MB | 4 MB | 8 MB | 
| xe\$1session\$1max\$1dispatch\$1latency | Tentukan jumlah waktu peristiwa di-buffer dalam memori sebelum dikirim ke target sesi peristiwa diperpanjang. Nilai ini sesuai dengan pengaturan max\$1dispatch\$1latency sesi peristiwa. | 30 detik | 1 detik | 30 detik | 
| xe\$1file\$1target\$1size | Tentukan ukuran maksimum target file. Nilai ini sesuai dengan pengaturan max\$1file\$1size target file. | 100 MB | 10 MB | 1 GB | 
| xe\$1file\$1retention | Menentukan waktu retensi dalam hari untuk file yang dihasilkan oleh target file sesi peristiwa. | 7 hari | 0 hari | 7 hari | 

**catatan**  
Pengaturan `xe_file_retention` ke nol menyebabkan file.xel dihapus secara otomatis setelah kunci pada file-file ini dirilis oleh SQL Server. Kunci dilepaskan setiap kali file .xel mencapai batas ukuran yang ditetapkan dalam `xe_file_target_size`.

Anda dapat menggunakan prosedur tersimpan `rdsadmin.dbo.rds_show_configuration` untuk menunjukkan nilai-nilai parameter saat ini. Misalnya, gunakan SQL pernyataan berikut untuk melihat pengaturan saat ini`xe_session_max_memory`.

```
exec rdsadmin.dbo.rds_show_configuration 'xe_session_max_memory'
```

Anda dapat menggunakan prosedur `rdsadmin.dbo.rds_set_configuration` yang disimpan untuk memodifikasinya. Misalnya, gunakan SQL pernyataan berikut untuk mengatur `xe_session_max_memory` ke 4 MB.

```
exec rdsadmin.dbo.rds_set_configuration 'xe_session_max_memory', 4
```

## Pertimbangan untuk deployment multi-AZ
<a name="SQLServer.ExtendedEvents.MAZ"></a>

Ketika Anda membuat sesi peristiwa diperpanjang pada instans DB primer, sesi tersebut tidak menyebar ke replika siaga. Anda dapat melakukan failover dan membuat sesi peristiwa diperpanjang pada instans DB primer yang baru. Atau Anda dapat menghapus dan kemudian menambahkan kembali konfigurasi multi-AZ untuk menyebarkan sesi peristiwa diperpanjang ke replika siaga. RDSmenghentikan semua sesi acara perpanjangan nondefault pada replika siaga, sehingga sesi ini tidak menggunakan sumber daya saat siaga. Karena ini, setelah replika siaga menjadi instans DB primer, pastikan untuk secara manual memulai sesi peristiwa diperpanjang pada instans primer baru.

**catatan**  
Pendekatan ini berlaku untuk Always On Availability Group dan Database Mirroring.

Anda juga dapat menggunakan pekerjaan Agen SQL Server untuk melacak replika siaga dan memulai sesi jika siaga menjadi yang utama. Misalnya, gunakan kueri berikut dalam langkah pekerjaan Agen SQL Server Anda untuk memulai ulang sesi acara pada instans DB utama.

```
BEGIN
    IF (DATABASEPROPERTYEX('rdsadmin','Updateability')='READ_WRITE'
    AND DATABASEPROPERTYEX('rdsadmin','status')='ONLINE'
    AND (DATABASEPROPERTYEX('rdsadmin','Collation') IS NOT NULL OR DATABASEPROPERTYEX('rdsadmin','IsAutoClose')=1)
    )
    BEGIN
        IF NOT EXISTS (SELECT 1 FROM sys.dm_xe_sessions WHERE name='xe1')
            ALTER EVENT SESSION xe1 ON SERVER STATE=START
        IF NOT EXISTS (SELECT 1 FROM sys.dm_xe_sessions WHERE name='xe2')
            ALTER EVENT SESSION xe2 ON SERVER STATE=START
    END
END
```

Kueri ini memulai ulang sesi peristiwa `xe1` dan `xe2` pada instans DB primer jika sesi ini berada dalam keadaan berhenti. Anda juga dapat menambahkan jadwal dengan interval yang nyaman untuk kueri ini.

## Melakukan kueri file peristiwa diperpanjang
<a name="SQLServer.ExtendedEvents.Querying"></a>

Anda dapat menggunakan SQL Server Management Studio atau `sys.fn_xe_file_target_read_file` fungsi untuk melihat data dari peristiwa yang diperluas yang menggunakan target file. Untuk informasi selengkapnya tentang fungsi ini, lihat [sys.fn\$1xe\$1file\$1target\$1read\$1file (Transact-) dalam dokumentasi](https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-xe-file-target-read-file-transact-sql) Microsoft. SQL

Target file acara yang diperluas hanya dapat menulis file ke `D:\rdsdbdata\log` direktori RDS untuk SQL Server.

Sebagai contoh, gunakan SQL kueri berikut untuk mencantumkan konten semua file sesi acara diperpanjang yang namanya dimulai`xe`.

```
SELECT * FROM sys.fn_xe_file_target_read_file('d:\rdsdbdata\log\xe*', null,null,null);
```

# Akses ke cadangan log transaksi dengan RDS for SQL Server
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess"></a>

Dengan akses ke cadangan log transaksi untuk RDS for SQL Server, Anda dapat menampilkan daftar file cadangan log transaksi untuk basis data dan menyalinnya ke bucket Amazon S3 target. Dengan menyalin cadangan log transaksi di bucket Amazon S3, Anda dapat menggunakannya dalam kombinasi dengan cadangan basis data lengkap dan diferensial untuk melakukan pemulihan basis data titik waktu. Anda menggunakan prosedur tersimpan RDS untuk mengatur akses ke cadangan log transaksi, menampilkan daftar cadangan log transaksi yang tersedia, dan menyalinnya ke bucket Amazon S3 Anda.

Akses ke cadangan log transaksi memberikan kemampuan dan manfaat berikut:
+ Tampilkan daftar dan lihat metadata cadangan log transaksi yang tersedia untuk basis data pada instans DB RDS for SQL Server.
+ Salin cadangan log transaksi yang tersedia dari RDS for SQL Server ke bucket Amazon S3 target.
+ Lakukan point-in-time pemulihan database tanpa perlu mengembalikan seluruh instance DB. Untuk informasi selengkapnya tentang memulihkan instans DB ke suatu titik waktu, lihat [Memulihkan instans DB ke waktu yang ditentukan untuk Amazon RDS](USER_PIT.md).

## Ketersediaan dan dukungan
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Availability"></a>

Akses ke cadangan log transaksi didukung di semua AWS Wilayah. Akses ke cadangan log transaksi tersedia untuk semua edisi dan versi Microsoft SQL Server yang didukung di Amazon RDS. 

## Persyaratan
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements"></a>

Persyaratan berikut harus dipenuhi sebelum mengaktifkan akses ke cadangan log transaksi: 
+  Pencadangan otomatis harus diaktifkan pada instans DB dan retensi cadangan harus diatur ke nilai satu hari atau lebih. Untuk informasi selengkapnya tentang mengaktifkan pencadangan otomatis dan mengonfigurasi kebijakan retensi, lihat [Mengaktifkan pencadangan otomatis](USER_WorkingWithAutomatedBackups.Enabling.md). 
+ Bucket Amazon S3 harus ada di akun dan Wilayah yang sama dengan instans DB sumber. Sebelum mengaktifkan akses ke cadangan log transaksi, pilih bucket Amazon S3 yang sudah ada atau [buat bucket baru](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingaBucket.html) yang akan digunakan untuk file cadangan log transaksi Anda.
+ Kebijakan izin bucket Amazon S3 harus dikonfigurasi sebagai berikut untuk memungkinkan Amazon RDS menyalin file log transaksi ke dalamnya:

  1. Atur properti kepemilikan akun objek pada bucket ke **Pemilik Bucket Pilihan**.

  1. Tambahkan kebijakan berikut. Tidak akan ada kebijakan secara default, jadi gunakan Daftar Kontrol Akses (ACL) bucket untuk mengedit kebijakan bucket dan menambahkannya.

  

  Contoh berikut menggunakan ARN untuk menentukan sumber daya. Sebaiknya gunakan kunci konteks kondisi global `SourceArn` dan `SourceAccount` dalam relasi kepercayaan berbasis sumber daya untuk membatasi izin layanan ke sumber daya tertentu. Untuk informasi selengkapnya tentang bekerja dengan ARNs, lihat [nama sumber daya Amazon (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) dan[Nama Sumber Daya Amazon (ARNs) di Amazon RDS](USER_Tagging.ARN.md).

    
**Example kebijakan izin Amazon S3 untuk akses ke cadangan log transaksi**  

------
#### [ JSON ]

****  

  ```
      {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "Only allow writes to my bucket with bucket owner full control",
              "Effect": "Allow",
              "Principal": {
                  "Service": "backups.rds.amazonaws.com"
              },
              "Action": "s3:PutObject",
              "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/{customer_path}/*",
              "Condition": {
                  "StringEquals": {
                      "s3:x-amz-acl": "bucket-owner-full-control",
                      "aws:sourceAccount": "{customer_account}",
                      "aws:sourceArn": "{db_instance_arn}"
                  }
              }
          }
      ]
  }
  ```

------
+ Peran AWS Identity and Access Management (IAM) untuk mengakses bucket Amazon S3. Jika sudah memiliki peran IAM, Anda dapat menggunakannya. Anda dapat memilih untuk dibuatkan peran IAM baru ketika menambahkan opsi `SQLSERVER_BACKUP_RESTORE` dengan menggunakan Konsol Manajemen AWS. Alternatifnya, Anda dapat membuatnya secara manual. Untuk informasi selengkapnya tentang membuat dan mengonfigurasi peran IAM dengan `SQLSERVER_BACKUP_RESTORE`, lihat [Membuat peran IAM secara manual untuk pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM).
+ Opsi `SQLSERVER_BACKUP_RESTORE` harus ditambahkan ke grup opsi pada instans DB Anda. Untuk informasi selengkapnya tentang menambahkan opsi `SQLSERVER_BACKUP_RESTORE`, lihat [Dukungan untuk pencadangan dan pemulihan native di SQL Server](Appendix.SQLServer.Options.BackupRestore.md).
**catatan**  
Jika instans DB Anda mengaktifkan enkripsi penyimpanan, tindakan dan kunci AWS KMS (KMS) harus disediakan dalam peran IAM yang disediakan dalam grup opsi pencadangan dan pemulihan asli.

  Secara opsional, jika Anda bermaksud menggunakan prosedur tersimpan `rds_restore_log` untuk melakukan pemulihan basis data titik waktu, sebaiknya gunakan jalur Amazon S3 yang sama untuk grup opsi pencadangan dan pemulihan native dan akses ke cadangan log transaksi. Metode ini memastikan bahwa ketika Amazon RDS mengambil peran dari grup opsi untuk melakukan fungsi pemulihan log, layanan ini memiliki akses untuk mengambil cadangan log transaksi dari jalur Amazon S3 yang sama.
+ Jika instans DB dienkripsi, terlepas dari jenis enkripsi (kunci AWS terkelola atau kunci yang dikelola pelanggan), Anda harus memberikan kunci KMS yang dikelola pelanggan dalam peran IAM dan dalam prosedur yang disimpan. `rds_tlog_backup_copy_to_S3` 

## Batasan dan rekomendasi
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Limitations"></a>

Akses ke cadangan log transaksi memiliki batasan dan rekomendasi sebagai berikut:
+  Anda dapat menampilkan daftar dan menyalin hingga tujuh hari terakhir cadangan log transaksi untuk instans DB apa pun yang memiliki retensi cadangan yang dikonfigurasi antara satu hingga 35 hari. 
+  Bucket Amazon S3 yang digunakan untuk akses ke cadangan log transaksi harus ada di akun dan Wilayah yang sama dengan instans DB sumber. Penyalinan lintas akun dan lintas Wilayah tidak didukung. 
+  Hanya satu bucket Amazon S3 yang dapat dikonfigurasi sebagai target untuk menyalin cadangan log transaksi. Anda dapat memilih bucket Amazon S3 target baru dengan prosedur tersimpan `rds_tlog_copy_setup`. Untuk informasi selengkapnya tentang memilih bucket Amazon S3 baru, lihat [Mengatur akses ke cadangan log transaksi](USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling.md).
+  Anda tidak dapat menentukan kunci KMS saat menggunakan prosedur tersimpan `rds_tlog_backup_copy_to_S3` jika instans RDS Anda tidak diaktifkan untuk enkripsi penyimpanan. 
+  Penyalinan multi-akun tidak didukung. Peran IAM yang digunakan untuk menyalin hanya akan mengizinkan akses tulis ke bucket Amazon S3 dalam akun pemilik instans DB. 
+  Hanya dua tugas konkuren dari jenis apa pun dapat dijalankan pada instans DB RDS for SQL Server. 
+  Hanya satu tugas penyalinan yang dapat dijalankan untuk satu basis data pada waktu tertentu. Jika Anda ingin menyalin cadangan log transaksi untuk beberapa basis data pada instans DB, gunakan tugas penyalinan terpisah untuk setiap basis data. 
+  Jika Anda menyalin cadangan log transaksi yang sudah ada dengan nama yang sama di bucket Amazon S3, cadangan log transaksi yang ada akan ditimpa. 
+  Anda hanya dapat menjalankan prosedur tersimpan yang disediakan dengan akses ke cadangan log transaksi pada instans DB primer. Anda tidak dapat menjalankan prosedur tersimpan ini pada replika baca RDS for SQL Server atau pada instans sekunder dari klaster DB Multi-AZ. 
+  Jika DB RDS for SQL Server instans di-boot ulang saat prosedur tersimpan `rds_tlog_backup_copy_to_S3` sedang berjalan, tugas ini akan secara otomatis dimulai ulang dari awal ketika instans DB kembali online. Cadangan log transaksi apa pun yang telah disalin ke bucket Amazon S3 saat tugas berjalan sebelum boot ulang akan ditimpa. 
+ Basis data sistem Microsoft SQL Server dan basis data `RDSAdmin` tidak dapat dikonfigurasi untuk akses ke cadangan log transaksi.
+  Penyalinan ke bucket yang dienkripsi oleh SSE-KMS tidak didukung. 

# Mengatur akses ke cadangan log transaksi
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling"></a>

Untuk mengatur akses ke cadangan log transaksi, lengkapi daftar persyaratan di bagian [Persyaratan](USER.SQLServer.AddlFeat.TransactionLogAccess.md#USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements), lalu jalankan prosedur tersimpan `rds_tlog_copy_setup`. Prosedur ini akan mengaktifkan akses ke fitur cadangan log transaksi di tingkat instans DB. Anda tidak perlu menjalankannya untuk setiap basis data individual pada instans DB. 

**penting**  
Pengguna basis data harus diberi peran `db_owner` dalam SQL Server pada setiap basis data untuk mengonfigurasi dan menggunakan akses ke fitur cadangan log transaksi.

**Example penggunaan:**  

```
exec msdb.dbo.rds_tlog_copy_setup
@target_s3_arn='arn:aws:s3:::amzn-s3-demo-bucket/myfolder';
```

Parameter berikut diperlukan:
+ `@target_s3_arn` – ARN bucket Amazon S3 target untuk menyalin file cadangan log transaksi.

**Example mengatur bucket target Amazon S3:**  

```
exec msdb.dbo.rds_tlog_copy_setup @target_s3_arn='arn:aws:s3:::amzn-s3-demo-logging-bucket/mytestdb1';
```

Untuk memvalidasi konfigurasi, panggil prosedur tersimpan `rds_show_configuration`.

**Example memvalidasi konfigurasi:**  

```
exec rdsadmin.dbo.rds_show_configuration @name='target_s3_arn_for_tlog_copy';
```

Untuk mengubah akses ke cadangan log transaksi agar mengarah ke bucket Amazon S3 yang berbeda, Anda dapat melihat nilai bucket Amazon S3 saat ini dan menjalankan kembali prosedur tersimpan `rds_tlog_copy_setup` menggunakan nilai baru untuk `@target_s3_arn`.

**Example melihat bucket Amazon S3 yang ada yang dikonfigurasi untuk akses ke cadangan log transaksi**  

```
exec rdsadmin.dbo.rds_show_configuration @name='target_s3_arn_for_tlog_copy';
```

**Example memperbarui ke bucket Amazon S3 target baru**  

```
exec msdb.dbo.rds_tlog_copy_setup @target_s3_arn='arn:aws:s3:::amzn-s3-demo-logging-bucket1/mynewfolder';
```

# Menampilkan daftar cadangan log transaksi yang tersedia
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Listing"></a>

Dengan RDS for SQL Server, basis data yang dikonfigurasi untuk menggunakan model pemulihan penuh dan retensi cadangan instans DB yang diatur ke satu atau beberapa hari akan memiliki cadangan log transaksi yang diaktifkan secara otomatis. Dengan mengaktifkan akses ke cadangan log transaksi, cadangan log transaksi tersebut dari rentang waktu hingga tujuh hari akan tersedia untuk Anda salin ke bucket Amazon S3 Anda.

Setelah Anda mengaktifkan akses ke cadangan log transaksi, Anda dapat mulai menggunakannya untuk menampilkan daftar dan menyalin file cadangan log transaksi yang tersedia.

**Menampilkan daftar cadangan log transaksi**

Untuk menampilkan daftar semua cadangan log transaksi yang tersedia untuk basis data individual, panggil fungsi `rds_fn_list_tlog_backup_metadata`. Anda dapat menggunakan klausa `ORDER BY` atau `WHERE` saat memanggil fungsi.

**Example menampilkan daftar dan memfilter file cadangan log transaksi yang tersedia**  

```
SELECT * from msdb.dbo.rds_fn_list_tlog_backup_metadata('mydatabasename');
SELECT * from msdb.dbo.rds_fn_list_tlog_backup_metadata('mydatabasename') WHERE rds_backup_seq_id = 3507;
SELECT * from msdb.dbo.rds_fn_list_tlog_backup_metadata('mydatabasename') WHERE backup_file_time_utc > '2022-09-15 20:44:01' ORDER BY backup_file_time_utc DESC;
```

![\[Output dari rds_fn_list_tlog_backup_metadata\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_func.png)


Fungsi `rds_fn_list_tlog_backup_metadata` ini menampilkan output berikut:


****  

| Nama kolom | Jenis data | Deskripsi | 
| --- | --- | --- | 
| `db_name` | sysname | Nama basis data yang disediakan untuk menampilkan daftar cadangan log transaksinya. | 
| `db_id` | int | Pengidentifikasi basis data internal untuk parameter input `db_name`. | 
| `family_guid` | uniqueidentifier | ID unik basis data asli saat pembuatan. Nilai ini tetap sama ketika basis data dipulihkan, bahkan ke nama basis data yang berbeda. | 
| `rds_backup_seq_id` | int | ID yang digunakan RDS secara internal untuk mempertahankan nomor urutan untuk setiap file cadangan log transaksi. | 
| `backup_file_epoch` | bigint | Waktu epoch saat file cadangan transaksi dihasilkan. | 
| `backup_file_time_utc` | datetime | Nilai konversi waktu UTC untuk nilai `backup_file_epoch`. | 
| `starting_lsn` | numeric(25,0) | Nomor urutan log dari catatan log pertama atau tertua untuk file cadangan log transaksi. | 
| `ending_lsn` | numeric(25,0) | Nomor urutan log dari catatan log terakhir atau berikutnya untuk file cadangan log transaksi. | 
| `is_log_chain_broken` | bit | Nilai boolean yang menunjukkan apakah rantai log terputus antara file cadangan log transaksi saat ini dan file cadangan log transaksi sebelumnya. | 
| `file_size_bytes` | bigint | Ukuran cadangan transaksional diatur dalam byte. | 
| `Error` | varchar(4000) | Pesan kesalahan jika fungsi `rds_fn_list_tlog_backup_metadata` mengeluarkan pengecualian. NULL jika tidak ada pengecualian. | 

# Menyalin cadangan log transaksi
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Copying"></a>

Untuk menyalin serangkaian cadangan log transaksi yang tersedia untuk basis data individual ke bucket Amazon S3 Anda, panggil prosedur tersimpan `rds_tlog_backup_copy_to_S3`. Prosedur tersimpan `rds_tlog_backup_copy_to_S3` akan memulai tugas baru untuk menyalin cadangan log transaksi. 

**catatan**  
Prosedur tersimpan `rds_tlog_backup_copy_to_S3` akan menyalin cadangan log transaksi tanpa memvalidasi berdasarkan atribut `is_log_chain_broken`. Untuk alasan ini, Anda harus secara manual mengonfirmasi rantai log yang tidak terputus sebelum menjalankan prosedur tersimpan `rds_tlog_backup_copy_to_S3`. Untuk penjelasan selengkapnya, lihat [Memvalidasi rantai log cadangan log transaksi](#USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.LogChain).

**Example penggunaan prosedur tersimpan `rds_tlog_backup_copy_to_S3`**  

```
exec msdb.dbo.rds_tlog_backup_copy_to_S3
	@db_name='mydatabasename',
	[@kms_key_arn='arn:aws:kms:region:account-id:key/key-id'],	
	[@backup_file_start_time='2022-09-01 01:00:15'],
	[@backup_file_end_time='2022-09-01 21:30:45'],
	[@starting_lsn=149000000112100001],
	[@ending_lsn=149000000120400001],
	[@rds_backup_starting_seq_id=5],
	[@rds_backup_ending_seq_id=10];
```

Parameter input berikut tersedia:


****  

| Parameter | Deskripsi | 
| --- | --- | 
| `@db_name` | Nama basis data yang cadangan log transaksinya akan disalin | 
| `@kms_key_arn` |  Kunci KMS yang dikelola pelanggan. Jika Anda mengenkripsi instans DB Anda dengan kunci KMS AWS terkelola, Anda harus membuat kunci yang dikelola pelanggan. Jika Anda mengenkripsi instans DB Anda dengan kunci yang dikelola pelanggan, Anda dapat menggunakan ARN kunci KMS yang sama. | 
| `@backup_file_start_time` | Stempel waktu UTC seperti yang disediakan dari kolom `[backup_file_time_utc]` pada fungsi `rds_fn_list_tlog_backup_metadata`. | 
| `@backup_file_end_time` | Stempel waktu UTC seperti yang disediakan dari kolom `[backup_file_time_utc]` pada fungsi `rds_fn_list_tlog_backup_metadata`. | 
| `@starting_lsn` | Nomor urutan log (LSN) seperti yang disediakan dari kolom `[starting_lsn]` pada fungsi `rds_fn_list_tlog_backup_metadata`. | 
| `@ending_lsn` | Nomor urutan log (LSN) seperti yang disediakan dari kolom `[ending_lsn]` pada fungsi `rds_fn_list_tlog_backup_metadata`. | 
| `@rds_backup_starting_seq_id` | Urutan ID seperti yang disediakan dari kolom `[rds_backup_seq_id]` pada fungsi `rds_fn_list_tlog_backup_metadata`. | 
| `@rds_backup_ending_seq_id` | Urutan ID seperti yang disediakan dari kolom `[rds_backup_seq_id]` pada fungsi `rds_fn_list_tlog_backup_metadata`. | 

Anda dapat menentukan satu set parameter waktu, LSN, atau ID urutan. Hanya satu set parameter yang diperlukan.

Anda juga dapat menentukan hanya satu parameter di salah satu set. Misalnya, dengan memberikan nilai hanya untuk parameter `backup_file_end_time`, semua file cadangan log transaksi yang tersedia sebelum waktu tersebut dalam batas tujuh hari akan disalin ke bucket Amazon S3 Anda. 

Berikut ini adalah kombinasi parameter input yang valid untuk prosedur tersimpan `rds_tlog_backup_copy_to_S3`.


****  

| Parameter yang disediakan | Hasil yang diharapkan | 
| --- | --- | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3  <br />	@db_name = 'testdb1',<br />            @backup_file_start_time='2022-08-23 00:00:00',<br />            @backup_file_end_time='2022-08-30 00:00:00';</pre>  | Menyalin cadangan log transaksi dari tujuh hari terakhir serta dalam rentang `backup_file_start_time` dan `backup_file_end_time` yang disediakan. Dalam contoh ini, prosedur tersimpan akan menyalin cadangan log transaksi yang dihasilkan antara '2022-08-23 00:00:00' dan '2022-08-30 00:00:00'.  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />           @db_name = 'testdb1',<br />           @backup_file_start_time='2022-08-23 00:00:00';</pre>  | Menyalin cadangan log transaksi dari tujuh hari terakhir dan mulai dari `backup_file_start_time` yang disediakan. Dalam contoh ini, prosedur tersimpan akan menyalin cadangan log transaksi dari '2022-08-23 00:00:00' hingga cadangan log transaksi terbaru.  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />          @db_name = 'testdb1',<br />          @backup_file_end_time='2022-08-30 00:00:00';</pre>  | Menyalin cadangan log transaksi dari tujuh hari terakhir hingga `backup_file_end_time` yang disediakan. Dalam contoh ini, prosedur tersimpan akan menyalin cadangan log transaksi dari '2022-08-23 00:00:00' hingga '2022-08-30 00:00:00'.  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />         @db_name='testdb1',<br />         @starting_lsn =1490000000040007,<br />         @ending_lsn =  1490000000050009;</pre>  | Menyalin cadangan log transaksi yang tersedia dari tujuh hari terakhir dan berada dalam rentang `starting_lsn` dan `ending_lsn` yang disediakan. Dalam contoh ini, prosedur tersimpan akan menyalin cadangan log transaksi dari tujuh hari terakhir dengan rentang LSN antara 1490000000040007 dan 1490000000050009.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />        @db_name='testdb1',<br />        @starting_lsn =1490000000040007;</pre>  |  Menyalin cadangan log transaksi yang tersedia dari tujuh hari terakhir, mulai dari `starting_lsn` yang disediakan. Dalam contoh ini, prosedur tersimpan akan menyalin cadangan log transaksi dari LSN 1490000000040007 hingga cadangan log transaksi terbaru.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />        @db_name='testdb1',<br />        @ending_lsn  =1490000000050009;</pre>  |  Menyalin cadangan log transaksi yang tersedia dari tujuh hari terakhir, hingga `ending_lsn` yang disediakan. Dalam contoh ini, prosedur tersimpan akan menyalin cadangan log transaksi mulai dari tujuh hari terakhir hingga lsn 1490000000050009.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />       @db_name='testdb1',<br />       @rds_backup_starting_seq_id= 2000,<br />       @rds_backup_ending_seq_id= 5000;</pre>  |  Menyalin cadangan log transaksi yang tersedia dari tujuh hari terakhir, dan berada dalam rentang `rds_backup_starting_seq_id` dan `rds_backup_ending_seq_id` yang disediakan. Dalam contoh ini, prosedur tersimpan akan menyalin cadangan log transaksi mulai dari tujuh hari terakhir dan dalam rentang id urutan cadangan rds yang disediakan, mulai dari seq\$1id 2000 hingga seq\$1id 5000.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />       @db_name='testdb1',<br />       @rds_backup_starting_seq_id= 2000;</pre>  |  Menyalin cadangan log transaksi yang tersedia dari tujuh hari terakhir, mulai dari `rds_backup_starting_seq_id` yang disediakan. Dalam contoh ini, prosedur tersimpan akan menyalin cadangan log transaksi mulai dari seq\$1id 2000, hingga cadangan log transaksi terbaru.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />      @db_name='testdb1',<br />      @rds_backup_ending_seq_id= 5000;</pre>  |  Menyalin cadangan log transaksi yang tersedia dari tujuh hari terakhir, hingga `rds_backup_ending_seq_id` yang disediakan. Dalam contoh ini, prosedur tersimpan akan menyalin cadangan log transaksi mulai dari tujuh hari terakhir, hingga seq\$1id 5000.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />      @db_name='testdb1',<br />      @rds_backup_starting_seq_id= 2000;<br />      @rds_backup_ending_seq_id= 2000;</pre>  |  Menyalin cadangan log transaksi tunggal dengan `rds_backup_starting_seq_id` yang disediakan, jika tersedia dalam tujuh hari terakhir. Dalam contoh ini, prosedur tersimpan akan menyalin cadangan log transaksi tunggal yang memiliki seq\$1id 2000, jika ada dalam tujuh hari terakhir.   | 

## Memvalidasi rantai log cadangan log transaksi
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.LogChain"></a>

 Basis data yang dikonfigurasi untuk akses ke cadangan log transaksi harus memiliki retensi cadangan otomatis yang aktif. Retensi cadangan otomatis mengatur basis data pada instans DB ke model pemulihan `FULL`. Untuk mendukung pemulihan titik waktu untuk basis data, hindari mengubah model pemulihan basis data, yang dapat mengakibatkan rantai log terputus. Kami menyarankan agar basis data tetap diatur ke model pemulihan `FULL`.

Untuk memvalidasi rantai log secara manual sebelum menyalin cadangan log transaksi, panggil fungsi `rds_fn_list_tlog_backup_metadata` dan tinjau nilai di kolom `is_log_chain_broken`. Nilai “1" menunjukkan rantai log terputus antara cadangan log saat ini dan cadangan log sebelumnya.

Contoh berikut menunjukkan rantai log yang terputus dalam output dari prosedur tersimpan `rds_fn_list_tlog_backup_metadata`. 

![\[Output dari rds_fn_list_tlog_backup_metadata yang menunjukkan rantai log yang terputus.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_logchain_error.png)


Dalam rantai log normal, nilai nomor urutan log (LSN) untuk first\$1lsn untuk rds\$1sequence\$1id yang diberikan harus cocok dengan nilai last\$1lsn di rds\$1sequence\$1id sebelumnya. Pada gambar, rds\$1sequence\$1id 45 memiliki nilai first\$1lsn 90987, yang tidak cocok dengan nilai last\$1lsn 90985 untuk rds\$1sequence\$1id 44 sebelumnya.

Untuk informasi selengkapnya tentang arsitektur log transaksi SQL Server dan nomor urutan log, lihat [Transaction Log Logical Architecture](https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver15#Logical_Arch) dalam dokumentasi Microsoft SQL Server.

# Struktur folder dan file bucket Amazon S3
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.S3namingConvention"></a>

Cadangan log transaksi memiliki struktur standar dan konvensi penamaan berikut dalam bucket Amazon S3:
+ Folder baru dibuat dalam jalur `target_s3_arn` untuk setiap basis data dengan struktur penamaan `{db_id}.{family_guid}`.
+ Di dalam folder, cadangan log transaksi memiliki struktur nama file `{db_id}.{family_guid}.{rds_backup_seq_id}.{backup_file_epoch}`.
+ Anda dapat melihat detail `family_guid,db_id,rds_backup_seq_id and backup_file_epoch` dengan fungsi `rds_fn_list_tlog_backup_metadata`.

Contoh berikut menunjukkan folder dan struktur file dari satu set cadangan log transaksi dalam bucket Amazon S3.

![\[Struktur bucket Amazon S3 dengan akses ke log transaksi\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_s3.png)


# Melacak status tugas
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus"></a>

 Untuk melacak status tugas penyalinan Anda, panggil prosedur tersimpan `rds_task_status`. Jika Anda tidak memberikan parameter apa pun, prosedur tersimpan akan menampilkan status semua tugas. 

**Example penggunaan:**  

```
exec msdb.dbo.rds_task_status
  @db_name='database_name',
  @task_id=ID_number;
```

Parameter berikut ini bersifat opsional:
+ `@db_name` – Nama basis data yang status tugasnya akan ditampilkan.
+ `@task_id` – ID tugas yang status tugasnya akan ditampilkan.

**Example menampilkan daftar status untuk ID tugas tertentu:**  

```
exec msdb.dbo.rds_task_status @task_id=5;
```

**Example menampilkan daftar status untuk basis data dan tugas tertentu:**  

```
exec msdb.dbo.rds_task_status@db_name='my_database',@task_id=5;
```

**Example menampilkan daftar semua tugas dan statusnya untuk basis data tertentu:**  

```
exec msdb.dbo.rds_task_status @db_name='my_database';
```

**Example menampilkan daftar semua tugas dan statusnya di instans DB saat ini:**  

```
exec msdb.dbo.rds_task_status;
```

# Membatalkan tugas
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.CancelTask"></a>

Untuk membatalkan tugas yang berjalan, panggil prosedur tersimpan `rds_cancel_task`.

**Example penggunaan:**  

```
exec msdb.dbo.rds_cancel_task @task_id=ID_number;
```

Parameter berikut diperlukan:
+ `@task_id` – ID tugas yang akan dibatalkan. Anda dapat melihat ID tugas dengan memanggil prosedur tersimpan `rds_task_status`.

Untuk informasi selengkapnya tentang melihat dan membatalkan tugas yang berjalan, lihat [Mengimpor dan mengekspor basis data SQL Server menggunakan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.md).

# Pemecahan masalah akses ke cadangan log transaksi
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Troubleshooting"></a>

Berikut ini adalah masalah yang mungkin Anda temui saat menggunakan prosedur tersimpan untuk akses ke cadangan log transaksi.


****  

| Prosedur Tersimpan | Pesan Kesalahan | Masalah | Saran pemecahan masalah | 
| --- | --- | --- | --- | 
| rds\$1tlog\$1copy\$1setup | Pencadangan dinonaktifkan pada instans DB ini. Aktifkan pencadangan instans DB dengan retensi setidaknya “1" dan coba lagi. | Pencadangan otomatis tidak diaktifkan untuk instans DB. |  Retensi cadangan instans DB harus diaktifkan dengan retensi setidaknya satu hari. Untuk informasi selengkapnya tentang mengaktifkan cadangan otomatis dan mengonfigurasi retensi cadangan, lihat [Periode retensi cadangan](USER_WorkingWithAutomatedBackups.BackupRetention.md).  | 
| rds\$1tlog\$1copy\$1setup | Kesalahan saat menjalankan prosedur tersimpan rds\$1tlog\$1copy\$1setup. Sambungkan kembali ke RDS titik akhir dan coba lagi. | Terjadi kesalahan internal. | Sambungkan kembali ke RDS titik akhir dan jalankan prosedur yang `rds_tlog_copy_setup` disimpan lagi. | 
| rds\$1tlog\$1copy\$1setup | Menjalankan prosedur tersimpan rds\$1tlog\$1backup\$1copy\$1setup di dalam transaksi tidak didukung. Verifikasi bahwa sesi tidak memiliki transaksi terbuka dan coba lagi. | Prosedur tersimpan dicoba dalam transaksi menggunakan `BEGIN` dan `END`. | Hindari menggunakan `BEGIN` dan `END` saat menjalankan prosedur tersimpan `rds_tlog_copy_setup`. | 
| rds\$1tlog\$1copy\$1setup | Nama bucket S3 untuk parameter input `@target_s3_arn` harus berisi setidaknya satu karakter selain spasi.  | Nilai yang salah diberikan untuk parameter input `@target_s3_arn`. | Pastikan parameter input `@target_s3_arn` menentukan bucket Amazon ARN S3 lengkap. | 
| rds\$1tlog\$1copy\$1setup | Opsi `SQLSERVER_BACKUP_RESTORE` tidak diaktifkan atau sedang dalam proses diaktifkan. Aktifkan opsi atau coba lagi nanti.  | Opsi `SQLSERVER_BACKUP_RESTORE` tidak diaktifkan pada instans DB atau baru saja diaktifkan dan menunggu aktivasi internal. | Aktifkan opsi `SQLSERVER_BACKUP_RESTORE` seperti yang ditentukan di bagian Persyaratan. Tunggu beberapa menit dan jalankan prosedur tersimpan `rds_tlog_copy_setup` lagi. | 
| rds\$1tlog\$1copy\$1setup | ARN S3 target untuk parameter input `@target_s3_arn` tidak boleh kosong atau null.  | Nilai `NULL` diberikan untuk parameter input `@target_s3_arn`, atau nilainya tidak diberikan. | Pastikan parameter input `@target_s3_arn` menentukan bucket Amazon ARN S3 lengkap. | 
| rds\$1tlog\$1copy\$1setup | ARN S3 target untuk parameter input `@target_s3_arn` harus diawali dengan arn:aws.  | Parameter input `@target_s3_arn` diberikan tanpa `arn:aws` di bagian depan. | Pastikan parameter input `@target_s3_arn` menentukan bucket Amazon ARN S3 lengkap. | 
| rds\$1tlog\$1copy\$1setup | Target S3 ARN sudah diatur ke nilai yang disediakan. | Prosedur `rds_tlog_copy_setup` tersimpan sebelumnya berjalan dan dikonfigurasi dengan bucket Amazon S3. ARN | Untuk mengubah nilai bucket Amazon S3 untuk akses ke cadangan log transaksi, berikan `target S3 ARN` yang berbeda. | 
| rds\$1tlog\$1copy\$1setup | Tidak dapat menghasilkan kredensial untuk mengaktifkan Akses ke Cadangan Log Transaksi. Konfirmasikan jalur S3 ARN yang disediakan`rds_tlog_copy_setup`, dan coba lagi nanti. | Ada kesalahan yang tidak ditentukan saat menghasilkan kredensial untuk mengaktifkan akses ke cadangan log transaksi. | Tinjau konfigurasi pengaturan Anda dan coba lagi.  | 
| rds\$1tlog\$1copy\$1setup | Anda tidak dapat menjalankan prosedur tersimpan rds\$1tlog\$1copy\$1setup saat ada tugas yang tertunda. Tunggu tugas tertunda selesai dan coba lagi.  | Hanya dua tugas yang dapat dijalankan kapan saja. Ada tugas tertunda yang menunggu penyelesaian. | Lihat tugas yang tertunda dan tunggu tugas tersebut selesai. Untuk informasi selengkapnya tentang pemantauan status tugas, lihat [Melacak status tugas](USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Tugas penyalinan file cadangan T-log telah dikeluarkan untuk basis data: %s dengan Id tugas: %d, coba lagi nanti.  | Hanya satu tugas penyalinan yang dapat dijalankan kapan saja untuk basis data tertentu. Ada tugas penyalinan tertunda yang menunggu penyelesaian. | Lihat tugas yang tertunda dan tunggu tugas tersebut selesai. Untuk informasi selengkapnya tentang pemantauan status tugas, lihat [Melacak status tugas](USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Setidaknya satu dari tiga set parameter ini harus disediakan. SET-1 :( @backup\$1file\$1start\$1time, @backup\$1file\$1end\$1time) \$1 SET -2 :( @starting\$1lsn, @ending\$1lsn) \$1 SET -3 :( @rds\$1backup\$1starting\$1seq\$1id, @rds\$1backup\$1ending\$1seq\$1id) | Tidak ada satu pun dari tiga set parameter yang disediakan, atau set parameter yang disediakan tidak memiliki parameter yang diperlukan. | Anda dapat menentukan parameter waktu, lsn, atau ID urutan. Satu set dari tiga set parameter ini diperlukan. Untuk informasi selengkapnya tentang parameter yang diperlukan, lihat [Menyalin cadangan log transaksi](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Pencadangan dinonaktifkan pada instans Anda. Aktifkan pencadangan dan coba lagi dalam beberapa waktu.  | Pencadangan otomatis tidak diaktifkan untuk instans DB. |  Untuk informasi selengkapnya tentang mengaktifkan cadangan otomatis dan mengonfigurasi retensi cadangan, lihat [Periode retensi cadangan](USER_WorkingWithAutomatedBackups.BackupRetention.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Tidak dapat menemukan basis data yang diberikan %s.  | Nilai yang diberikan untuk parameter input `@db_name` tidak cocok dengan nama basis data pada instans DB. | Gunakan nama basis data yang benar. Untuk menampilkan daftar semua basis data berdasarkan nama, jalankan `SELECT * from sys.databases` | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Tidak dapat menjalankan prosedur tersimpan RDS\$1TLOG\$1BACKUP\$1COPY\$1TO\$1S3 untuk database sistem Server atau database rdsadmin. SQL | Nilai yang disediakan untuk parameter input `@db_name` cocok dengan nama database sistem SQL Server atau RDSAdmin database. | Basis data berikut tidak diizinkan untuk digunakan dengan akses ke cadangan log transaksi: `master, model, msdb, tempdb, RDSAdmin.`  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Nama basis data untuk parameter input @db\$1name tidak boleh kosong atau null.  | Nilai yang diberikan untuk parameter input `@db_name` kosong atau `NULL`. | Gunakan nama basis data yang benar. Untuk menampilkan daftar semua basis data berdasarkan nama, jalankan `SELECT * from sys.databases` | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Periode retensi cadangan instans DB harus diatur ke setidaknya 1 untuk menjalankan prosedur tersimpan rds\$1tlog\$1backup\$1copy\$1setup.  | Pencadangan otomatis tidak diaktifkan untuk instans DB. | Untuk informasi selengkapnya tentang mengaktifkan cadangan otomatis dan mengonfigurasi retensi cadangan, lihat [Periode retensi cadangan](USER_WorkingWithAutomatedBackups.BackupRetention.md). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Kesalahan saat menjalankan prosedur tersimpan rds\$1tlog\$1backup\$1copy\$1to\$1S3. Sambungkan kembali ke RDS titik akhir dan coba lagi. | Terjadi kesalahan internal. | Sambungkan kembali ke RDS titik akhir dan jalankan prosedur yang `rds_tlog_backup_copy_to_S3` disimpan lagi. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Hanya satu dari tiga set parameter ini yang dapat disediakan. SET-1 :( @backup\$1file\$1start\$1time, @backup\$1file\$1end\$1time) \$1 SET -2 :( @starting\$1lsn, @ending\$1lsn) \$1 SET -3 :( @rds\$1backup\$1starting\$1seq\$1id, @rds\$1backup\$1ending\$1seq\$1id) | Beberapa set parameter disediakan. | Anda dapat menentukan parameter waktu, lsn, atau ID urutan. Satu set dari tiga set parameter ini diperlukan. Untuk informasi selengkapnya tentang parameter yang diperlukan, lihat [Menyalin cadangan log transaksi](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Menjalankan prosedur tersimpan rds\$1tlog\$1backup\$1copy\$1to\$1S3 di dalam transaksi tidak didukung. Verifikasi bahwa sesi tidak memiliki transaksi terbuka dan coba lagi. | Prosedur tersimpan dicoba dalam transaksi menggunakan `BEGIN` dan `END`. | Hindari menggunakan `BEGIN` dan `END` saat menjalankan prosedur tersimpan `rds_tlog_backup_copy_to_S3`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Parameter yang disediakan berada di luar periode retensi log cadangan transaksi. Untuk menampilkan daftar file cadangan log transaksi yang tersedia, jalankan fungsi rds\$1fn\$1list\$1tlog\$1backup\$1metadata.  | Tidak ada cadangan log transaksional yang tersedia untuk parameter input yang disediakan yang sesuai dalam periode retensi salinan. | Coba lagi dengan set parameter yang valid. Untuk informasi selengkapnya tentang parameter yang diperlukan, lihat [Menyalin cadangan log transaksi](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Ada kesalahan izin dalam memproses permintaan. Pastikan bucket berada di Akun dan Wilayah yang sama dengan Instans DB, dan konfirmasikan izin kebijakan bucket S3 berdasarkan templat dalam dokumentasi publik.  | Ada masalah yang terdeteksi pada bucket S3 yang disediakan atau izin kebijakannya. | Konfirmasikan pengaturan Anda untuk akses ke cadangan log transaksi sudah benar. Untuk informasi selengkapnya tentang persyaratan penyiapan bucket S3 Anda, lihat [Persyaratan](USER.SQLServer.AddlFeat.TransactionLogAccess.md#USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Menjalankan prosedur `rds_tlog_backup_copy_to_S3` tersimpan pada instance replika RDS baca tidak diizinkan. | Prosedur tersimpan dicoba pada contoh replika RDS baca. | Connect ke instans DB RDS utama untuk menjalankan prosedur `rds_tlog_backup_copy_to_S3` tersimpan. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Parameter LSN untuk input `@starting_lsn` harus kurang dari`@ending_lsn`. | Nilai yang diberikan untuk parameter input `@starting_lsn` lebih besar dari nilai yang diberikan untuk parameter input `@ending_lsn`. | Pastikan nilai yang diberikan untuk parameter input `@starting_lsn` kurang dari nilai yang diberikan untuk parameter input `@ending_lsn`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Prosedur tersimpan `rds_tlog_backup_copy_to_S3` hanya dapat dilakukan oleh anggota peran `db_owner` dalam basis data sumber.  | Peran `db_owner` belum diberikan untuk akun yang mencoba menjalankan prosedur tersimpan `rds_tlog_backup_copy_to_S3` pada `db_name` yang disediakan. | Pastikan akun yang menjalankan prosedur tersimpan diizinkan dengan peran `db_owner` untuk `db_name` yang disediakan. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | ID urutan untuk parameter input `@rds_backup_starting_seq_id` harus kurang dari atau sama dengan`@rds_backup_ending_seq_id`.  | Nilai yang diberikan untuk parameter input `@rds_backup_starting_seq_id` lebih besar dari nilai yang diberikan untuk parameter input `@rds_backup_ending_seq_id`. | Pastikan nilai yang diberikan untuk parameter input `@rds_backup_starting_seq_id` kurang dari nilai yang diberikan untuk parameter input `@rds_backup_ending_seq_id`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | RESTOREOpsi SQLSERVER BACKUP \$1 \$1 tidak diaktifkan atau sedang dalam proses diaktifkan. Aktifkan opsi atau coba lagi nanti.  | Opsi `SQLSERVER_BACKUP_RESTORE` tidak diaktifkan pada instans DB atau baru saja diaktifkan dan menunggu aktivasi internal. | Aktifkan opsi `SQLSERVER_BACKUP_RESTORE` seperti yang ditentukan di bagian Persyaratan. Tunggu beberapa menit dan jalankan prosedur tersimpan `rds_tlog_backup_copy_to_S3` lagi. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Waktu mulai untuk parameter input `@backup_file_start_time` harus kurang dari `@backup_file_end_time`. | Nilai yang diberikan untuk parameter input `@backup_file_start_time` lebih besar dari nilai yang diberikan untuk parameter input `@backup_file_end_time`. | Pastikan nilai yang diberikan untuk parameter input `@backup_file_start_time` kurang dari nilai yang diberikan untuk parameter input `@backup_file_end_time`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Kami tidak dapat memproses permintaan karena tidak ada akses. Periksa pengaturan dan izin Anda untuk fitur tersebut.  | Mungkin ada masalah dengan izin bucket Amazon S3, atau bucket Amazon S3 yang disediakan ada di akun atau Wilayah lain. | Pastikan izin kebijakan bucket Amazon S3 diizinkan untuk mengizinkan akses. RDS Pastikan bucket Amazon S3 berada di akun dan Wilayah yang sama dengan instans DB. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Anda tidak dapat memberikan parameter KMS Key ARN as input ke prosedur tersimpan untuk instance yang tidak dienkripsi penyimpanan. | Ketika enkripsi penyimpanan tidak diaktifkan pada instans DB, parameter input `@kms_key_arn` tidak boleh disediakan. | Jangan berikan parameter input untuk `@kms_key_arn`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Anda harus memberikan parameter KMS Key ARN sebagai input ke prosedur tersimpan untuk instance terenkripsi penyimpanan. | Ketika enkripsi penyimpanan diaktifkan pada instans DB, parameter input `@kms_key_arn` harus disediakan. | Berikan parameter input `@kms_key_arn` dengan nilai yang cocok dengan bucket Amazon S3 yang akan digunakan untuk pencadangan log transaksi. ARN | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Anda harus menjalankan prosedur tersimpan `rds_tlog_copy_setup` dan mengatur `@target_s3_arn`, sebelum menjalankan prosedur tersimpan `rds_tlog_backup_copy_to_S3`.  | Akses ke prosedur penyiapan cadangan log transaksi tidak selesai sebelum mencoba menjalankan prosedur tersimpan `rds_tlog_backup_copy_to_S3`. | Jalankan prosedur tersimpan `rds_tlog_copy_setup` sebelum menjalankan prosedur tersimpan `rds_tlog_backup_copy_to_S3`. Untuk informasi selengkapnya tentang menjalankan prosedur penyiapan akses ke cadangan log transaksi, lihat [Mengatur akses ke cadangan log transaksi](USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling.md).  | 

# Opsi untuk mesin basis data Microsoft SQL Server
<a name="Appendix.SQLServer.Options"></a>

Di bagian ini, Anda dapat menemukan deskripsi untuk opsi yang tersedia untuk instans Amazon RDS yang menjalankan mesin DB Microsoft SQL Server. Untuk mengaktifkan opsi ini, Anda dapat menambahkannya ke grup opsi, lalu mengaitkan grup opsi dengan instans DB Anda. Untuk informasi selengkapnya, lihat [Menggunakan grup opsi](USER_WorkingWithOptionGroups.md). 

Jika Anda mencari fitur opsional yang tidak ditambahkan melalui grup opsi RDS (seperti SSL, Microsoft Windows Authentication, dan integrasi Amazon S3), lihat [Fitur tambahan untuk Microsoft SQL Server di Amazon RDS](User.SQLServer.AdditionalFeatures.md).

Amazon RDS mendukung opsi berikut untuk instans DB Microsoft SQL Server. 


****  

| Opsi | ID Opsi | Edisi mesin | 
| --- | --- | --- | 
|  [Server Tertaut dengan Oracle OLEDB](Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB.md)  |  `OLEDB_ORACLE`  |  SQL Server Enterprise Edition SQL Server Standard Edition  | 
|  [Pencadangan dan pemulihan native](Appendix.SQLServer.Options.BackupRestore.md)  |  `SQLSERVER_BACKUP_RESTORE`  |  SQL Server Enterprise Edition SQL Server Standard Edition SQL Server Web Edition SQL Server Express Edition  | 
|  [Enkripsi Data Transparan](Appendix.SQLServer.Options.TDE.md)  |  `TRANSPARENT_DATA_ENCRYPTION` (konsol RDS) `TDE`(AWS CLI dan RDS API)  |  SQL Server 2016—2022 Edisi Perusahaan SQL Server 2022 Standard Edition | 
|  [SQLAudit Server](Appendix.SQLServer.Options.Audit.md)  |  `SQLSERVER_AUDIT`  |  Di RDS, dimulai dengan SQL Server 2016, semua edisi SQL Server mendukung audit tingkat server, dan Enterprise Edition juga mendukung audit tingkat database. Dimulai dengan SQL Server SQL Server 2016 (13.x) SP1, semua edisi mendukung audit tingkat server dan tingkat database. Untuk informasi selengkapnya, lihat [SQL Server Audit (database engine)](https://docs.microsoft.com/sql/relational-databases/security/auditing/sql-server-audit-database-engine?view=sql-server-2017) di dokumentasi SQL Server. | 
|  [SQLLayanan Analisis Server](Appendix.SQLServer.Options.SSAS.md)  |  `SSAS`  |  SQL Server Enterprise Edition SQL Server Standard Edition  | 
|  [SQL Server Integration Services](Appendix.SQLServer.Options.SSIS.md)  |  `SSIS`  |  SQL Server Enterprise Edition SQL Server Standard Edition  | 
|  [SQLLayanan Pelaporan Server](Appendix.SQLServer.Options.SSRS.md)  |  `SSRS`  |  SQL Server Enterprise Edition SQL Server Standard Edition  | 
|  [Microsoft Distributed Transaction Coordinator](Appendix.SQLServer.Options.MSDTC.md)  |  `MSDTC`  |  Di RDS, dimulai dengan SQL Server 2016, semua edisi SQL Server mendukung transaksi terdistribusi.  | 
|  [Gubernur sumber daya SQL Server](Appendix.SQLServer.Options.ResourceGovernor.md)  |  `RESOURCE_GOVERNOR`  |  SQL Server Enterprise Edition Edisi Pengembang SQL Server 2022  | 

## Membuat daftar opsi yang tersedia untuk versi dan edisi SQL Server
<a name="Appendix.SQLServer.Options.Describe"></a>

Anda dapat menggunakan `describe-option-group-options` AWS CLI perintah untuk daftar opsi yang tersedia untuk versi dan edisi SQL Server, dan pengaturan untuk opsi tersebut.

Contoh berikut menunjukkan opsi dan pengaturan opsi untuk SQL Server 2019 Enterprise Edition. Opsi `--engine-name` ini diperlukan.

```
aws rds describe-option-group-options --engine-name sqlserver-ee --major-engine-version 15.00
```

Output-nya seperti berikut:

```
{
    "OptionGroupOptions": [
        {
            "Name": "MSDTC",
            "Description": "Microsoft Distributed Transaction Coordinator",
            "EngineName": "sqlserver-ee",
            "MajorEngineVersion": "15.00",
            "MinimumRequiredMinorEngineVersion": "4043.16.v1",
            "PortRequired": true,
            "DefaultPort": 5000,
            "OptionsDependedOn": [],
            "OptionsConflictsWith": [],
            "Persistent": false,
            "Permanent": false,
            "RequiresAutoMinorEngineVersionUpgrade": false,
            "VpcOnly": false,
            "OptionGroupOptionSettings": [
                {
                    "SettingName": "ENABLE_SNA_LU",
                    "SettingDescription": "Enable support for SNA LU protocol",
                    "DefaultValue": "true",
                    "ApplyType": "DYNAMIC",
                    "AllowedValues": "true,false",
                    "IsModifiable": true,
                    "IsRequired": false,
                    "MinimumEngineVersionPerAllowedValue": []
                },
        ...

        {
            "Name": "TDE",
            "Description": "SQL Server - Transparent Data Encryption",
            "EngineName": "sqlserver-ee",
            "MajorEngineVersion": "15.00",
            "MinimumRequiredMinorEngineVersion": "4043.16.v1",
            "PortRequired": false,
            "OptionsDependedOn": [],
            "OptionsConflictsWith": [],
            "Persistent": true,
            "Permanent": false,
            "RequiresAutoMinorEngineVersionUpgrade": false,
            "VpcOnly": false,
            "OptionGroupOptionSettings": []
        }
    ]
}
```

# Dukungan untuk Server Tertaut dengan Oracle OLEDB di Amazon RDS for SQL Server
<a name="Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB"></a>

Server tertaut dengan Oracle Provider for OLEDB di RDS for SQL Server memungkinkan Anda mengakses sumber data eksternal di basis data Oracle. Anda dapat membaca data dari sumber data Oracle jarak jauh dan menjalankan perintah di server basis data Oracle jarak jauh di luar instans DB RDS for SQL Server Anda. Dengan menggunakan server tertaut dengan Oracle OLEDB, Anda dapat:
+ Mengakses langsung sumber data selain SQL Server
+ Mengueri beragam sumber data Oracle dengan kueri yang sama tanpa perlu memindahkan data
+ Mengeluarkan kueri, pembaruan, perintah, dan transaksi terdistribusi pada sumber data di seluruh ekosistem perusahaan
+ Mengintegrasikan koneksi ke basis data Oracle dari dalam Microsoft Business Intelligence Suite (SSIS, SSRS, SSAS)
+ Memigrasi dari basis data Oracle ke RDS for SQL Server

Anda dapat mengaktifkan satu atau beberapa server tertaut untuk Oracle di RDS yang sudah ada atau baru untuk instans DB SQL Server. Kemudian, Anda dapat mengintegrasikan sumber data Oracle eksternal dengan instans DB.

**Contents**
+ [Versi dan Wilayah yang didukung](#LinkedServers_Oracle_OLEDB.VersionRegionSupport)
+ [Batasan dan rekomendasi](#LinkedServers_Oracle_OLEDB.Limitations)
+ [Mengaktifkan server tertaut menggunakan Oracle](#LinkedServers_Oracle_OLEDB.Enabling)
  + [Membuat grup opsi untuk OLEDB\$1ORACLE](#LinkedServers_Oracle_OLEDB.OptionGroup)
  + [Menambahkan opsi `OLEDB_ORACLE` ke grup opsi](#LinkedServers_Oracle_OLEDB.Add)
  + [Memodifikasi opsi `OLEDB_ORACLE` versi ke versi lain](#LinkedServers_Oracle_OLEDB.Modify)
  + [Mengaitkan grup opsi dengan instans DB](#LinkedServers_Oracle_OLEDB.Apply)
+ [Memodifikasi properti penyedia OLEDB](#LinkedServers_Oracle_OLEDB.ModifyProviderProperties)
+ [Memodifikasi properti driver OLEDB](#LinkedServers_Oracle_OLEDB.ModifyDriverProperties)
+ [Menonaktifkan server tertaut menggunakan Oracle](#LinkedServers_Oracle_OLEDB.Disable)

## Versi dan Wilayah yang didukung
<a name="LinkedServers_Oracle_OLEDB.VersionRegionSupport"></a>

RDS for SQL Server mendukung server tertaut dengan Oracle OLEDB di semua Wilayah untuk SQL Server Standard dan Enterprise Editions di versi berikut:
+ SQL Server 2022, semua versi
+ SQL Server 2019, semua versi
+ SQL Server 2017, semua versi

Server tertaut dengan Oracle OLEDB didukung untuk versi Oracle Database berikut:
+ Oracle Database 21c, semua versi
+ Oracle Database 19c, semua versi
+ Oracle Database 18c, semua versi

Server tertaut dengan Oracle OLEDB didukung untuk versi driver OLEDB Oracle berikut:
+ 21.7
+ 21.16

## Batasan dan rekomendasi
<a name="LinkedServers_Oracle_OLEDB.Limitations"></a>

Perlu diingat bahwa batasan dan rekomendasi berikut yang berlaku untuk server tertaut dengan Oracle OLEDB:
+ Mengizinkan lalu lintas jaringan dengan menambahkan port TCP yang berlaku dalam grup keamanan untuk setiap instans DB RDS for SQL Server. Misalnya, jika Anda mengonfigurasi server tertaut antara instans DB EC2 Oracle dan instans DB RDS for SQL Server, Anda harus mengizinkan lalu lintas dari alamat IP instans DB EC2 Oracle. Anda juga harus mengizinkan lalu lintas pada port yang digunakan SQL Server untuk memproses komunikasi basis data. Untuk informasi selengkapnya mengenai Grup Keamanan, lihat [Mengontrol akses dengan grup keamanan](Overview.RDSSecurityGroups.md).
+ Lakukan boot ulang pada instans DB RDS for SQL Server setelah mengaktifkan, menonaktifkan, atau memodifikasi opsi `OLEDB_ORACLE` di grup opsi Anda. Status grup opsi menampilkan `pending_reboot` untuk peristiwa ini dan diperlukan. Untuk instans RDS untuk SQL Server Multi-AZ dengan AlwaysOn atau opsi Mirroring diaktifkan, failover diharapkan saat instance di-boot ulang setelah pembuatan atau pemulihan instans baru.
+ Hanya autentikasi sederhana yang didukung dengan nama pengguna dan kata sandi untuk sumber data Oracle.
+ Open Database Connectivity (ODBC) tidak didukung. Hanya versi driver OLEDB yang tercantum di atas yang didukung.
+ Transaksi terdistribusi (XA) didukung. Untuk mengaktifkan transaksi terdistribusi, aktifkan opsi `MSDTC` Grup Opsi untuk instans DB Anda dan pastikan transaksi XA diaktifkan. Untuk informasi selengkapnya, lihat [Dukungan untuk Microsoft Distributed Transaction Coordinator di RDS for SQL Server](Appendix.SQLServer.Options.MSDTC.md).
+ Membuat nama sumber data (DSNs) untuk digunakan sebagai pintasan untuk string koneksi tidak didukung.
+ Penelusuran driver OLEDB tidak didukung. Anda dapat menggunakan SQL Server Extended Events untuk melacak peristiwa OLEDB. Untuk informasi lebih lanjut, lihat [Mengatur Peristiwa yang Diperluas di RDS for SQL Server](https://aws.amazon.com/blogs/database/set-up-extended-events-in-amazon-rds-for-sql-server/).
+ Akses ke folder katalog untuk server tertaut Oracle tidak didukung menggunakan SQL Server Management Studio (SSMS).

## Mengaktifkan server tertaut menggunakan Oracle
<a name="LinkedServers_Oracle_OLEDB.Enabling"></a>

Aktifkan server tertaut menggunakan Oracle dengan menambahkan opsi `OLEDB_ORACLE` ke instans DB RDS for SQL Server Anda. Gunakan proses berikut:

1. Buat grup opsi baru, atau pilih grup opsi yang sudah ada.

1. Tambahkan opsi `OLEDB_ORACLE` untuk grup opsi.

1. Pilih versi driver OLEDB yang akan digunakan.

1. Kaitkan grup opsi dengan instans DB.

1. Boot ulang instans DB.

### Membuat grup opsi untuk OLEDB\$1ORACLE
<a name="LinkedServers_Oracle_OLEDB.OptionGroup"></a>

Untuk dapat bekerja dengan server tertaut menggunakan Oracle, buat grup opsi atau ubah grup opsi yang sesuai dengan edisi SQL Server dan versi instans DB yang akan Anda gunakan. Untuk menyelesaikan prosedur ini, gunakan Konsol Manajemen AWS atau AWS CLI.

#### Konsol
<a name="LinkedServers_Oracle_OLEDB.OptionGroup.Console"></a>

Prosedur berikut akan membuat grup opsi untuk SQL Server Standard Edition 2019.

**Untuk membuat grup opsi**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih **Buat grup**.

1. Di jendela **Buat grup opsi**, lakukan hal berikut:

   1. Untuk **Nama**, masukkan nama untuk grup opsi yang unik di dalam AWS akun Anda, seperti**oracle-oledb-se-2019**. Nama tersebut hanya boleh berisi huruf, angka, dan tanda hubung.

   1. Untuk **Deskripsi**, masukkan deskripsi singkat grup opsi, seperti **OLEDB\$1ORACLE option group for SQL Server SE 2019**. Deskripsi digunakan untuk tampilan.

   1. Untuk **Mesin**, pilih **sqlserver-se**.

   1. Untuk **Versi mesin utama**, pilih **15.00**.

1. Pilih **Buat**.

#### CLI
<a name="LinkedServers_Oracle_OLEDB.OptionGroup.CLI"></a>

Prosedur berikut akan membuat grup opsi untuk SQL Server Standard Edition 2019.

**Untuk membuat grup opsi**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-option-group \
      --option-group-name oracle-oledb-se-2019 \
      --engine-name sqlserver-se \
      --major-engine-version 15.00 \
      --option-group-description "OLEDB_ORACLE option group for SQL Server SE 2019"
  ```

  Untuk Windows:

  ```
  aws rds create-option-group ^
      --option-group-name oracle-oledb-se-2019 ^
      --engine-name sqlserver-se ^
      --major-engine-version 15.00 ^
      --option-group-description "OLEDB_ORACLE option group for SQL Server SE 2019"
  ```

### Menambahkan opsi `OLEDB_ORACLE` ke grup opsi
<a name="LinkedServers_Oracle_OLEDB.Add"></a>

Selanjutnya, gunakan Konsol Manajemen AWS atau AWS CLI untuk menambahkan `OLEDB_ORACLE` opsi ke grup opsi Anda.

#### Konsol
<a name="LinkedServers_Oracle_OLEDB.Add.Console"></a>

**Untuk menambahkan opsi OLEDB\$1ORACLE**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi yang baru saja Anda buat, yaitu **oracle-oledb-se-2019** dalam contoh ini.

1. Pilih **Tambah opsi**.

1. Di bagian **Detail opsi**, pilih **OLEDB\$1ORACLE** untuk **Nama opsi**.

1. Di bawah **Versi**, pilih versi driver OLEDB Oracle yang ingin Anda instal.

1. Di bagian **Penjadwalan**, pilih apakah akan menambahkan opsi langsung atau pada masa pemeliharaan berikutnya.

1. Pilih **Tambah opsi**.

#### CLI
<a name="LinkedServers_Oracle_OLEDB.Add.CLI"></a>

**Untuk menambahkan opsi OLEDB\$1ORACLE**
+ Tambahkan opsi `OLEDB_ORACLE` untuk grup opsi.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds add-option-to-option-group \
      --option-group-name oracle-oledb-se-2019 \
      --options OptionName=OLEDB_ORACLE, OptionVersion=21.16 \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds add-option-to-option-group ^
      --option-group-name oracle-oledb-se-2019 ^
      --options OptionName=OLEDB_ORACLE, OptionVersion=21.16 ^
      --apply-immediately
  ```

### Memodifikasi opsi `OLEDB_ORACLE` versi ke versi lain
<a name="LinkedServers_Oracle_OLEDB.Modify"></a>

Untuk memodifikasi versi `OLEDB_ORACLE` opsi ke versi lain, gunakan Konsol Manajemen AWS atau AWS CLI.

#### Konsol
<a name="LinkedServers_Oracle_OLEDB.Modify.Console"></a>

**Untuk Memodifikasi opsi OLEDB\$1ORACLE**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi dengan `OLEDB_ORACLE` opsi (**oracle-oledb-se-2019 pada** contoh sebelumnya).

1. Pilih **Opsi ubah**.

1. Di bagian **Detail opsi**, pilih **OLEDB\$1ORACLE** untuk **Nama opsi**.

1. Di bawah **Versi**, pilih versi driver OLEDB Oracle yang ingin Anda gunakan.

1. Di bawah **Penjadwalan**, pilih apakah akan segera mengubah opsi atau di jendela pemeliharaan berikutnya.

1. Pilih **Opsi ubah**.

#### CLI
<a name="LinkedServers_Oracle_OLEDB.Add.CLI"></a>

Untuk memodifikasi versi `OLEDB_ORACLE` opsi, gunakan [https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html)AWS CLI perintah dengan grup opsi dan versi opsi yang ingin Anda gunakan.

**Untuk memodifikasi opsi OLEDB\$1ORACLE**
+   
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds add-option-to-option-group \
      --option-group-name oracle-oledb-se-2019 \
      --options OptionName=OLEDB_ORACLE, OptionVersion=21.7 \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds add-option-to-option-group ^
      --option-group-name oracle-oledb-se-2019 ^
      --options OptionName=OLEDB_ORACLE, OptionVersion=21.7 ^
      --apply-immediately
  ```

### Mengaitkan grup opsi dengan instans DB
<a name="LinkedServers_Oracle_OLEDB.Apply"></a>

Untuk mengaitkan grup `OLEDB_ORACLE` opsi dan grup parameter dengan instans DB Anda, gunakan Konsol Manajemen AWS atau AWS CLI 

#### Konsol
<a name="LinkedServers_Oracle_OLEDB.Apply.Console"></a>

Agar dapat menyelesaikan pengaktifan server tertaut untuk Oracle, kaitkan grup opsi `OLEDB_ORACLE` Anda dengan instans DB baru atau yang sudah ada:
+ Untuk instans DB baru, kaitkan saat Anda meluncurkan instans. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+ Untuk instans DB yang sudah ada, kaitkan dengan memodifikasi instans. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

#### CLI
<a name="LinkedServers_Oracle_OLEDB.Apply.CLI"></a>

Anda dapat mengaitkan grup opsi `OLEDB_ORACLE` dan grup parameter dengan instans DB baru atau yang sudah ada.

**Untuk membuat instans dengan grup opsi `OLEDB_ORACLE` dan grup parameter**
+ Tentukan tipe mesin DB yang sama dan versi utama yang Anda gunakan saat membuat grup opsi.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier mytestsqlserveroracleoledbinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 15.0.4236.7.v1 \
      --allocated-storage 100 \
      --manage-master-user-password \
      --master-username admin \
      --storage-type gp2 \
      --license-model li \
      --domain-iam-role-name my-directory-iam-role \
      --domain my-domain-id \
      --option-group-name oracle-oledb-se-2019 \
      --db-parameter-group-name my-parameter-group-name
  ```

  Untuk Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier mytestsqlserveroracleoledbinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 15.0.4236.7.v1 ^
      --allocated-storage 100 ^
      --manage-master-user-password ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --domain-iam-role-name my-directory-iam-role ^
      --domain my-domain-id ^
      --option-group-name oracle-oledb-se-2019 ^
      --db-parameter-group-name my-parameter-group-name
  ```

**Untuk memodifikasi instans dan mengaitkan grup opsi `OLEDB_ORACLE`**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mytestsqlserveroracleoledbinstance \
      --option-group-name oracle-oledb-se-2019 \
      --db-parameter-group-name my-parameter-group-name \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mytestsqlserveroracleoledbinstance ^
      --option-group-name oracle-oledb-se-2019 ^
      --db-parameter-group-name my-parameter-group-name ^
      --apply-immediately
  ```

## Memodifikasi properti penyedia OLEDB
<a name="LinkedServers_Oracle_OLEDB.ModifyProviderProperties"></a>

Anda dapat melihat dan mengubah properti penyedia OLEDB. Hanya pengguna `master` yang dapat melakukan tugas ini. Semua server tertaut untuk Oracle yang dibuat di instans DB menggunakan properti yang sama dari penyedia OLEDB tersebut. Panggil prosedur tersimpan `sp_MSset_oledb_prop` untuk mengubah properti penyedia OLEDB.

Untuk mengubah properti penyedia OLEDB

```
				
USE [master]
GO
EXEC sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'AllowInProcess', 1 
EXEC sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'DynamicParameters', 0
GO
```

Properti berikut dapat dimodifikasi:


****  

| Nama properti | Nilai yang Direkomendasikan (1 = Aktif, 0 = Mati) | Deskripsi | 
| --- | --- | --- | 
| `Dynamic parameter` | 1 | Mengizinkan placeholder SQL (diwakili oleh '?') dalam kueri parameter. | 
| `Nested queries` | 1 | Mengizinkan pernyataan `SELECT` bertingkat dalam klausa `FROM`, seperti subkueri. | 
| `Level zero only` | 0 | Hanya antarmuka OLEDB tingkat dasar yang dipanggil untuk penyedia. | 
| `Allow inprocess` | 1 | Jika diaktifkan, Microsoft SQL Server memungkinkan penyedia untuk dipakai sebagai server dalam proses. Atur properti ini ke 1 untuk menggunakan server tertaut Oracle. | 
| `Non transacted updates` | 0 | Jika bukan nol, SQL Server memungkinkan pembaruan. | 
| `Index as access path` | Salah | Jika bukan nol, SQL Server mencoba menggunakan indeks penyedia untuk mengambil data. | 
| `Disallow adhoc access` | Salah | Jika diatur, SQL Server tidak mengizinkan menjalankan kueri pass-through terhadap penyedia OLEDB. Meskipun opsi ini dapat dicentang, terkadang ini merupakan pilihan tepat untuk menjalankan kueri pass-through. | 
| `Supports LIKE operator` | 1 | Menunjukkan bahwa penyedia mendukung kueri menggunakan kata kunci LIKE. | 

## Memodifikasi properti driver OLEDB
<a name="LinkedServers_Oracle_OLEDB.ModifyDriverProperties"></a>

Anda dapat melihat dan mengubah properti driver OLEDB saat membuat server tertaut untuk Oracle. Hanya pengguna `master` yang dapat melakukan tugas ini. Properti driver menentukan cara driver OLEDB menangani data saat menggunakan sumber data Oracle jarak jauh. Properti driver khusus untuk setiap server tertaut Oracle yang dibuat di instans DB. Panggil prosedur tersimpan `master.dbo.sp_addlinkedserver` untuk mengubah properti driver OLEDB.

Contoh: Untuk membuat server tertaut dan mengubah properti driver `FetchSize` OLEDB

```
	
EXEC master.dbo.sp_addlinkedserver
@server = N'Oracle_link2',
@srvproduct=N'Oracle',
@provider=N'OraOLEDB.Oracle',
@datasrc=N'my-oracle-test.cnetsipka.us-west-2.rds.amazonaws.com:1521/ORCL',
@provstr='FetchSize=200'
GO
```

```
	
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname=N'Oracle_link2',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'master',
@rmtpassword='Test#1234'
GO
```

**catatan**  
Tetapkan kata sandi selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

## Menonaktifkan server tertaut menggunakan Oracle
<a name="LinkedServers_Oracle_OLEDB.Disable"></a>

Untuk menonaktifkan server tertaut menggunakan Oracle, hapus opsi `OLEDB_ORACLE` dari grup opsi.

**penting**  
Menghapus opsi tidak akan menghapus konfigurasi server tertaut yang sudah ada di instans DB. Anda harus melepaskannya secara manual untuk dapat menghapusnya dari instans DB.  
Anda dapat mengaktifkan kembali opsi `OLEDB_ORACLE` setelah dihapus agar bisa menggunakan kembali konfigurasi server tertaut yang sebelumnya dikonfigurasi di instans DB.

### Konsol
<a name="LinkedServers_Oracle_OLEDB.Disable.Console"></a>

Prosedur berikut akan menghapus opsi `OLEDB_ORACLE`.

**Untuk menghapus opsi OLEDB\$1ORACLE dari grup opsi**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi dengan opsi `OLEDB_ORACLE` (`oracle-oledb-se-2019` dalam contoh sebelumnya).

1. Pilih **Hapus opsi**.

1. Di bagian **Opsi penghapusan**, pilih **OLEDB\$1ORACLE** untuk **Opsi yang akan dihapus**.

1. Di bagian **Langsung terapkan**, pilih **Ya** untuk segera menghapus opsi, atau **Tidak** untuk menghapusnya selama masa pemeliharaan berikutnya.

1. Pilih **Hapus**.

### CLI
<a name="LinkedServers_Oracle_OLEDB.Disable.CLI"></a>

Prosedur berikut akan menghapus opsi `OLEDB_ORACLE`.

**Untuk menghapus opsi OLEDB\$1ORACLE dari grup opsi**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds remove-option-from-option-group \
      --option-group-name oracle-oledb-se-2019 \
      --options OLEDB_ORACLE \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name oracle-oledb-se-2019 ^
      --options OLEDB_ORACLE ^
      --apply-immediately
  ```

# Server Tertaut dengan Teradata ODBC di RDS untuk SQL Server
<a name="USER_SQLServerTeradata"></a>

Support untuk server tertaut dengan driver Teradata ODBC pada RDS untuk SQL Server memungkinkan Anda mengakses sumber data eksternal pada database Teradata. Anda dapat membaca data dan menjalankan perintah dari server database Teradata jarak jauh di luar contoh RDS untuk SQL Server Anda. Gunakan server tertaut dengan Teradata ODBC untuk mengaktifkan kemampuan berikut:
+ Akses langsung sumber data selain SQL Server.
+ Kueri terhadap beragam sumber data Teradata dengan kueri yang sama tanpa memindahkan data.
+ Mengeluarkan kueri, pembaruan, perintah, dan transaksi terdistribusi pada sumber data di seluruh ekosistem perusahaan.
+ Integrasikan koneksi ke database Teradata dari dalam Microsoft Business Intelligence Suite (SSIS, SSRS, SSAS).
+ Bermigrasi dari database Teradata ke RDS untuk SQL Server.

Anda dapat memilih untuk mengaktifkan satu atau lebih server tertaut untuk Teradata baik pada RDS yang sudah ada atau baru untuk instans SQL Server DB. Anda kemudian dapat mengintegrasikan sumber data Teradata eksternal dengan instans DB Anda.

**Topics**
+ [Versi dan Wilayah yang didukung](#USER_SQLServerTeradata.VersionRegionSupport)
+ [Batasan dan rekomendasi](#USER_SQLServerTeradata.LimitsandRecommendations)
+ [Pertimbangan untuk penyebaran Multi-AZ](#USER_SQLServerTeradata.MultiAZ)
+ [Mengaktifkan server tertaut dengan Teradata](USER_SQLServerTeradata.Activate.md)
+ [Membuat server tertaut dengan Teradata](USER_SQLServerTeradata.CreateLinkedServers.md)
+ [Menonaktifkan server yang ditautkan ke Teradata](USER_SQLServerTeradata.Deactivate.md)

## Versi dan Wilayah yang didukung
<a name="USER_SQLServerTeradata.VersionRegionSupport"></a>

RDS untuk SQL Server mendukung server tertaut dengan Teradata ODBC secara keseluruhan Wilayah AWS untuk SQL Server Standard dan Enterprise Edition untuk versi berikut:
+ SQL Server 2022, semua versi
+ SQL Server 2019, semua versi
+ SQL Server 2017, semua versi

Versi database Teradata berikut mendukung penautan dengan RDS untuk SQL Server
+ Teradata 17.20, semua versi

## Batasan dan rekomendasi
<a name="USER_SQLServerTeradata.LimitsandRecommendations"></a>

Batasan berikut berlaku untuk server tertaut dengan Teradata ODBC:
+ RDS untuk SQL Server hanya mendukung otentikasi sederhana dengan nama pengguna dan kata sandi untuk sumber Teradata.
+ RDS untuk SQL Server hanya mendukung driver Teradata ODBC versi 17.20.0.33.
+ RDS untuk SQL Server tidak mendukung pembuatan nama sumber data (DSNs) untuk digunakan sebagai pintasan untuk string koneksi.
+ RDS untuk SQL Server tidak mendukung penelusuran driver ODBC. Gunakan SQL Server Extended Events untuk melacak peristiwa ODBC. Untuk informasi lebih lanjut, lihat [Mengatur Peristiwa yang Diperluas di RDS for SQL Server](https://aws.amazon.com/blogs/database/set-up-extended-events-in-amazon-rds-for-sql-server/).
+ RDS untuk SQL Server tidak mendukung akses ke folder katalog untuk server tertaut Teradata saat menggunakan SQL Server Management Studio (SSMS).

Pertimbangkan rekomendasi berikut saat menggunakan server tertaut dengan Teradata ODBC:
+ Mengizinkan lalu lintas jaringan dengan menambahkan port TCP yang berlaku dalam grup keamanan untuk setiap instans DB RDS for SQL Server. Jika Anda mengonfigurasi server tertaut antara instans EC2 Teradata DB dan RDS untuk instans SQL Server DB, maka Anda harus mengizinkan lalu lintas dari alamat IP instans Teradata DB. EC2 Anda juga harus mengizinkan lalu lintas pada port yang digunakan RDS untuk SQL Server DB instance untuk mendengarkan komunikasi database. Untuk informasi selengkapnya mengenai Grup Keamanan, lihat [Mengontrol akses dengan grup keamanan](Overview.RDSSecurityGroups.md).
+ Transaksi terdistribusi (XA) didukung. Untuk mengaktifkan transaksi terdistribusi, aktifkan `MSDTC` opsi di grup opsi untuk instans DB Anda dan pastikan transaksi XA diaktifkan. Untuk informasi selengkapnya, lihat [Dukungan untuk Microsoft Distributed Transaction Coordinator di RDS for SQL Server](Appendix.SQLServer.Options.MSDTC.md).
+ Teradata ODBC yang ditautkan mendukung SSL/TLS selama dikonfigurasi di Server Teradata. Untuk informasi selengkapnya, lihat [Mengaktifkan Konektivitas TLS di Teradata](https://docs.teradata.com/r/Enterprise_IntelliFlex_Lake_VMware/Teradata-Call-Level-Interface-Version-2-Reference-for-Workstation-Attached-Systems-20.00/Mainframe-TLS-Connectivity-Supplement/Enable-TLS-Connectivity-on-Teradata-Vantage) Vantage.

## Pertimbangan untuk penyebaran Multi-AZ
<a name="USER_SQLServerTeradata.MultiAZ"></a>

RDS untuk SQL Server saat ini tidak mereplikasi server tertaut ke server database cermin (atau server sekunder grup ketersediaan Selalu Aktif) dalam penyebaran Multi-AZ. Jika server tertaut ditambahkan sebelum konfigurasi diubah untuk menambahkan mirroring atau Always-On, maka server tertaut disalin untuk server tertaut yang ada.

Atau, Anda dapat membuat server tertaut pada instance utama, gagal ke instance server ketersediaan tinggi dan kemudian membuat server tertaut lagi sehingga mereka berada di kedua RDS untuk instance SQL Server. 

# Mengaktifkan server tertaut dengan Teradata
<a name="USER_SQLServerTeradata.Activate"></a>

Aktifkan server tertaut dengan Teradata dengan menambahkan `ODBC_TERADATA` opsi ke RDS Anda untuk instans SQL Server DB. Gunakan proses berikut:

**Topics**
+ [Membuat grup opsi untuk `ODBC_TERADATA`](#USER_SQLServerTeradata.Activate.CreateOG)
+ [Menambahkan opsi `ODBC_TERADATA` ke grup opsi](#USER_SQLServerTeradata.Activate.AddOG)
+ [Mengaitkan `ODBC_TERADATA` opsi dengan instans DB Anda](#USER_SQLServerTeradata.Activate.AssociateOG)

## Membuat grup opsi untuk `ODBC_TERADATA`
<a name="USER_SQLServerTeradata.Activate.CreateOG"></a>

Untuk bekerja dengan server tertaut dengan Teradata, buat grup opsi atau modifikasi grup opsi yang sesuai dengan edisi SQL Server dan versi instans DB yang Anda rencanakan untuk digunakan. Untuk menyelesaikan prosedur ini, gunakan Konsol Manajemen AWS atau AWS CLI.

### Konsol
<a name="USER_SQLServerTeradata.Activate.CreateOG.Console"></a>

Gunakan prosedur berikut untuk membuat grup opsi untuk SQL Server Standard Edition 2019.

**Untuk membuat grup opsi**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih **Buat grup**.

1. Di jendela **Buat grup opsi**, lakukan hal berikut:

   1. Untuk **Nama**, masukkan nama untuk grup opsi yang unik di dalam Anda Akun AWS, seperti`teradata-odbc-se-2019`. Nama tersebut hanya boleh berisi huruf, angka, dan tanda hubung. 

   1. Untuk **Deskripsi**, masukkan deskripsi singkat tentang grup opsi.

   1. Untuk **Mesin**, pilih **sqlserver-se**.

   1. Untuk **Versi mesin utama**, pilih **15.00**.

1. Pilih **Buat**.

### AWS CLI
<a name="USER_SQLServerTeradata.Activate.CreateOG.CLI"></a>

Prosedur berikut akan membuat grup opsi untuk SQL Server Standard Edition 2019.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws rds create-option-group \
    --option-group-name teradata-odbc-se-2019 \
    --engine-name sqlserver-se \
    --major-engine-version 15.00 \
    --option-group-description "ODBC_TERADATA option group for SQL Server SE 2019"
```

**Example**  
Untuk Windows:  

```
aws rds create-option-group ^
    --option-group-name teradata-odbc-se-2019 ^
    --engine-name sqlserver-se ^
    --major-engine-version 15.00 ^
    --option-group-description "ODBC_TERADATA option group for SQL Server SE 2019"
```

## Menambahkan opsi `ODBC_TERADATA` ke grup opsi
<a name="USER_SQLServerTeradata.Activate.AddOG"></a>

Selanjutnya, gunakan Konsol Manajemen AWS atau AWS CLI untuk menambahkan `ODBC_Teradata` opsi ke grup opsi Anda.

### Konsol
<a name="USER_SQLServerTeradata.Activate.AddOG.Console"></a>

Gunakan prosedur berikut membuat grup opsi untuk SQL Server Standard Edition 2019.

**Untuk menambahkan `ODBC_TERADATA` opsi**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi baru Anda.

1. Pilih **Tambah opsi**.

1. Di bawah **Rincian Opsi**:

   1. **Pilih **ODBC\$1TERADATA** untuk nama Option.**

   1. Untuk `17.20.33.00` untuk **versi Opsi**.

1. Di bawah penjadwalan, pilih apakah akan segera menambahkan opsi atau di jendela pemeliharaan berikutnya.

1. Pilih **Tambah opsi**.

### AWS CLI
<a name="USER_SQLServerTeradata.Activate.AddOG.CLI"></a>

Prosedur berikut menambahkan `ODBC_TERADATA` opsi ke grup opsi Anda.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws rds add-option-to-option-group \
    --option-group-name teradata-odbc-se-2019 \
    --options "OptionName=ODBC_TERADATA,OptionVersion=17.20.33.00" \
    --apply-immediately
```

**Example**  
Untuk Windows:  

```
aws rds add-option-to-option-group ^
    --option-group-name teradata-odbc-se-2019 ^
    --options "OptionName=ODBC_TERADATA,OptionVersion=17.20.33.00" ^
    --apply-immediately
```

## Mengaitkan `ODBC_TERADATA` opsi dengan instans DB Anda
<a name="USER_SQLServerTeradata.Activate.AssociateOG"></a>

Untuk mengaitkan grup `ODBC_TERADATA` opsi dengan instans DB Anda, gunakan Konsol Manajemen AWS or AWS CLI.

### Konsol
<a name="USER_SQLServerTeradata.Activate.AssociateOG.Console"></a>

Untuk menyelesaikan pengaktifan server tertaut untuk Teradata, kaitkan grup opsi Anda dengan instans DB baru atau yang sudah ada:
+ Untuk instans DB baru, kaitkan saat Anda meluncurkan instans. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+ Untuk instans DB yang sudah ada, kaitkan dengan mengubah instans. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

### AWS CLI
<a name="USER_SQLServerTeradata.Activate.AssociateOG.CLI"></a>

Tentukan tipe mesin DB yang sama dan versi utama yang Anda gunakan saat membuat grup opsi.

Untuk Linux, macOS, atau Unix:

```
aws rds create-db-instance \
    --db-instance-identifier mytestsqlserverteradataodbcinstance \
    --db-instance-class db.m5.2xlarge \
    --engine sqlserver-se \
    --engine-version 15.00 \
    --license-model license-included \
    --allocated-storage 100 \
    --master-username admin \
    --master-user-password password \
    --storage-type gp2 \
    --option-group-name teradata-odbc-se-2019
```

Untuk Windows:

```
aws rds create-db-instance ^
    --db-instance-identifier mytestsqlserverteradataodbcinstance ^
    --db-instance-class db.m5.2xlarge ^
    --engine sqlserver-se ^
    --engine-version 15.00 ^
    --license-model license-included ^ 
    --allocated-storage 100 ^
    --master-username admin ^
    --master-user-password password ^
    --storage-type gp2 ^
    --option-group-name teradata-odbc-se-2019
```

Untuk memodifikasi instance dan mengaitkan grup opsi baru:

Untuk Linux, macOS, atau Unix:

```
aws rds modify-db-instance \
    --db-instance-identifier mytestsqlserverteradataodbcinstance \
    --option-group-name teradata-odbc-se-2019 \
    --apply-immediately
```

Untuk Windows:

```
aws rds modify-db-instance ^
    --db-instance-identifier mytestsqlserverteradataodbcinstance ^
    --option-group-name teradata-odbc-se-2019 ^
    --apply-immediately
```

# Membuat server tertaut dengan Teradata
<a name="USER_SQLServerTeradata.CreateLinkedServers"></a>

Untuk membuat server tertaut dengan Teradata, jalankan perintah berikut:

```
EXECUTE master.dbo.sp_addlinkedserver 
    @server = N'LinkedServer_NAME', 
    @srvproduct=N'', 
    @provider=N'MSDASQL', 
    @provstr=N'"PROVIDER=MSDASQL;DRIVER={Teradata Database ODBC Driver 17.20};
                DBCName=Server;UID=user_name;PWD=user_password;
                UseDataEncryption=YES/NO;SSLMODE=PREFER/ALLOW/DISABLE>;"', 
    @catalog='database'
```

```
EXECUTE master.dbo.sp_addlinkedsrvlogin 
    @rmtsrvname = N'LinkedServer_NAME', 
    @locallogin = NULL , 
    @useself = N'False', 
    @rmtuser = N'user_name', 
    @rmtpassword = N'user_password'
```

Contoh perintah di atas ditunjukkan di sini:

```
EXECUTE master.dbo.sp_addlinkedserver 
    @server = N'LinkedServerToTeradata', 
    @srvproduct=N'', 
    @provider=N'MSDASQL', 
    @provstr=N'"PROVIDER=MSDASQL;DRIVER={Teradata Database ODBC Driver 17.20};
                DBCName=my-teradata-test.cnetsipka.us-west-2.rds.amazonaws.com;
                UID=master;
                PWD=Test#1234;
                UseDataEncryption=YES;
                SSLMODE=PREFER;"', 
    @catalog='MyTestTeradataDB'

EXECUTE master.dbo.sp_addlinkedsrvlogin 
    @rmtsrvname = N'LinkedServerToTeradata', 
    @locallogin = NULL , 
    @useself = N'False', 
    @rmtuser = N'master', 
    @rmtpassword = N'Test#1234'
```

**catatan**  
Tetapkan kata sandi selain penggugah (prompt) yang ditampilkan di sini sebagai praktik terbaik keamanan.

# Menonaktifkan server yang ditautkan ke Teradata
<a name="USER_SQLServerTeradata.Deactivate"></a>

Untuk menonaktifkan server tertaut ke Teradata, hapus `ODBC_TERADATA` opsi dari grup opsinya.

**penting**  
Menghapus opsi tidak menghapus konfigurasi server tertaut pada instans DB. Anda harus melepaskannya secara manual untuk dapat menghapusnya dari instans DB.  
Anda dapat mengaktifkan kembali `ODBC_TERADATA` setelah penghapusan untuk menggunakan kembali konfigurasi server tertaut yang sebelumnya dikonfigurasi pada instans DB.

## Konsol
<a name="USER_SQLServerTeradata.Deactivate.Console"></a>

Untuk menghapus `ODBC_TERADATA` opsi dari grup opsi

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi dengan `ODBC_TERADATA` opsi. 

1. Pilih **Hapus**.

1. Di bawah **Opsi penghapusan**, pilih `ODBC_TERADATA` di bawah **Opsi untuk** dihapus.

1. Di bagian **Langsung terapkan**, pilih **Ya** untuk segera menghapus opsi, atau **Tidak** untuk menghapusnya selama masa pemeliharaan berikutnya.

1. Pilih **Hapus**.

## AWS CLI
<a name="USER_SQLServerTeradata.Deactivate.CLI"></a>

Perintah berikut menghapus `ODBC_TERADATA` opsi.

Untuk Linux, macOS, atau Unix:

```
aws rds remove-option-from-option-group \
    --option-group-name teradata-odbc-se-2019 \
    --options ODBC_TERADATA \
    --apply-immediately
```

Untuk Windows:

```
aws rds remove-option-from-option-group ^
    --option-group-name teradata-odbc-se-2019 ^
    --options ODBC_TERADATA ^
    --apply-immediately
```

# Dukungan untuk pencadangan dan pemulihan native di SQL Server
<a name="Appendix.SQLServer.Options.BackupRestore"></a>

Dengan menggunakan pencadangan dan pemulihan native untuk basis data SQL Server, Anda dapat membuat cadangan diferensial atau penuh dari basis data on-premise dan menyimpan file cadangan di Amazon S3. Kemudian Anda dapat memulihkan ke instans DB Amazon RDS yang sudah ada dan menjalankan SQL Server. Anda juga dapat mencadangkan basis data RDS for SQL Server, menyimpannya di Amazon S3, dan memulihkannya di lokasi lain. Selain itu, Anda juga dapat memulihkan cadangan ke server on-premise, atau instans DB Amazon RDS lain yang menjalankan SQL Server. Untuk informasi lebih lanjut, lihat [Mengimpor dan mengekspor basis data SQL Server menggunakan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.md).

Amazon RDS mendukung pencadangan dan pemulihan native untuk basis data Microsoft SQL Server menggunakan file cadangan diferensial dan penuh (file .bak).

## Menambahkan opsi pencadangan dan pemulihan native
<a name="Appendix.SQLServer.Options.BackupRestore.Add"></a>

Proses umum untuk menambahkan opsi pencadangan dan pemulihan native ke instans DB adalah sebagai berikut:

1. Buat grup opsi baru, atau salin atau ubah grup opsi yang sudah ada.

1. Tambahkan opsi `SQLSERVER_BACKUP_RESTORE` untuk grup opsi.

1. Mengaitkan peran AWS Identity and Access Management (IAM) dengan opsi. Peran IAM harus memiliki akses ke bucket S3 agar dapat menyimpan cadangan basis data.

   Artinya, opsi tersebut harus memiliki pengaturan Amazon Resource Name (ARN) yang valid dalam format `arn:aws:iam::account-id:role/role-name`. Untuk informasi selengkapnya, lihat [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam) di *Referensi Umum AWS.*

   Peran IAM juga harus memiliki hubungan kepercayaan dan kebijakan izin yang diberikan. Hubungan kepercayaan memungkinkan RDS untuk mengambil peran, dan kebijakan izin menentukan tindakan yang dapat dilakukan peran tersebut. Untuk informasi selengkapnya, lihat [Membuat peran IAM secara manual untuk pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM).

1. Kaitkan grup opsi dengan instans DB.

Setelah menambahkan opsi pencadangan dan pemulihan native, Anda tidak perlu memulai ulang instans DB. Begitu grup opsi aktif, Anda dapat langsung mulai mencadangkan dan memulihkan.

### Konsol
<a name="Add.Native.Backup.Restore.Console"></a>

**Untuk menambah opsi pencadangan dan pemulihan native**

1. Masuk ke Konsol Manajemen AWS lalu buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Buat grup opsi baru atau menggunakan grup opsi yang sudah ada. Untuk informasi cara membuat grup opsi DB kustom, lihat [Membuat grup opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

   Untuk menggunakan grup opsi yang sudah ada, lanjutkan ke langkah berikutnya.

1. Tambahkan opsi **SQLSERVER\$1BACKUP\$1RESTORE** ke grup opsi. Untuk informasi cara menambahkan aturan selengkapnya, lihat [Menambahkan opsi ke grup opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1. Lakukan salah satu dari cara berikut:
   + Untuk menggunakan peran IAM dan pengaturan Amazon S3 yang sudah ada, pilih peran IAM yang sudah ada untuk **Peran IAM**. Jika Anda menggunakan peran IAM yang sudah ada, RDS akan menggunakan pengaturan Amazon S3 yang dikonfigurasi untuk peran ini.
   + Untuk membuat peran baru dan mengonfigurasi pengaturan Amazon S3, lakukan hal berikut: 

     1. Untuk **Peran IAM**, pilih **Buat Peran Baru**.

     1. Untuk **Bucket S3**, pilih bucket S3 dari daftar.

     1. Untuk **awalan S3 (opsional)**, tentukan awalan yang akan digunakan untuk file yang disimpan di bucket Amazon S3. 

        Awalan ini dapat menyertakan jalur file, tetapi tidak harus. Jika Anda memberikan awalan, RDS akan menambahkan awalan tersebut ke semua file cadangan. Kemudian RDS akan menggunakan awalan selama pemulihan untuk mengidentifikasi file terkait dan mengabaikan file yang tidak relevan. Misalnya, Anda mungkin menggunakan bucket S3 untuk tujuan selain dari menyimpan file cadangan. Dalam kasus ini, Anda dapat menggunakan awalan agar RDS melakukan pencadangan dan pemulihan native hanya pada folder tertentu beserta subfoldernya.

        Jika Anda membiarkan awalan kosong, RDS tidak akan menggunakan awalan untuk mengidentifikasi file cadangan atau file yang akan dipulihkan. Akibatnya, selama pemulihan banyak file, RDS akan mencoba memulihkan setiap file di setiap folder bucket S3.

     1. Pilih kotak centang **Aktifkan enkripsi** untuk mengenkripsi file cadangan. Biarkan kotak centang dihapus (default) agar file cadangan tidak terenkripsi.

        Jika Anda memilih **Aktifkan enkripsi**, pilih kunci enkripsi untuk **AWS KMS key**. Untuk informasi kunci enkripsi selengkapnya, lihat [Memulai](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html) di *Panduan Developer.AWS Key Management Service*

1. Pilih **Tambah opsi**.

1. Terapkan grup opsi ke instans DB baru atau yang sudah ada:
   + Untuk instans DB baru, terapkan grup opsi saat Anda meluncurkan instans. Untuk informasi lebih lanjut, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md). 
   + Untuk instans DB yang sudah ada, terapkan grup opsi dengan memodifikasi instans dan menambahkan grup opsi baru. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md). 

### CLI
<a name="Add.Native.Backup.Restore.CLI"></a>

Prosedur ini akan membuat asumsi berikut:
+ Anda menambahkan opsi SQLSERVER\$1BACKUP\$1RESTORE ke grup opsi yang sudah ada. Untuk informasi cara menambahkan aturan selengkapnya, lihat [Menambahkan opsi ke grup opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).
+ Anda mengaitkan opsi dengan peran IAM yang sudah ada dan memiliki akses ke bucket S3 untuk menyimpan cadangan.
+ Anda menerapkan grup opsi ke instans DB yang sudah ada. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md). 

**Untuk menambah opsi pencadangan dan pemulihan native**

1. Tambahkan opsi `SQLSERVER_BACKUP_RESTORE` ke grup opsi.  
**Example**  

   Untuk Linux, macOS, atau Unix:

   ```
   aws rds add-option-to-option-group \
   	--apply-immediately \
   	--option-group-name mybackupgroup \
   	--options "OptionName=SQLSERVER_BACKUP_RESTORE, \
   	  OptionSettings=[{Name=IAM_ROLE_ARN,Value=arn:aws:iam::account-id:role/role-name}]"
   ```

   Untuk Windows:

   ```
   aws rds add-option-to-option-group ^
   	--option-group-name mybackupgroup ^
   	--options "[{\"OptionName\": \"SQLSERVER_BACKUP_RESTORE\", ^
   	\"OptionSettings\": [{\"Name\": \"IAM_ROLE_ARN\", ^
   	\"Value\": \"arn:aws:iam::account-id:role/role-name"}]}]" ^
   	--apply-immediately
   ```
**catatan**  
Saat menggunakan command prompt Windows, Anda harus meng-escape tanda kutip ganda (") dalam kode JSON dengan memberikan garis miring terbalik (\$1) di depannya.

1. Terapkan grup opsi ke instans DB.  
**Example**  

   Untuk Linux, macOS, atau Unix:

   ```
   aws rds modify-db-instance \
   	--db-instance-identifier mydbinstance \
   	--option-group-name mybackupgroup \
   	--apply-immediately
   ```

   Untuk Windows:

   ```
   aws rds modify-db-instance ^
   	--db-instance-identifier mydbinstance ^
   	--option-group-name mybackupgroup ^
   	--apply-immediately
   ```

## Mengubah pengaturan opsi pencadangan dan pemulihan native
<a name="Appendix.SQLServer.Options.BackupRestore.ModifySettings"></a>

Setelah mengaktifkan opsi pencadangan dan pemulihan native, Anda dapat mengubah pengaturan untuk opsi tersebut. Untuk informasi cara mengubah pengaturan opsi selengkapnya, lihat [Memodifikasi pengaturan opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption).

## Menghapus opsi pencadangan dan pemulihan native
<a name="Appendix.SQLServer.Options.BackupRestore.Remove"></a>

Anda dapat menonaktifkan pencadangan dan pemulihan native dengan menghapus opsi dari instans DB Anda. Setelah menghapus opsi pencadangan dan pemulihan native, Anda tidak perlu memulai ulang instans DB. 

Untuk menghapus opsi pencadangan dan pemulihan native dari instans DB, lakukan salah satu langkah berikut: 
+ Hapus opsi dari grup opsi miliknya. Perubahan ini akan memengaruhi semua instans DB yang menggunakan grup opsi. Untuk informasi lebih lanjut, lihat [Menghapus opsi dari grup opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Ubah instans DB lalu tentukan grup opsi lain yang tidak menyertakan opsi pencadangan dan pemulihan native. Perubahan ini akan memengaruhi satu instans DB. Anda dapat menentukan grup opsi default (kosong) atau grup opsi kustom lain. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md). 

# Dukungan untuk Enkripsi Data Transparan di SQL Server
<a name="Appendix.SQLServer.Options.TDE"></a>

Amazon RDS mendukung penggunaan Enkripsi Data Transparan (TDE) untuk mengenkripsi data tersimpan di instans DB Anda yang menjalankan Microsoft SQL Server. TDE mengenkripsi data secara otomatis sebelum ditulis ke penyimpanan, dan mendekripsi data secara otomatis saat data dibaca dari penyimpanan. 

Amazon RDS mendukung TDE untuk versi dan edisi SQL Server berikut:
+ SQL Server 2022 Standard dan Enterprise Edition
+ SQL Server 2019 Standard dan Enterprise Edition
+ SQL Server 2017 Enterprise Edition
+ SQL Server 2016 Enterprise Edition

**catatan**  
RDS untuk SQL Server tidak mendukung TDE untuk database read-only.

Enkripsi Data Transparan untuk SQL Server menyediakan manajemen kunci enkripsi dengan menggunakan arsitektur kunci dua tingkat. Sertifikat, yang dihasilkan dari kunci utama basis data, digunakan untuk melindungi kunci enkripsi data. Kunci enkripsi basis data melakukan enkripsi dan dekripsi data yang sebenarnya pada basis data pengguna. Amazon RDS mencadangkan dan mengelola kunci utama basis data dan sertifikat TDE.

Enkripsi Data transparan digunakan dalam skenario ketika Anda perlu mengenkripsi data sensitif. Misalnya, saat Anda harus memberikan file dan cadangan data kepada pihak ketiga, atau mengatasi masalah kepatuhan peraturan terkait keamanan. Anda tidak dapat mengenkripsi basis data sistem untuk SQL Server, seperti basis data `model` atau `master`.

Pembahasan mendetail tentang Enkripsi Data Transparan berada di luar cakupan panduan ini, tetapi pastikan bahwa Anda memahami kekuatan dan kelemahan keamanan dari setiap algoritma dan kunci enkripsi. Untuk informasi tentang Enkripsi Data Transparan untuk SQL Server, lihat [Transparent Data Encryption (TDE)](http://msdn.microsoft.com/en-us/library/bb934049.aspx) di dokumentasi Microsoft.

**Topics**
+ [Mengaktifkan TDE untuk RDS for SQL Server](#TDE.Enabling)
+ [Mengenkripsi data untuk Server RDS SQL](TDE.Encrypting.md)
+ [Mencadangkan dan memulihkan sertifikat TDE pada RDS for SQL Server](TDE.BackupRestoreRDS.md)
+ [Mencadangkan dan memulihkan sertifikat TDE untuk basis data on-premise](TDE.BackupRestoreOnPrem.md)
+ [Menonaktifkan TDE untuk RDS for SQL Server](TDE.Disabling.md)

## Mengaktifkan TDE untuk RDS for SQL Server
<a name="TDE.Enabling"></a>

Untuk mengaktifkan Enkripsi Data Transparan untuk instans DB RDS for SQL Server, tentukan opsi TDE dalam grup opsi RDS yang dikaitkan dengan instans DB tersebut:

1. Tentukan apakah instans DB Anda sudah dikaitkan dengan grup opsi yang memiliki opsi TDE. Untuk melihat grup opsi yang terkait dengan instans DB, gunakan konsol RDS, [describe-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI perintah, atau [Deskripsikan DBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) operasi API.

1.  Jika instans DB tidak dikaitkan dengan grup opsi yang TDE-nya diaktifkan, Anda memiliki dua pilihan. Anda dapat membuat grup opsi dan menambahkan opsi TDE, atau menyesuaikan grup opsi yang sudah dikaitkan untuk menambahkannya.
**catatan**  
Dalam konsol RDS, opsi ini bernama `TRANSPARENT_DATA_ENCRYPTION`. Di API AWS CLI dan RDS, `TDE` dinamai.

   Untuk informasi tentang membuat atau menyesuaikan grup opsi, lihat [Menggunakan grup opsi](USER_WorkingWithOptionGroups.md). Untuk informasi tentang menambahkan opsi ke grup opsi, lihat [Menambahkan opsi ke grup opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1.  Kaitkan instans DB dengan grup opsi yang memiliki opsi TDE. Untuk informasi tentang mengaitkan instans DB dengan grup opsi, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

### Pertimbangan grup opsi
<a name="TDE.Options"></a>

Opsi TDE adalah opsi yang persisten. Anda tidak dapat menghapusnya dari grup opsi kecuali semua instans DB dan cadangan tidak lagi terkait dengan grup opsi. Setelah Anda menambahkan opsi TDE ke grup opsi, grup opsi hanya dapat dikaitkan dengan instans DB yang menggunakan TDE. Untuk informasi selengkapnya tentang opsi yang persisten dalam grup opsi, lihat [Gambaran umum grup opsi](USER_WorkingWithOptionGroups.md#Overview.OptionGroups). 

Karena opsi TDE adalah opsi yang persisten, Anda dapat mengalami konflik antara grup opsi dan instans DB yang terkait. Anda dapat mengalami konflik dalam situasi berikut:
+ Grup opsi saat ini memiliki opsi TDE, dan Anda menggantinya dengan grup opsi yang tidak memiliki opsi TDE.
+ Anda memulihkan dari snapshot DB ke instans DB baru yang tidak memiliki grup opsi yang berisi opsi TDE. Untuk informasi selengkapnya tentang skenario ini, lihat [Pertimbangan untuk grup opsi](USER_CopySnapshot.md#USER_CopySnapshot.Options). 

### Pertimbangan performa SQL Server
<a name="TDE.Perf"></a>

Penggunaan Enkripsi Data Transparan dapat memengaruhi performa instans DB SQL Server.

Performa basis data yang tidak terenkripsi juga dapat terdegradasi jika basis data tersebut berada di instans DB yang memiliki setidaknya satu basis data terenkripsi. Oleh karena itu, sebaiknya Anda menyimpan basis data terenkripsi dan tidak terenkripsi di instans DB terpisah.

# Mengenkripsi data untuk Server RDS SQL
<a name="TDE.Encrypting"></a>

Ketika TDE opsi ditambahkan ke grup opsi, Amazon RDS menghasilkan sertifikat yang digunakan dalam proses enkripsi. Anda kemudian dapat menggunakan sertifikat untuk menjalankan SQL pernyataan yang mengenkripsi data dalam database pada instans DB.

Contoh berikut menggunakan sertifikat RDS -created yang dipanggil `RDSTDECertificateName` untuk mengenkripsi database yang disebut. `myDatabase`

```
 1. ---------- Turning on TDE -------------
 2. 
 3. -- Find an RDS TDE certificate to use
 4. USE [master]
 5. GO
 6. SELECT name FROM sys.certificates WHERE name LIKE 'RDSTDECertificate%'
 7. GO
 8. 
 9. USE [myDatabase]
10. GO
11. -- Create a database encryption key (DEK) using one of the certificates from the previous step
12. CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256
13. ENCRYPTION BY SERVER CERTIFICATE [RDSTDECertificateName]
14. GO
15. 
16. -- Turn on encryption for the database
17. ALTER DATABASE [myDatabase] SET ENCRYPTION ON
18. GO
19. 
20. -- Verify that the database is encrypted
21. USE [master]
22. GO
23. SELECT name FROM sys.databases WHERE is_encrypted = 1
24. GO
25. SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys
26. GO
```

Waktu yang diperlukan untuk mengenkripsi database SQL Server menggunakan TDE tergantung pada beberapa faktor. Ini termasuk ukuran instans DB, apakah instance menggunakan IOPS penyimpanan Provisioned, jumlah data, dan faktor lainnya.

# Mencadangkan dan memulihkan sertifikat TDE pada RDS for SQL Server
<a name="TDE.BackupRestoreRDS"></a>

RDS for SQL Server menyediakan prosedur tersimpan untuk mencadangkan, memulihkan, dan menghapus sertifikat TDE. RDS for SQL Server juga menyediakan fungsi untuk melihat sertifikat TDE pengguna yang dipulihkan.

Sertifikat TDE pengguna digunakan untuk memulihkan basis data ke RDS for SQL Server yang on-premise dan TDE-nya diaktifkan. Sertifikat ini memiliki awalan `UserTDECertificate_`. Setelah memulihkan basis data, dan sebelum membuatnya tersedia untuk digunakan, RDS menyesuaikan basis data yang TDE-nya diaktifkan untuk menggunakan sertifikat TDE yang dihasilkan RDS. Sertifikat ini memiliki awalan `RDSTDECertificate`.

Sertifikat TDE pengguna tetap berada di instans DB RDS for SQL Server, kecuali jika Anda menghapusnya menggunakan prosedur tersimpan `rds_drop_tde_certificate`. Untuk informasi selengkapnya, lihat [Menghapus sertifikat TDE yang dipulihkan](#TDE.BackupRestoreRDS.Drop).

Anda dapat menggunakan sertifikat TDE pengguna untuk memulihkan basis data lain dari instans DB sumber. Basis data untuk memulihkan harus menggunakan sertifikat TDE yang sama dan TDE-nya diaktifkan. Anda tidak perlu mengimpor (memulihkan) sertifikat yang sama lagi. 

**Topics**
+ [Prasyarat](#TDE.BackupRestoreRDS.Prereqs)
+ [Batasan](#TDE.Limitations)
+ [Mencadangkan sertifikat TDE](#TDE.BackupRestoreRDS.Backup)
+ [Memulihkan sertifikat TDE](#TDE.BackupRestoreRDS.Restore)
+ [Melihat sertifikat TDE yang dipulihkan](#TDE.BackupRestoreRDS.Show)
+ [Menghapus sertifikat TDE yang dipulihkan](#TDE.BackupRestoreRDS.Drop)

## Prasyarat
<a name="TDE.BackupRestoreRDS.Prereqs"></a>

Sebelum Anda dapat mencadangkan atau memulihkan sertifikat TDE pada RDS for SQL Server, pastikan untuk melakukan tugas-tugas berikut. Tiga yang pertama dijelaskan dalam [Menyiapkan pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Enabling.md).

1. Buat bucket tujuan umum Amazon S3 atau bucket direktori untuk menyimpan file untuk mencadangkan dan memulihkan.

   Sebaiknya Anda menggunakan bucket terpisah untuk pencadangan basis data dan untuk pencadangan sertifikat TDE.

1. Buat peran IAM untuk mencadangkan dan memulihkan file.

   Peran IAM harus berupa pengguna dan administrator untuk AWS KMS key.

   Saat menggunakan bucket direktori, tidak ada izin tambahan yang diperlukan selain izin yang diperlukan untuk [Membuat peran IAM secara manual untuk pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM) bucket direktori.

   Saat menggunakan sumber daya S3, peran IAM juga memerlukan izin berikut selain izin yang diperlukan untuk: [Membuat peran IAM secara manual untuk pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)
   + `s3:GetBucketAcl`, `s3:GetBucketLocation`, dan `s3:ListBucket` pada sumber daya bucket S3

1. Tambahkan opsi `SQLSERVER_BACKUP_RESTORE` ke grup opsi di instans DB Anda.

   Ini merupakan tambahan dari opsi `TRANSPARENT_DATA_ENCRYPTION` (`TDE`).

1. Pastikan Anda memiliki kunci KMS enkripsi simetris. Anda memiliki opsi berikut:
   + Anda dapat menggunakan kunci KMS yang sudah ada di akun Anda. Tidak ada tindakan lebih lanjut yang diperlukan.
   + Jika Anda tidak memiliki kunci KMS enkripsi simetris yang ada di akun Anda, buat kunci KMS dengan mengikuti petunjuk di [Membuat kunci](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) di *Panduan Developer AWS Key Management Service *.

1. Aktifkan integrasi Amazon S3 untuk mentransfer file antara instans DB dan Amazon S3.

   Untuk informasi selengkapnya tentang mengaktifkan integrasi Amazon S3, lihat. [Mengintegrasikan instans DB Amazon RDS for SQL Server dengan Amazon S3](User.SQLServer.Options.S3-integration.md)

   Perhatikan bahwa bucket direktori tidak didukung untuk integrasi S3. Langkah ini hanya diperlukan untuk[Mencadangkan dan memulihkan sertifikat TDE untuk basis data on-premise](TDE.BackupRestoreOnPrem.md).

## Batasan
<a name="TDE.Limitations"></a>

Penggunaan prosedur tersimpan untuk mencadangkan dan memulihkan sertifikat TDE memiliki batasan sebagai berikut:
+ Opsi `SQLSERVER_BACKUP_RESTORE` dan `TRANSPARENT_DATA_ENCRYPTION` (`TDE`) harus ditambahkan ke grup opsi yang Anda kaitkan dengan instans DB.
+ Pencadangan dan pemulihan sertifikat TDE tidak didukung pada instans DB Multi-AZ.
+ Membatalkan pencadangan dan pemulihan sertifikat TDE tidak didukung.
+ Anda tidak dapat menggunakan sertifikat TDE pengguna untuk enkripsi TDE basis data lain di instans DB RDS for SQL Server Anda. Anda dapat menggunakannya hanya untuk memulihkan basis data lain dari instans DB sumber yang TDE-nya diaktifkan dan yang menggunakan sertifikat TDE yang sama.
+ Anda hanya dapat menghapus sertifikat TDE pengguna.
+ Jumlah maksimum sertifikat TDE pengguna yang didukung pada RDS adalah 10. Jika jumlahnya melebihi 10, hapus sertifikat TDE yang tidak digunakan dan coba lagi.
+ Nama sertifikat harus diisi dan tidak boleh kosong.
+ Saat memulihkan sertifikat, nama sertifikat tidak dapat menyertakan kata kunci `RDSTDECERTIFICATE`, dan harus dimulai dengan awalan `UserTDECertificate_`.
+ Parameter `@certificate_name` hanya dapat menyertakan karakter berikut: a-z, 0-9, @, \$1, \$1, dan garis bawah (\$1).
+ Ekstensi file untuk `@certificate_file_s3_arn` harus .cer (peka huruf besar kecil).
+ Ekstensi file untuk `@private_key_file_s3_arn` harus .pvk (peka huruf besar kecil).
+ Metadata S3 untuk file kunci privat harus menyertakan tag `x-amz-meta-rds-tde-pwd`. Untuk informasi selengkapnya, lihat [Mencadangkan dan memulihkan sertifikat TDE untuk basis data on-premise](TDE.BackupRestoreOnPrem.md).
+ RDS untuk SQL Server tidak mendukung penggunaan kunci lintas akun untuk TDE.

## Mencadangkan sertifikat TDE
<a name="TDE.BackupRestoreRDS.Backup"></a>

Untuk mencadangkan sertifikat TDE, gunakan prosedur tersimpan `rds_backup_tde_certificate`. Ini memiliki sintaks berikut.

```
EXECUTE msdb.dbo.rds_backup_tde_certificate
    @certificate_name='UserTDECertificate_certificate_name | RDSTDECertificatetimestamp',
    @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer',
    @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk',
    @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id',
    [@overwrite_s3_files=0|1];
```

Parameter berikut diperlukan:
+ `@certificate_name` – Nama sertifikat TDE yang akan dicadangkan.
+ `@certificate_file_s3_arn` – Amazon Resource Name (ARN) tujuan untuk file cadangan sertifikat di Amazon S3.
+ `@private_key_file_s3_arn` – S3 ARN tujuan file kunci privat yang mengamankan sertifikat TDE.
+ `@kms_password_key_arn` – ARN kunci KMS simetris yang digunakan untuk mengenkripsi kata sandi kunci privat.

Parameter berikut bersifat opsional:
+ `@overwrite_s3_files` – Menunjukkan apakah akan menimpa file kunci privat dan sertifikat yang ada di S3:
  + `0` – Tidak menimpa file yang ada. Nilai ini adalah default.

    Mengatur `@overwrite_s3_files` ke 0 akan menghasilkan kesalahan jika file sudah ada.
  + `1` – Menimpa file yang sudah ada dengan nama yang ditentukan, meskipun itu bukan file cadangan.

**Example pencadangan sertifikat TDE**  

```
EXECUTE msdb.dbo.rds_backup_tde_certificate
    @certificate_name='RDSTDECertificate20211115T185333',
    @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer',
    @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk',
    @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE',
    @overwrite_s3_files=1;
```

## Memulihkan sertifikat TDE
<a name="TDE.BackupRestoreRDS.Restore"></a>

Anda dapat menggunakan prosedur tersimpan `rds_restore_tde_certificate` untuk memulihkan (mengimpor) sertifikat TDE pengguna. Ini memiliki sintaks berikut.

```
EXECUTE msdb.dbo.rds_restore_tde_certificate
    @certificate_name='UserTDECertificate_certificate_name',
    @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer',
    @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk',
    @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id';
```

Parameter berikut diperlukan:
+ `@certificate_name` – Nama sertifikat TDE yang akan dipulihkan. Nama harus dimulai dengan awalan `UserTDECertificate_`.
+ `@certificate_file_s3_arn` – S3 ARN file cadangan yang digunakan untuk memulihkan sertifikat TDE.
+ `@private_key_file_s3_arn` – S3 ARN file cadangan kunci privat untuk sertifikat TDE yang akan dipulihkan.
+ `@kms_password_key_arn` – ARN kunci KMS simetris yang digunakan untuk mengenkripsi kata sandi kunci privat.

**Example pemulihan sertifikat TDE**  

```
EXECUTE msdb.dbo.rds_restore_tde_certificate
    @certificate_name='UserTDECertificate_myTDEcertificate',
    @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer',
    @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk',
    @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE';
```

## Melihat sertifikat TDE yang dipulihkan
<a name="TDE.BackupRestoreRDS.Show"></a>

Anda dapat menggunakan fungsi `rds_fn_list_user_tde_certificates` untuk melihat sertifikat TDE pengguna yang dipulihkan (diimpor). Ini memiliki sintaks berikut.

```
SELECT * FROM msdb.dbo.rds_fn_list_user_tde_certificates();
```

Output-nya seperti berikut. Tidak semua kolom ditampilkan di sini.


|  |  |  |  |  |  |  |  |  |  |  | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| name | certificate\$1id | principal\$1id | pvt\$1key\$1encryption\$1type\$1desc | issuer\$1name | cert\$1serial\$1number | thumbprint | subject | start\$1date | expiry\$1date | pvt\$1key\$1last\$1backup\$1date | 
| UserTDECertificate\$1tde\$1cert | 343 | 1 | ENCRYPTED\$1BY\$1MASTER\$1KEY | AnyCompany Shipping | 79 3e 57 a3 69 fd 1d 9e 47 2c 32 67 1d 9c ca af | 0x6BB218B34110388680B FE1BA2D86C695096485B5 | AnyCompany Shipping | 2022-04-05 19:49:45.0000000 | 2023-04-05 19:49:45.0000000 | NULL | 

## Menghapus sertifikat TDE yang dipulihkan
<a name="TDE.BackupRestoreRDS.Drop"></a>

Untuk menghapus sertifikat TDE pengguna yang dipulihkan (diimpor) yang tidak Anda gunakan, gunakan prosedur tersimpan `rds_drop_tde_certificate`. Ini memiliki sintaks berikut.

```
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_certificate_name';
```

Parameter berikut diperlukan:
+ `@certificate_name` – Nama sertifikat TDE yang akan dihapus.

Anda hanya dapat menghapus sertifikat TDE yang dipulihkan (diimpor). Anda tidak dapat menghapus sertifikat yang dihasilkan RDS.

**Example penghapusan sertifikat TDE**  

```
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate';
```

# Mencadangkan dan memulihkan sertifikat TDE untuk basis data on-premise
<a name="TDE.BackupRestoreOnPrem"></a>

Anda dapat mencadangkan sertifikat TDE untuk basis data on-premise, lalu memulihkannya ke RDS for SQL Server. Anda juga dapat memulihkan sertifikat TDE RDS for SQL Server ke instans DB on-premise.

**catatan**  
RDS untuk SQL Server tidak mendukung penggunaan kunci lintas akun untuk TDE.

Prosedur berikut mencadangkan sertifikat TDE dan kunci privat. Kunci privat dienkripsi menggunakan kunci data yang dihasilkan dari kunci KMS enkripsi simetris Anda.

**Untuk mencadangkan sertifikat TDE on-premise**

1. Hasilkan kunci data menggunakan AWS CLI [generate-data-key](https://docs.aws.amazon.com/cli/latest/reference/kms/generate-data-key.html)perintah.

   ```
   aws kms generate-data-key \
       --key-id my_KMS_key_ID \
       --key-spec AES_256
   ```

   Output-nya seperti berikut.

   ```
   {
   "CiphertextBlob": "AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B
   BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ
   2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==",
   "Plaintext": "U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0=",
   "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-00ee-99ff-88dd-aa11bb22cc33"
   }
   ```

   Anda dapat menggunakan output teks biasa pada langkah berikutnya sebagai kata sandi kunci privat.

1. Cadangkan sertifikat TDE Anda seperti yang ditunjukkan dalam contoh berikut.

   ```
   BACKUP CERTIFICATE myOnPremTDEcertificate TO FILE = 'D:\tde-cert-backup.cer'
   WITH PRIVATE KEY (
   FILE = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\cert-backup-key.pvk',
   ENCRYPTION BY PASSWORD = 'U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0=');
   ```

1. Simpan file cadangan sertifikat ke bucket sertifikat Amazon S3.

1. Simpan file cadangan kunci privat ke bucket sertifikat S3 Anda, dengan tag berikut di metadata file:
   + Kunci – `x-amz-meta-rds-tde-pwd`
   + Nilai – Nilai `CiphertextBlob` dari menghasilkan kunci data, seperti pada contoh berikut.

     ```
     AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B
     BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ
     2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==
     ```

Prosedur berikut memulihkan sertifikat TDE RDS for SQL Server ke instans DB on-premise. Anda menyalin dan memulihkan sertifikat TDE pada instans DB tujuan menggunakan cadangan sertifikat, file kunci privat yang sesuai, dan kunci data. Sertifikat yang dipulihkan dienkripsi oleh kunci utama basis data server baru. 

**Untuk memulihkan sertifikat TDE**

1. Salin file cadangan sertifikat TDE dan file kunci privat dari Amazon S3 ke instans tujuan. Untuk informasi selengkapnya tentang menyalin file dari Amazon S3, lihat [Mentransfer file antara RDS for SQL Server dan Amazon S3](Appendix.SQLServer.Options.S3-integration.using.md).

1. Gunakan kunci KMS Anda untuk mendekripsi teks sandi output guna mengambil teks biasa dari kunci data. Teks sandi berada di metadata S3 file cadangan kunci privat.

   ```
   aws kms decrypt \
       --key-id my_KMS_key_ID \
       --ciphertext-blob fileb://exampleCiphertextFile | base64 -d \
       --output text \
       --query Plaintext
   ```

   Anda dapat menggunakan output teks biasa pada langkah berikutnya sebagai kata sandi kunci privat.

1. Gunakan perintah SQL berikut untuk memulihkan sertifikat TDE Anda.

   ```
   CREATE CERTIFICATE myOnPremTDEcertificate FROM FILE='D:\tde-cert-backup.cer'
   WITH PRIVATE KEY (FILE = N'D:\tde-cert-key.pvk',
   DECRYPTION BY PASSWORD = 'plain_text_output');
   ```

Untuk informasi lebih lanjut tentang dekripsi KMS, lihat [mendekripsi](https://docs.aws.amazon.com/cli/latest/reference/kms/decrypt.html) di bagian KMS untuk *Referensi Perintah AWS CLI *.

Setelah sertifikat TDE dipulihkan pada instans DB tujuan, Anda dapat memulihkan basis data yang terenkripsi dengan sertifikat tersebut.

**catatan**  
Anda dapat menggunakan sertifikat TDE yang sama untuk mengenkripsi beberapa basis data SQL Server pada instans DB sumber. Untuk memigrasikan beberapa basis data ke instans tujuan, salin sertifikat TDE yang terkait dengan basis data tersebut ke instans tujuan cukup satu kali.

# Menonaktifkan TDE untuk RDS for SQL Server
<a name="TDE.Disabling"></a>

Untuk menonaktifkan TDE untuk instans DB RDS for SQL Server, pertama-tama pastikan bahwa tidak ada objek terenkripsi yang tersisa di instans DB. Untuk melakukannya, dekripsi atau hapus objek. Jika ada objek terenkripsi di instans DB, Anda tidak dapat menonaktifkan TDE untuk instans DB. Jika sertifikat TDE pengguna untuk enkripsi dipulihkan (diimpor), maka itu harus dijatuhkan. Saat Anda menggunakan konsol untuk menghapus opsi TDE dari grup opsi, konsol menunjukkan bahwa TDE sedang dalam proses. Selain itu, peristiwa kesalahan terjadi jika grup opsi dikaitkan dengan instans DB atau snapshot DB terenkripsi.

Contoh berikut menghapus enkripsi TDE dari basis data yang bernama `customerDatabase`. 

```
 1. ------------- Removing TDE ----------------
 2. 
 3. USE [customerDatabase]
 4. GO
 5. 
 6. -- Turn off encryption of the database
 7. ALTER DATABASE [customerDatabase]
 8. SET ENCRYPTION OFF
 9. GO
10. 
11. -- Wait until the encryption state of the database becomes 1. The state is 5 (Decryption in progress) for a while
12. SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys
13. GO
14. 
15. -- Drop the DEK used for encryption
16. DROP DATABASE ENCRYPTION KEY
17. GO
18. 
19. -- Drop a user TDE certificate if it was restored (imported)
20. EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_certificate_name';
21. 
22. -- Alter to SIMPLE Recovery mode so that your encrypted log gets truncated
23. USE [master]
24. GO
25. ALTER DATABASE [customerDatabase] SET RECOVERY SIMPLE
26. GO
```

Saat semua objek didekripsi, Anda memiliki dua opsi:

1. Anda dapat menyesuaikan instans DB untuk dikaitkan dengan grup opsi tanpa opsi TDE.

1. Anda dapat menghapus opsi TDE dari grup opsi.

# SQLAudit Server
<a name="Appendix.SQLServer.Options.Audit"></a>

Di AmazonRDS, Anda dapat mengaudit database Microsoft SQL Server dengan menggunakan mekanisme audit SQL Server bawaan. Anda dapat membuat audit dan spesifikasi audit dengan cara yang sama seperti Anda membuatnya untuk server basis data on-premise. 

RDSmengunggah log audit yang telah selesai ke bucket S3 Anda, menggunakan IAM peran yang Anda berikan. Jika Anda mengaktifkan retensi, RDS simpan log audit Anda pada instans DB Anda selama periode waktu yang dikonfigurasi.

Untuk informasi selengkapnya, lihat [Audit SQL Server (mesin database)](https://docs.microsoft.com/sql/relational-databases/security/auditing/sql-server-audit-database-engine) di dokumentasi Microsoft SQL Server.

## SQLAudit Server dengan Aliran Aktivitas Database
<a name="Appendix.SQLServer.DAS.Audit"></a>

Anda dapat menggunakan Database Activity Streams RDS untuk mengintegrasikan peristiwa Audit SQL Server dengan alat pemantauan aktivitas database dari Imperva, McAfee, dan. IBM Untuk informasi selengkapnya tentang audit dengan Aliran Aktivitas Database untuk RDS SQL Server, lihat [Pengauditan di Microsoft SQL Server](DBActivityStreams.md#DBActivityStreams.Overview.SQLServer-auditing) 

**Topics**
+ [SQLAudit Server dengan Aliran Aktivitas Database](#Appendix.SQLServer.DAS.Audit)
+ [Support untuk SQL Server Audit](#Appendix.SQLServer.Options.Audit.Support)
+ [Menambahkan SQL Server Audit ke opsi instans DB](Appendix.SQLServer.Options.Audit.Adding.md)
+ [Menggunakan Audit SQL Server](Appendix.SQLServer.Options.Audit.CreateAuditsAndSpecifications.md)
+ [Melihat log audit](Appendix.SQLServer.Options.Audit.AuditRecords.md)
+ [Menggunakan Audit SQL Server dengan instans Multi-AZ](#Appendix.SQLServer.Options.Audit.Multi-AZ)
+ [Mengonfigurasi bucket S3](Appendix.SQLServer.Options.Audit.S3bucket.md)
+ [Membuat peran IAM secara manual untuk SQL Server Audit](Appendix.SQLServer.Options.Audit.IAM.md)

## Support untuk SQL Server Audit
<a name="Appendix.SQLServer.Options.Audit.Support"></a>

Di AmazonRDS, dimulai dengan SQL Server 2016, semua edisi SQL Server mendukung audit tingkat server, dan edisi Enterprise juga mendukung audit tingkat database. Dimulai dengan SQL Server 2016 (13.x)SP1, semua edisi mendukung audit tingkat server dan tingkat database. Untuk informasi selengkapnya, lihat [Audit SQL Server (mesin database)](https://docs.microsoft.com/sql/relational-databases/security/auditing/sql-server-audit-database-engine) dalam dokumentasi SQL Server.

RDSmendukung konfigurasi pengaturan opsi berikut untuk SQL Server Audit. 


| Pengaturan opsi | Nilai valid | Deskripsi | 
| --- | --- | --- | 
| IAM\$1ROLE\$1ARN | Nama Sumber Daya Amazon (ARN) yang valid dalam formatarn:aws:iam::account-id:role/role-name. | ARNIAMPeran yang memberikan akses ke bucket S3 tempat Anda ingin menyimpan log audit Anda. Untuk informasi selengkapnya, lihat [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam) di Referensi Umum AWS. | 
| S3\$1BUCKET\$1ARN | Valid ARN dalam format arn:aws:s3:::amzn-s3-demo-bucket atau arn:aws:s3:::amzn-s3-demo-bucket/key-prefix | Bucket ARN untuk S3 tempat Anda ingin menyimpan log audit Anda. | 
| ENABLE\$1COMPRESSION | true atau false | Mengontrol kompresi log audit. Secara default, kompresi diaktifkan (ditetapkan ke true). | 
| RETENTION\$1TIME | 0 untuk 840 | Waktu retensi (dalam jam) bahwa catatan audit SQL Server disimpan pada RDS instans Anda. Secara default, retensi dinonaktifkan. | 

# Menambahkan SQL Server Audit ke opsi instans DB
<a name="Appendix.SQLServer.Options.Audit.Adding"></a>

Mengaktifkan SQL Server Audit memerlukan dua langkah: mengaktifkan opsi di instans DB, dan mengaktifkan fitur di dalam SQL Server. Proses untuk menambahkan opsi SQL Server Audit ke instans DB adalah sebagai berikut: 

1. Buat grup opsi baru, atau salin atau ubah grup opsi yang sudah ada. 

1. Tambahkan dan konfigurasikan semua opsi yang diperlukan.

1. Kaitkan grup opsi dengan instans DB.

Setelah menambahkan opsi SQL Server Audit, Anda tidak perlu memulai ulang instans DB. Begitu grup opsi aktif, Anda dapat membuat audit dan menyimpan log audit di bucket S3. 

**Untuk menambah dan mengonfigurasi SQL Server Audit pada grup opsi instans DB**

1. Pilih salah satu cara berikut:
   + Gunakan grup opsi yang sudah ada.
   + Buat grup opsi DB kustom dan gunakan grup opsi tersebut. Untuk informasi selengkapnya, lihat [Membuat grup opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Tambahkan opsi **SQLSERVER\$1AUDIT** ke grup opsi, lalu konfigurasikan pengaturan opsi. Untuk informasi cara menambahkan aturan selengkapnya, lihat [Menambahkan opsi ke grup opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 
   + Untuk **peran IAM**, Anda dapat memilih peran tersebut jika sudah memiliki peran IAM dengan kebijakan yang diperlukan. Untuk membuat peran IAM baru, pilih **Buat Peran Baru**. Untuk informasi tentang kebijakan yang diperlukan, lihat [Membuat peran IAM secara manual untuk SQL Server Audit](Appendix.SQLServer.Options.Audit.IAM.md).
   + Untuk **Pilih tujuan S3**, pilih opsi ini jika Anda sudah memiliki bucket S3 yang ingin Anda gunakan. Untuk membuat bucket S3, pilih **Buat Bucket S3 Baru**. 
   + Untuk **Mengaktifkan Kompresi**, biarkan opsi ini dipilih untuk mengompresi file audit. Kompresi diaktifkan secara default. Untuk menonaktifkan kompresi, hapus **Aktifkan Kompresi**. 
   + Untuk **Retensi log audit**, pilih opsi ini untuk menyimpan catatan audit di instans DB. Tentukan waktu retensi dalam jam. Waktu retensi maksimum adalah 35 hari.

1. Terapkan grup opsi ke instans DB baru atau yang sudah ada. Pilih salah satu cara berikut:
   + Jika Anda membuat instans DB baru, terapkan grup opsi ketika Anda meluncurkan instans. 
   + Di instans DB yang sudah ada, terapkan grup opsi dengan mengubah instans lalu memberikan grup opsi baru. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md). 

## Memodifikasi opsi SQL Server Audit
<a name="Appendix.SQLServer.Options.Audit.Modifying"></a>

Setelah mengaktifkan opsi SQL Server Audit, Anda dapat mengubah pengaturan. Untuk informasi cara mengubah pengaturan opsi, lihat [Memodifikasi pengaturan opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption).

## Menghapus SQL Server Audit dari opsi instans DB
<a name="Appendix.SQLServer.Options.Audit.Removing"></a>

Anda dapat mematikan fitur SQL Server Audit dengan menonaktifkan audit lalu menghapus opsi. 

**Untuk menghapus audit**

1. Nonaktifkan semua pengaturan audit di dalam SQL Server. Untuk mempelajari tempat audit dijalankan, buat kueri pada tampilan katalog keamanan SQL Server. Untuk informasi selengkapnya, lihat [Security catalog views](https://docs.microsoft.com/sql/relational-databases/system-catalog-views/security-catalog-views-transact-sql) dalam dokumentasi Microsoft SQL Server. 

1. Hapus opsi SQL Server Audit dari instans DB. Pilih salah satu cara berikut: 
   + Hapus opsi SQL Server Audit dari grup opsi yang digunakan instans DB. Perubahan ini akan memengaruhi semua instans DB yang menggunakan kelompok opsi yang sama. Untuk informasi selengkapnya, lihat [Menghapus opsi dari grup opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption).
   + Ubah instans DB, lalu pilih grup opsi tanpa opsi SQL Server Audit. Perubahan ini hanya memengaruhi instans DB yang Anda ubah. Anda dapat menentukan grup opsi default (kosong) atau grup opsi kustom lain. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

1. Setelah menghapus opsi SQL Server Audit dari instans DB, Anda tidak perlu memulai ulang proses tersebut. Hapus file audit yang tidak diperlukan dari bucket S3 Anda.

# Menggunakan Audit SQL Server
<a name="Appendix.SQLServer.Options.Audit.CreateAuditsAndSpecifications"></a>

Anda dapat mengendalikan audit server, spesifikasi audit server, dan spesifikasi audit basis data dengan cara yang sama seperti Anda mengontrolnya untuk server basis data on-premise.

## Membuat audit
<a name="Appendix.SQLServer.Options.Audit.CreateAudits"></a>

Anda membuat audit server dengan cara yang sama seperti Anda membuatnya untuk server basis data on-premise. Untuk informasi tentang cara membuat audit server, lihat [CREATESERVERAUDIT](https://docs.microsoft.com/sql/t-sql/statements/create-server-audit-transact-sql)di dokumentasi Microsoft SQL Server.

Untuk menghindari kesalahan, patuhi batasan berikut:
+ Jangan melebihi jumlah maksimum audit server yang didukung per instans, yaitu 50. 
+ Instruksikan SQL Server untuk menulis data ke file biner.
+ Jangan gunakan `RDS_` sebagai awalan dalam nama audit server.
+ Untuk `FILEPATH`, tentukan `D:\rdsdbdata\SQLAudit`.
+ Untuk `MAXSIZE`, tentukan ukuran antara 2 MB dan 50 MB.
+ Jangan mengonfigurasi `MAX_ROLLOVER_FILES` atau `MAX_FILES`.
+ Jangan mengkonfigurasi SQL Server untuk mematikan instans DB jika gagal menulis catatan audit.

## Membuat spesifikasi audit
<a name="Appendix.SQLServer.Options.Audit.CreateSpecifications"></a>

Anda membuat spesifikasi audit server dan spesifikasi audit basis data dengan cara yang sama seperti Anda membuatnya untuk server basis data on-premise. Untuk informasi tentang membuat spesifikasi audit, lihat [CREATESERVERAUDITSPECIFICATION](https://docs.microsoft.com/sql/t-sql/statements/create-server-audit-specification-transact-sql)dan [CREATEDATABASEAUDITSPECIFICATION](https://docs.microsoft.com/sql/t-sql/statements/create-database-audit-specification-transact-sql)di dokumentasi Microsoft SQL Server.

Untuk menghindari kesalahan, jangan gunakan `RDS_` sebagai awalan dalam nama spesifikasi audit basis data atau spesifikasi audit server. 

# Melihat log audit
<a name="Appendix.SQLServer.Options.Audit.AuditRecords"></a>

Log audit Anda disimpan di `D:\rdsdbdata\SQLAudit`.

Setelah SQL Server selesai menulis ke file log audit—saat file mencapai batas ukurannya—Amazon RDS mengunggah file ke bucket S3 Anda. Jika retensi diaktifkan, Amazon RDS memindahkan file ke folder retensi:`D:\rdsdbdata\SQLAudit\transmitted`. 

Untuk informasi cara mengonfigurasi retensi, lihat [Menambahkan SQL Server Audit ke opsi instans DB](Appendix.SQLServer.Options.Audit.Adding.md).

Catatan audit disimpan di instans DB hingga file log audit diunggah. Anda dapat melihat catatan audit dengan menjalankan perintah berikut.

```
SELECT   * 
	FROM     msdb.dbo.rds_fn_get_audit_file
	             ('D:\rdsdbdata\SQLAudit\*.sqlaudit'
	             , default
	             , default )
```

Anda dapat menggunakan perintah yang sama untuk melihat catatan audit di folder penyimpanan Anda dengan mengubah filter ke `D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit`.

```
SELECT   * 
	FROM     msdb.dbo.rds_fn_get_audit_file
	             ('D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit'
	             , default
	             , default )
```

## Menggunakan Audit SQL Server dengan instans Multi-AZ
<a name="Appendix.SQLServer.Options.Audit.Multi-AZ"></a>

Untuk instans Multi-AZ, proses mengirim file log audit ke Amazon S3 serupa dengan proses untuk instans AZ Tunggal. Namun, ada beberapa perbedaan penting: 
+ Objek spesifikasi audit basis data direplikasi ke semua simpul.
+ Audit server dan spesifikasi audit server tidak direplikasi ke simpul sekunder. Sebaliknya, Anda harus membuat atau memodifikasinya secara manual.

Untuk mencatat audit server atau spesifikasi audit server dari kedua simpul:

1. Buat audit server atau spesifikasi audit server di simpul primer.

1. Gagal ke node sekunder dan buat audit server atau spesifikasi audit server dengan nama yang sama dan GUID pada node sekunder. Gunakan `AUDIT_GUID` parameter untuk menentukanGUID.

# Mengonfigurasi bucket S3
<a name="Appendix.SQLServer.Options.Audit.S3bucket"></a>

file log audit secara otomatis diunggah dari instans DB ke bucket S3 Anda. Pembatasan berikut berlaku untuk bucket S3 yang Anda gunakan sebagai target untuk file audit: 
+ Itu harus di AWS Wilayah dan AWS akun yang sama dengan instans DB.
+ Ini tidak boleh dibuka untuk umum.
+ Pemilik bucket juga harus menjadi pemilik peran IAM.
+ Peran IAM Anda harus memiliki izin untuk kunci KMS yang dikelola pelanggan yang terkait dengan enkripsi sisi server bucket S3.

Kunci target yang digunakan untuk menyimpan data mematuhi skema penamaan ini: `amzn-s3-demo-bucket/key-prefix/instance-name/audit-name/node_file-name.ext` 

**catatan**  
Anda menetapkan nama bucket dan nilai awalan kunci dengan setelan opsi (`S3_BUCKET_ARN`).

Skema tersebut terdiri atas elemen-elemen berikut:
+ ***amzn-s3-demo-bucket*** – Nama bucket S3 Anda.
+ **`key-prefix`** – Awalan kunci kustom yang ingin Anda gunakan untuk log audit.
+ **`instance-name`** – Nama instans Amazon RDS Anda.
+ **`audit-name`** – Nama audit.
+ **`node`** – Pengidentifikasi simpul yang merupakan sumber log audit (`node1` atau `node2`). Ada satu simpul untuk instans AZ Tunggal dan dua simpul replikasi untuk instans Multi-AZ. Ini bukan simpul primer dan sekunder karena peran primer dan sekunder berubah seiring waktu. Sebaliknya, pengidentifikasi simpul merupakan label sederhana. 
  + **`node1`** – simpul replikasi pertama (AZ Tunggal hanya memiliki satu simpul).
  + **`node2`** – simpul replikasi kedua (Multi-AZ memiliki dua simpul).
+ **`file-name`** – Nama file target. Nama file diambil apa adanya dari SQL Server.
+ **`ext`** – Ekstensi file (`zip` atau `sqlaudit`):
  + **`zip`** – Jika kompresi diaktifkan (default).
  + **`sqlaudit`** – Jika kompresi dinonaktifkan.

# Membuat peran IAM secara manual untuk SQL Server Audit
<a name="Appendix.SQLServer.Options.Audit.IAM"></a>

Biasanya, ketika Anda membuat opsi baru, Konsol Manajemen AWS membuat peran IAM dan kebijakan kepercayaan IAM untuk Anda. Namun, Anda dapat secara manual membuat peran IAM baru untuk digunakan dengan SQL Server Audit sehingga Anda dapat menyesuaikannya dengan persyaratan tambahan yang mungkin Anda miliki. Untuk melakukan ini, Anda membuat peran IAM dan mendelegasikan izin sehingga layanan Amazon RDS dapat menggunakan bucket Amazon S3. Saat Anda membuat peran IAM ini, Anda dapat memberikan kebijakan kepercayaan dan izin. Dengan adanya kebijakan kepercayaan, Amazon RDS dapat mengambil peran ini. Kebijakan izin menentukan tindakan yang dapat dilakukan peran ini. Untuk informasi selengkapnya, lihat [Membuat peran untuk mendelegasikan izin ke AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) di *Panduan Pengguna AWS Identity and Access Management*. 

Anda dapat menggunakan contoh di bagian ini untuk membuat kebijakan hubungan kepercayaan dan izin yang Anda butuhkan.

Contoh berikut menunjukkan hubungan kepercayaan untuk SQL Server Audit. Contoh tersebut menggunakan *pengguna utama layanan* `rds.amazonaws.com` untuk memungkinkan RDS menulis ke bucket S3. *Pengguna utama layanan* adalah pengidentifikasi yang digunakan untuk memberikan izin layanan. Setiap kali Anda mengizinkan akses ke `rds.amazonaws.com` dengan cara ini, Anda mengizinkan RDS untuk melakukan tindakan atas nama Anda. Untuk informasi pengguna utama layanan selengkapnya, lihat [Elemen kebijakan AWS JSON: Pengguna Utama](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html).

**Example hubungan kepercayaan untuk SQL Server Audit**    
****  

```
{
	    "Version":"2012-10-17",		 	 	 
	    "Statement": [
	        {
	            "Effect": "Allow",
	            "Principal": {
	                "Service": "rds.amazonaws.com"
	            },
	            "Action": "sts:AssumeRole"
	        }
	    ]
	}
```

Sebaiknya gunakan kunci konteks kondisi global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) dan [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) dalam hubungan kepercayaan berbasis sumber daya untuk membatasi izin layanan ke sumber daya tertentu. Ini adalah cara yang paling efektif untuk melindungi dari [masalah confused deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

Anda dapat menggunakan kedua kunci konteks kondisi global tersebut dan nilai `aws:SourceArn` berisi ID akun. Dalam hal ini, nilai `aws:SourceAccount` dan akun dalam nilai `aws:SourceArn` harus menggunakan ID akun yang sama saat digunakan dalam pernyataan yang sama.
+ Gunakan `aws:SourceArn` jika Anda menginginkan akses lintas layanan untuk satu sumber daya.
+ Gunakan `aws:SourceAccount` jika Anda ingin mengizinkan sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas layanan.

Dalam hubungan kepercayaan, pastikan Anda menggunakan kunci konteks kondisi global `aws:SourceArn` dengan Amazon Resource Name (ARN) dari sumber daya yang mengakses peran tersebut. Untuk SQL Server Audit, pastikan Anda menyertakan grup opsi DB dan instans DB, seperti yang ditunjukkan pada contoh berikut.

**Example hubungan kepercayaan dengan kunci konteks kondisi global untuk SQL Server Audit**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "rds.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": [
                        "arn:aws:rds:Region:my_account_ID:db:db_instance_identifier",
                        "arn:aws:rds:Region:my_account_ID:og:option_group_name"
                    ]
                }
            }
        }
    ]
}
```

Dalam contoh kebijakan izin untuk SQL Server Audit berikut, kami menentukan ARN untuk bucket Amazon S3. Anda dapat menggunakan ARNs untuk mengidentifikasi akun, pengguna, atau peran tertentu yang ingin Anda beri akses. Untuk informasi selengkapnya tentang penggunaan ARNs, lihat [nama sumber daya Amazon (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).

**Example kebijakan izin untuk SQL Server Audit**    
****  

```
{
	    "Version":"2012-10-17",		 	 	 
	    "Statement": [
	        {
	            "Effect": "Allow",
	            "Action": "s3:ListAllMyBuckets",
	            "Resource": "*"
	        },
	        {
	            "Effect": "Allow",
	            "Action": [
	                "s3:ListBucket",
	                "s3:GetBucketACL",
	                "s3:GetBucketLocation"
	            ],
	            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
	        },
	        {
	            "Effect": "Allow",
	            "Action": [
	                "s3:PutObject",
	                "s3:ListMultipartUploadParts",
	                "s3:AbortMultipartUpload"
	            ],
	            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*"
	        }
	    ]
	}
```

**catatan**  
`s3:ListAllMyBuckets`Tindakan ini diperlukan untuk memverifikasi bahwa AWS akun yang sama memiliki bucket S3 dan instance SQL Server DB. Tindakan tersebut mencantumkan nama bucket di akun.  
Namespace bucket S3 bersifat global. Jika Anda tidak sengaja menghapus bucket, pengguna lain dapat membuat bucket dengan nama yang sama di akun lain. Kemudian, data SQL Server Audit akan ditulis ke bucket baru.

# Support untuk Layanan Analisis SQL Server di Amazon RDS untuk SQL Server
<a name="Appendix.SQLServer.Options.SSAS"></a>

Microsoft SQL Server Analysis Services (SSAS) adalah bagian dari Microsoft Business Intelligence (MSBI) suite. SSASadalah pemrosesan analitik online (OLAP) dan alat penambangan data yang diinstal dalam SQL Server. Anda gunakan SSAS untuk menganalisis data untuk membantu membuat keputusan bisnis. SSASberbeda dari database relasional SQL Server karena SSAS dioptimalkan untuk kueri dan perhitungan umum dalam lingkungan intelijen bisnis.

 Anda dapat mengaktifkan SSAS instans DB yang ada atau baru. Layanan ini diinstal pada instans DB yang sama dengan mesin basis data Anda. Untuk informasi selengkapnyaSSAS, lihat [dokumentasi Layanan Analisis](https://docs.microsoft.com/en-us/analysis-services) Microsoft.

Amazon RDS mendukung SSAS SQL Server Standard dan Enterprise Editions pada versi berikut:
+ Mode tabel:
  + SQLServer 2019, versi 15.00.4043.16.v1 dan lebih tinggi
  + SQLServer 2017, versi 14.00.3223.3.v1 dan lebih tinggi
  + SQLServer 2016, versi 13.00.5426.0.v1 dan lebih tinggi
+ Mode multidimensi:
  + SQLServer 2019, versi 15.00.4153.1.v1 dan lebih tinggi
  + SQLServer 2017, versi 14.00.3381.3.v1 dan lebih tinggi
  + SQLServer 2016, versi 13.00.5882.1.v1 dan lebih tinggi

**Contents**
+ [Batasan](#SSAS.Limitations)
+ [Menghidupkan SSAS](SSAS.Enabling.md)
  + [Membuat grup opsi untuk SSAS](SSAS.Enabling.md#SSAS.OptionGroup)
  + [Menambahkan SSAS opsi ke grup opsi](SSAS.Enabling.md#SSAS.Add)
  + [Mengaitkan grup opsi dengan instans DB](SSAS.Enabling.md#SSAS.Apply)
  + [Mengizinkan akses masuk ke grup VPC keamanan Anda](SSAS.Enabling.md#SSAS.InboundRule)
  + [Mengaktifkan integrasi Amazon S3](SSAS.Enabling.md#SSAS.EnableS3)
+ [Menyebarkan SSAS proyek di Amazon RDS](SSAS.Deploy.md)
+ [Memantau status tugas deployment](SSAS.Monitor.md)
+ [Menggunakan SSAS di Amazon RDS](SSAS.Use.md)
  + [Menyiapkan pengguna yang diautentikasi Windows untuk SSAS](SSAS.Use.md#SSAS.Use.Auth)
  + [Menambahkan pengguna domain sebagai administrator basis data](SSAS.Use.md#SSAS.Admin)
  + [Membuat SSAS proxy](SSAS.Use.md#SSAS.Use.Proxy)
  + [Penjadwalan pemrosesan SSAS basis data menggunakan SQL Server Agent](SSAS.Use.md#SSAS.Use.Schedule)
  + [Mencabut SSAS akses dari proxy](SSAS.Use.md#SSAS.Use.Revoke)
+ [Mencadangkan database SSAS](SSAS.Backup.md)
+ [Memulihkan database SSAS](SSAS.Restore.md)
  + [Memulihkan instans DB dengan waktu yang ditentukan](SSAS.Restore.md#SSAS.PITR)
+ [Mengubah SSAS mode](SSAS.ChangeMode.md)
+ [Mematikan SSAS](SSAS.Disable.md)
+ [Memecahkan masalah SSAS](SSAS.Trouble.md)

## Batasan
<a name="SSAS.Limitations"></a>

Batasan berikut berlaku untuk menggunakan SSAS on RDS for SQL Server:
+ RDSuntuk SQL Server mendukung berjalan SSAS dalam mode Tabular atau Multidimensi. Untuk informasi selengkapnya, lihat [Comparing tabular and multidimensional solutions](https://docs.microsoft.com/en-us/analysis-services/comparing-tabular-and-multidimensional-solutions-ssas) dalam dokumentasi Microsoft.
+ Anda hanya dapat menggunakan satu SSAS mode pada satu waktu. Sebelum mengubah mode, pastikan untuk menghapus semua SSAS database.

  Untuk informasi selengkapnya, lihat [Mengubah SSAS mode](SSAS.ChangeMode.md).
+ Instans Multi-AZ tidak didukung.
+ Instans harus menggunakan Active Directory yang dikelola sendiri atau AWS Directory Service for Microsoft Active Directory untuk SSAS otentikasi. Untuk informasi selengkapnya, lihat [Menggunakan Active Directory dengan RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).
+ Pengguna tidak diberi akses administrator SSAS server, tetapi mereka dapat diberikan akses administrator tingkat database.
+ Satu-satunya port yang didukung untuk mengakses SSAS adalah 2383.
+ Anda tidak dapat melakukan deployment pada proyek secara langsung. Kami menyediakan prosedur RDS tersimpan untuk melakukan ini. Untuk informasi selengkapnya, lihat [Menyebarkan SSAS proyek di Amazon RDS](SSAS.Deploy.md).
+ Pemrosesan selama deployment tidak didukung.
+ Menggunakan berkas .xmla untuk penerapan tidak didukung.
+ SSASfile input proyek dan file output cadangan database hanya dapat berada di `D:\S3` folder pada instance DB.

# Menghidupkan SSAS
<a name="SSAS.Enabling"></a>

Gunakan proses berikut untuk mengaktifkan SSAS instans DB Anda:

1. Buat grup opsi baru, atau pilih grup opsi yang sudah ada.

1. Tambahkan opsi `SSAS` untuk grup opsi.

1. Kaitkan grup opsi tersebut dengan instans DB.

1. Izinkan akses masuk ke grup keamanan virtual private cloud (VPC) untuk port SSAS listener.

1. Aktifkan Integrasi Amazon S3.

## Membuat grup opsi untuk SSAS
<a name="SSAS.OptionGroup"></a>

Gunakan Konsol Manajemen AWS atau AWS CLI untuk membuat grup opsi yang sesuai dengan mesin SQL Server dan versi instans DB yang Anda rencanakan untuk digunakan.

**catatan**  
Anda juga dapat menggunakan grup opsi yang ada jika itu untuk mesin dan versi SQL Server yang benar.

### Konsol
<a name="SSAS.OptionGroup.Console"></a>

Prosedur konsol berikut membuat grup opsi untuk SQL Server Standard Edition 2017.

**Untuk membuat grup opsi**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih **Buat grup**.

1. Di panel **Buat grup opsi**, lakukan hal berikut:

   1. Untuk **Nama**, masukkan nama untuk grup opsi yang unik di dalam AWS akun Anda, seperti**ssas-se-2017**. Nama tersebut hanya boleh berisi huruf, angka, dan tanda hubung.

   1. Untuk **Deskripsi**, masukkan deskripsi singkat grup opsi, seperti **SSAS option group for SQL Server SE 2017**. Deskripsi digunakan untuk tampilan.

   1. Untuk **Mesin**, pilih **sqlserver-se**.

   1. Untuk **Versi mesin utama**, pilih **14.00**.

1. Pilih **Buat**.

### CLI
<a name="SSAS.OptionGroup.CLI"></a>

CLIContoh berikut membuat grup opsi untuk SQL Server Standard Edition 2017.

**Untuk membuat grup opsi**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-option-group \
      --option-group-name ssas-se-2017 \
      --engine-name sqlserver-se \
      --major-engine-version 14.00 \
      --option-group-description "SSAS option group for SQL Server SE 2017"
  ```

  Untuk Windows:

  ```
  aws rds create-option-group ^
      --option-group-name ssas-se-2017 ^
      --engine-name sqlserver-se ^
      --major-engine-version 14.00 ^
      --option-group-description "SSAS option group for SQL Server SE 2017"
  ```

## Menambahkan SSAS opsi ke grup opsi
<a name="SSAS.Add"></a>

Selanjutnya, gunakan Konsol Manajemen AWS atau AWS CLI untuk menambahkan `SSAS` opsi ke grup opsi.

### Konsol
<a name="SSAS.Add.Console"></a>

**Untuk menambahkan SSAS opsi**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi yang baru saja Anda buat.

1. Pilih **Tambah opsi**.

1. Di bawah **Rincian opsi**, pilih **SSAS****nama Opsi**.

1. Pada **Pengaturan opsi**, lakukan berikut ini:

   1. Untuk **memori Max**, masukkan nilai dalam kisaran 10-80.

      **Memori maks** menentukan ambang batas atas di atas yang SSAS mulai melepaskan memori lebih agresif untuk memberi ruang bagi permintaan yang sedang berjalan, dan juga permintaan prioritas tinggi baru. Jumlah tersebut adalah persentase dari total memori instans DB. Nilai yang diizinkan adalah 10–80, dan default-nya adalah 45.

   1. Untuk **Mode**, pilih mode SSAS server, **Tabular** atau **Multidimensional**.

      Jika Anda tidak melihat pengaturan opsi **Mode**, itu berarti mode Multidimensi tidak didukung di AWS Wilayah Anda. Untuk informasi selengkapnya, lihat [Batasan](Appendix.SQLServer.Options.SSAS.md#SSAS.Limitations).

      **Tabel** adalah default.

   1. Untuk **grup Keamanan**, pilih grup VPC keamanan untuk dikaitkan dengan opsi.
**catatan**  
Port untuk mengaksesSSAS, 2383, sudah terisi sebelumnya.

1. Di bagian **Penjadwalan**, pilih apakah akan menambahkan opsi langsung atau pada masa pemeliharaan berikutnya.

1. Pilih **Tambah opsi**.

### CLI
<a name="SSAS.Add.CLI"></a>

**Untuk menambahkan SSAS opsi**

1. Buat JSON file, misalnya`ssas-option.json`, dengan parameter berikut:
   + `OptionGroupName` – Nama grup opsi yang Anda buat atau pilih sebelumnya (`ssas-se-2017` dalam contoh berikut).
   + `Port`— Port yang Anda gunakan untuk mengaksesSSAS. Satu-satunya port yang didukung adalah 2383.
   + `VpcSecurityGroupMemberships`— Keanggotaan untuk grup VPC keamanan untuk instans RDS DB Anda.
   + `MAX_MEMORY`— Ambang batas atas yang SSAS seharusnya mulai melepaskan memori lebih agresif untuk memberi ruang bagi permintaan yang sedang berjalan, dan juga permintaan prioritas tinggi baru. Jumlah tersebut adalah persentase dari total memori instans DB. Nilai yang diizinkan adalah 10–80, dan default-nya adalah 45.
   + `MODE`— Mode SSAS server, salah satu `Tabular` atau`Multidimensional`. `Tabular`adalah default.

     Jika Anda menerima kesalahan bahwa pengaturan `MODE` opsi tidak valid, itu berarti mode Multidimensi tidak didukung di AWS Wilayah Anda. Untuk informasi selengkapnya, lihat [Batasan](Appendix.SQLServer.Options.SSAS.md#SSAS.Limitations).

   Berikut ini adalah contoh JSON file dengan pengaturan SSAS opsi.

   ```
   {
   "OptionGroupName": "ssas-se-2017",
   "OptionsToInclude": [
   	{
   	"OptionName": "SSAS",
   	"Port": 2383,
   	"VpcSecurityGroupMemberships": ["sg-0abcdef123"],
   	"OptionSettings": [{"Name":"MAX_MEMORY","Value":"60"},{"Name":"MODE","Value":"Multidimensional"}]
   	}],
   "ApplyImmediately": true
   }
   ```

1. Tambahkan opsi `SSAS` ke grup opsi.  
**Example**  

   Untuk Linux, macOS, atau Unix:

   ```
   aws rds add-option-to-option-group \
       --cli-input-json file://ssas-option.json \
       --apply-immediately
   ```

   Untuk Windows:

   ```
   aws rds add-option-to-option-group ^
       --cli-input-json file://ssas-option.json ^
       --apply-immediately
   ```

## Mengaitkan grup opsi dengan instans DB
<a name="SSAS.Apply"></a>

Anda dapat menggunakan konsol atau CLI untuk mengaitkan grup opsi dengan instans DB Anda.

### Konsol
<a name="SSAS.Apply.Console"></a>

Kaitkan grup opsi dengan instans DB baru atau yang sudah ada:
+ Untuk instans DB baru, kaitkan grup opsi dengan instans DB saat Anda meluncurkan instans tersebut. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+ Untuk instans DB yang ada, ubah instans tersebut dan kaitkan grup opsi baru dengannya. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).
**catatan**  
Jika Anda menggunakan instance yang ada, itu harus sudah memiliki domain Active Directory dan AWS Identity and Access Management (IAM) peran yang terkait dengannya. Jika Anda membuat instance baru, tentukan domain dan IAM peran Active Directory yang ada. Untuk informasi selengkapnya, lihat [Menggunakan Active Directory dengan RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).

### CLI
<a name="SSAS.Apply.CLI"></a>

Anda dapat mengaitkan grup opsi Anda dengan instans DB baru atau yang sudah ada.

**catatan**  
Jika Anda menggunakan instance yang ada, itu harus sudah memiliki domain dan IAM peran Direktori Aktif yang terkait dengannya. Jika Anda membuat instance baru, tentukan domain dan IAM peran Active Directory yang ada. Untuk informasi selengkapnya, lihat [Menggunakan Active Directory dengan RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).

**Membuat instans DB yang menggunakan grup opsi Anda**
+ Tentukan tipe mesin DB yang sama dan versi utama yang Anda gunakan saat membuat grup opsi.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier myssasinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 14.00.3223.3.v1 \
      --allocated-storage 100 \
      --manage-master-user-password \
      --master-username admin \
      --storage-type gp2 \
      --license-model li \
      --domain-iam-role-name my-directory-iam-role \
      --domain my-domain-id \
      --option-group-name ssas-se-2017
  ```

  Untuk Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier myssasinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 14.00.3223.3.v1 ^
      --allocated-storage 100 ^
      --manage-master-user-password ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --domain-iam-role-name my-directory-iam-role ^
      --domain my-domain-id ^
      --option-group-name ssas-se-2017
  ```

**Memodifikasi instans DB dan mengaitkan grup opsi**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier myssasinstance \
      --option-group-name ssas-se-2017 \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier myssasinstance ^
      --option-group-name ssas-se-2017 ^
      --apply-immediately
  ```

## Mengizinkan akses masuk ke grup VPC keamanan Anda
<a name="SSAS.InboundRule"></a>

Buat aturan masuk untuk port SSAS listener yang ditentukan dalam grup VPC keamanan yang terkait dengan instans DB Anda. Untuk informasi selengkapnya tentang menyiapkan grup keamanan, lihat [Memberikan akses ke instans DB di VPC Anda dengan membuat grup keamanan](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup).

## Mengaktifkan integrasi Amazon S3
<a name="SSAS.EnableS3"></a>

Untuk mengunduh file konfigurasi model ke host Anda untuk deployment, gunakan integrasi Amazon S3. Untuk informasi selengkapnya, lihat [Mengintegrasikan instans DB Amazon RDS for SQL Server dengan Amazon S3](User.SQLServer.Options.S3-integration.md). 

# Menyebarkan SSAS proyek di Amazon RDS
<a name="SSAS.Deploy"></a>

PadaRDS, Anda tidak dapat menerapkan SSAS proyek secara langsung dengan menggunakan SQL Server Management Studio (SSMS). Untuk menyebarkan proyek, gunakan prosedur yang RDS disimpan.

**catatan**  
Gunakan file .xmla untuk deployment tidak didukung.

Sebelum Anda men-deploy proyek, pastikan hal-hal berikut ini:
+ Integrasi Amazon S3 diaktifkan. Untuk informasi selengkapnya, lihat [Mengintegrasikan instans DB Amazon RDS for SQL Server dengan Amazon S3](User.SQLServer.Options.S3-integration.md).
+ Pengaturan konfigurasi `Processing Option` diatur ke `Do Not Process`. Pengaturan ini berarti tidak ada pemrosesan yang terjadi setelah deployment.
+ Anda memiliki file `myssasproject.asdatabase` dan `myssasproject.deploymentoptions`. Mereka secara otomatis dihasilkan ketika Anda membangun SSAS proyek.

**Untuk menyebarkan SSAS proyek di RDS**

1. Unduh file `.asdatabase` (SSASmodel) dari bucket S3 Anda ke instans DB Anda, seperti yang ditunjukkan pada contoh berikut. Untuk informasi lebih lanjut tentang parameter unduhan, lihat [Mengunduh file dari bucket Amazon S3 ke instans DB SQL Server](Appendix.SQLServer.Options.S3-integration.using.md#Appendix.SQLServer.Options.S3-integration.using.download).

   ```
   exec msdb.dbo.rds_download_from_s3 
   @s3_arn_of_file='arn:aws:s3:::bucket_name/myssasproject.asdatabase', 
   [@rds_file_path='D:\S3\myssasproject.asdatabase'],
   [@overwrite_file=1];
   ```

1. Unduh file `.deploymentoptions` dari bucket S3 Anda ke instans DB Anda.

   ```
   exec msdb.dbo.rds_download_from_s3
   @s3_arn_of_file='arn:aws:s3:::bucket_name/myssasproject.deploymentoptions', 
   [@rds_file_path='D:\S3\myssasproject.deploymentoptions'],
   [@overwrite_file=1];
   ```

1. Deploy proyek.

   ```
   exec msdb.dbo.rds_msbi_task
   @task_type='SSAS_DEPLOY_PROJECT',
   @file_path='D:\S3\myssasproject.asdatabase';
   ```

# Memantau status tugas deployment
<a name="SSAS.Monitor"></a>

Untuk melacak status tugas deployment (atau download) Anda, panggil fungsi `rds_fn_task_status`. Pelacakan status membutuhkan dua parameter. Parameter pertama harus selalu `NULL` karena tidak berlaku untukSSAS. Parameter kedua menerima ID tugas. 

Untuk melihat daftar semua tugas, tetapkan parameter pertama ke `NULL` dan parameter kedua ke `0`, seperti yang ditunjukkan dalam contoh berikut.

```
SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,0);
```

Untuk melihat daftar semua tugas, tetapkan parameter pertama ke `NULL` dan parameter kedua ke ID tugas, seperti yang ditunjukkan dalam contoh berikut.

```
SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,42);
```

Fungsi `rds_fn_task_status` menampilkan informasi berikut.


| Parameter output | Deskripsi | 
| --- | --- | 
| `task_id` | ID tugas. | 
| `task_type` | UntukSSAS, tugas dapat memiliki jenis tugas berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/SSAS.Monitor.html)  | 
| `database_name` | Tidak berlaku untuk SSAS tugas. | 
| `% complete` | Kemajuan tugas sebagai persentase. | 
| `duration (mins)` | Jumlah waktu yang dihabiskan untuk tugas, dalam menit. | 
| `lifecycle` |  Status tugas. Status yang mungkin adalah: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/SSAS.Monitor.html)  | 
| `task_info` | Informasi tambahan tentang tugas. Jika terjadi kesalahan selama pemrosesan, kolom ini akan memuat informasi tentang kesalahan tersebut. Untuk informasi selengkapnya, lihat [Memecahkan masalah SSAS](SSAS.Trouble.md). | 
| `last_updated` | Tanggal dan waktu status tugas terakhir diperbarui. | 
| `created_at` | Tanggal dan waktu tugas dibuat. | 
| `S3_object_arn` |  Tidak berlaku untuk SSAS tugas.  | 
| `overwrite_S3_backup_file` | Tidak berlaku untuk SSAS tugas. | 
| `KMS_master_key_arn` |  Tidak berlaku untuk SSAS tugas.  | 
| `filepath` |  Tidak berlaku untuk SSAS tugas.  | 
| `overwrite_file` |  Tidak berlaku untuk SSAS tugas.  | 
| `task_metadata` | Metadata yang terkait dengan tugas. SSAS | 

# Menggunakan SSAS di Amazon RDS
<a name="SSAS.Use"></a>

Setelah menerapkan SSAS proyek, Anda dapat langsung memproses OLAP database. SSMS

**Untuk digunakan SSAS pada RDS**

1. DiSSMS, sambungkan SSAS menggunakan nama pengguna dan kata sandi untuk domain Active Directory.

1. Perluas **Basis data**. SSASDatabase yang baru digunakan muncul.

1. Temukan string koneksi, dan perbarui nama pengguna dan kata sandi untuk memberikan akses ke SQL database sumber. Melakukan hal ini diperlukan untuk memproses SSAS objek.

   1. Untuk mode Tabel, lakukan hal berikut:

      1. Perluas tab **Koneksi**.

      1. Buka menu konteks (klik kanan) untuk , lalu pilih **Properti**.

      1. Perbarui nama pengguna dan kata sandi dalam string koneksi.

   1. Untuk mode Multidimensi, lakukan hal berikut:

      1. Perluas tab **Sumber Data**.

      1. Buka menu konteks (klik kanan) untuk objek sumber data, lalu pilih **Properti**.

      1. Perbarui nama pengguna dan kata sandi dalam string koneksi.

1. Buka menu konteks (klik kanan) untuk SSAS database yang Anda buat dan pilih **Process Database**.

   Bergantung pada ukuran data input, operasi pemrosesan akan memakan waktu beberapa menit untuk selesai.

**Topics**
+ [Menyiapkan pengguna yang diautentikasi Windows untuk SSAS](#SSAS.Use.Auth)
+ [Menambahkan pengguna domain sebagai administrator basis data](#SSAS.Admin)
+ [Membuat SSAS proxy](#SSAS.Use.Proxy)
+ [Penjadwalan pemrosesan SSAS basis data menggunakan SQL Server Agent](#SSAS.Use.Schedule)
+ [Mencabut SSAS akses dari proxy](#SSAS.Use.Revoke)

## Menyiapkan pengguna yang diautentikasi Windows untuk SSAS
<a name="SSAS.Use.Auth"></a>

Pengguna utama dapat (kadang dipanggil pengguna master) menggunakan contoh kode berikut untuk menyiapkan login yang diautentikasi Windows dan memberikan izin prosedur yang diperlukan. Melakukan hal ini memberikan izin kepada pengguna domain untuk menjalankan tugas SSAS pelanggan, menggunakan prosedur transfer file S3, membuat kredensyal, dan bekerja dengan proxy Agen Server. SQL Untuk informasi selengkapnya, lihat [Kredensial (mesin database)](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/credentials-database-engine?view=sql-server-ver15) dan [Membuat proxy Agen SQL Server](https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-sql-server-agent-proxy?view=sql-server-ver15) di dokumentasi Microsoft.

Anda dapat memberikan beberapa atau semua izin berikut sesuai kebutuhan kepada pengguna yang diautentikasi Windows.

**Example**  

```
-- Create a server-level domain user login, if it doesn't already exist
USE [master]
GO
CREATE LOGIN [mydomain\user_name] FROM WINDOWS
GO

-- Create domain user, if it doesn't already exist
USE [msdb]
GO
CREATE USER [mydomain\user_name] FOR LOGIN [mydomain\user_name]
GO

-- Grant necessary privileges to the domain user
USE [master]
GO
GRANT ALTER ANY CREDENTIAL TO [mydomain\user_name]
GO

USE [msdb]
GO
GRANT EXEC ON msdb.dbo.rds_msbi_task TO [mydomain\user_name] with grant option
GRANT SELECT ON msdb.dbo.rds_fn_task_status TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_task_status TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_cancel_task TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_download_from_s3 TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_upload_to_s3 TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_delete_from_filesystem TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_gather_file_details TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_add_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_update_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_grant_login_to_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_revoke_login_from_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_delete_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_enum_login_for_proxy to [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_enum_proxy_for_subsystem TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_sqlagent_proxy TO [mydomain\user_name] with grant option
ALTER ROLE [SQLAgentUserRole] ADD MEMBER [mydomain\user_name]
GO
```

## Menambahkan pengguna domain sebagai administrator basis data
<a name="SSAS.Admin"></a>

Anda dapat menambahkan pengguna domain sebagai administrator SSAS database dengan cara berikut:
+ Administrator database dapat menggunakan SSMS untuk membuat peran dengan `admin` hak istimewa, lalu menambahkan pengguna ke peran itu.
+ Anda dapat menggunakan prosedur penyimpanan berikut.

  ```
  exec msdb.dbo.rds_msbi_task
  @task_type='SSAS_ADD_DB_ADMIN_MEMBER',
  @database_name='myssasdb',
  @ssas_role_name='exampleRole',
  @ssas_role_member='domain_name\domain_user_name';
  ```

  Parameter-parameter berikut diperlukan:
  + `@task_type`— Jenis MSBI tugas, dalam hal ini`SSAS_ADD_DB_ADMIN_MEMBER`.
  + `@database_name`— Nama SSAS database tempat Anda memberikan hak administrator.
  + `@ssas_role_name`— Nama peran administrator SSAS database. Jika peran tersebut belum ada, ini akan dibuat.
  + `@ssas_role_member`— Pengguna SSAS database yang Anda tambahkan ke peran administrator.

## Membuat SSAS proxy
<a name="SSAS.Use.Proxy"></a>

Untuk dapat menjadwalkan pemrosesan SSAS database menggunakan SQL Server Agent, buat SSAS kredensi dan SSAS proxy. Jalankan prosedur ini sebagai pengguna yang diautentikasi Windows.

**Untuk membuat SSAS kredensyal**
+ Buat kredensial untuk proksi. Untuk melakukan ini, Anda dapat menggunakan SSMS atau SQL pernyataan berikut.

  ```
  USE [master]
  GO
  CREATE CREDENTIAL [SSAS_Credential] WITH IDENTITY = N'mydomain\user_name', SECRET = N'mysecret'
  GO
  ```
**catatan**  
`IDENTITY` harus merupakan kredensial login yang diautentikasi domain. Ganti `mysecret` dengan kata sandi untuk kredensial login yang diautentikasi domain.

**Untuk membuat SSAS proxy**

1. Gunakan SQL pernyataan berikut untuk membuat proxy.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_add_proxy @proxy_name=N'SSAS_Proxy',@credential_name=N'SSAS_Credential',@description=N''
   GO
   ```

1. Gunakan SQL pernyataan berikut untuk memberikan akses ke proxy ke pengguna lain.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name=N'SSAS_Proxy',@login_name=N'mydomain\user_name'
   GO
   ```

1. Gunakan SQL pernyataan berikut untuk memberikan SSAS subsistem akses ke proxy.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.rds_sqlagent_proxy @task_type='GRANT_SUBSYSTEM_ACCESS',@proxy_name='SSAS_Proxy',@proxy_subsystem='SSAS'
   GO
   ```

**Untuk melihat proksi dan izin pada proksi**

1. Gunakan SQL pernyataan berikut untuk melihat penerima hibah proxy.

   ```
   USE [msdb]
   GO
   EXEC sp_help_proxy
   GO
   ```

1. Gunakan SQL pernyataan berikut untuk melihat hibah subsistem.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_enum_proxy_for_subsystem
   GO
   ```

## Penjadwalan pemrosesan SSAS basis data menggunakan SQL Server Agent
<a name="SSAS.Use.Schedule"></a>

Setelah Anda membuat kredensi dan proxy dan memberikan SSAS akses ke proxy, Anda dapat membuat pekerjaan Agen SQL Server untuk menjadwalkan pemrosesan SSAS basis data.

**Untuk menjadwalkan pemrosesan SSAS basis data**
+ Gunakan SSMS atau T- SQL untuk membuat pekerjaan Agen SQL Server. Contoh berikut menggunakan T-SQL. Anda dapat lebih lanjut mengkonfigurasi jadwal pekerjaannya melalui SSMS atau T-SQL.
  + `@command`Parameter menguraikan perintah XML for Analysis (XMLA) yang akan dijalankan oleh pekerjaan Agen SQL Server. Contoh ini mengkonfigurasi pemrosesan database SSAS Multidimensional.
  + `@server`Parameter menguraikan nama SSAS server target dari pekerjaan Agen SQL Server.

    Untuk memanggil SSAS layanan dalam instance RDS DB yang sama di mana pekerjaan Agen SQL Server berada, gunakan`localhost:2383`.

    Untuk memanggil SSAS layanan dari luar instans RDS DB, gunakan RDS titik akhir. Anda juga dapat menggunakan titik akhir Kerberos Active Directory (AD) (`your-DB-instance-name.your-AD-domain-name`) jika instans RDS DB digabungkan dengan domain yang sama. Untuk instans DB eksternal, pastikan untuk mengonfigurasi grup VPC keamanan yang terkait dengan instans RDS DB dengan benar untuk koneksi yang aman.

  Anda dapat mengedit kueri lebih lanjut untuk mendukung berbagai XMLA operasi. Lakukan pengeditan baik dengan langsung memodifikasi SQL T-query atau dengan menggunakan SSMS UI berikut pembuatan pekerjaan Agen SQL Server.

  ```
  USE [msdb]
  GO
  DECLARE @jobId BINARY(16)
  EXEC msdb.dbo.sp_add_job @job_name=N'SSAS_Job', 
      @enabled=1, 
      @notify_level_eventlog=0, 
      @notify_level_email=0, 
      @notify_level_netsend=0, 
      @notify_level_page=0, 
      @delete_level=0, 
      @category_name=N'[Uncategorized (Local)]', 
      @job_id = @jobId OUTPUT
  GO
  EXEC msdb.dbo.sp_add_jobserver 
      @job_name=N'SSAS_Job', 
      @server_name = N'(local)'
  GO
  EXEC msdb.dbo.sp_add_jobstep @job_name=N'SSAS_Job', @step_name=N'Process_SSAS_Object', 
      @step_id=1, 
      @cmdexec_success_code=0, 
      @on_success_action=1, 
      @on_success_step_id=0, 
      @on_fail_action=2, 
      @on_fail_step_id=0, 
      @retry_attempts=0, 
      @retry_interval=0, 
      @os_run_priority=0, @subsystem=N'ANALYSISCOMMAND', 
      @command=N'<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
          <Parallel>
              <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                  xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" 
                  xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" 
                  xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" 
                  xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" 
                  xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" 
                  xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
                  <Object>
                      <DatabaseID>Your_SSAS_Database_ID</DatabaseID>
                  </Object>
                  <Type>ProcessFull</Type>
                  <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
              </Process>
          </Parallel>
      </Batch>', 
      @server=N'localhost:2383', 
      @database_name=N'master', 
      @flags=0, 
      @proxy_name=N'SSAS_Proxy'
  GO
  ```

## Mencabut SSAS akses dari proxy
<a name="SSAS.Use.Revoke"></a>

Anda dapat mencabut akses ke SSAS subsistem dan menghapus SSAS proxy menggunakan prosedur tersimpan berikut.

**Untuk mencabut akses dan menghapus proksi**

1. Mencabut akses subsistem.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.rds_sqlagent_proxy @task_type='REVOKE_SUBSYSTEM_ACCESS',@proxy_name='SSAS_Proxy',@proxy_subsystem='SSAS'
   GO
   ```

1. Mencabut izin pada proksi.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_revoke_login_from_proxy @proxy_name=N'SSAS_Proxy',@name=N'mydomain\user_name'
   GO
   ```

1. Hapus proksi.

   ```
   USE [msdb]
   GO
   EXEC dbo.sp_delete_proxy @proxy_name = N'SSAS_Proxy'
   GO
   ```

# Mencadangkan database SSAS
<a name="SSAS.Backup"></a>

Anda dapat membuat file cadangan SSAS database hanya di `D:\S3` folder pada instance DB. Untuk memindahkan file cadangan ke bucket S3, gunakan Amazon S3.

Anda dapat membuat cadangan SSAS database sebagai berikut:
+ Seorang pengguna domain dengan `admin` peran untuk database tertentu dapat digunakan SSMS untuk mencadangkan database ke `D:\S3` folder.

  Untuk informasi selengkapnya, lihat [Menambahkan pengguna domain sebagai administrator basis data](SSAS.Use.md#SSAS.Admin).
+ Anda dapat menggunakan prosedur tersimpan berikut. Prosedur yang disimpan ini tidak mendukung enkripsi.

  ```
  exec msdb.dbo.rds_msbi_task
  @task_type='SSAS_BACKUP_DB',
  @database_name='myssasdb',
  @file_path='D:\S3\ssas_db_backup.abf',
  [@ssas_apply_compression=1],
  [@ssas_overwrite_file=1];
  ```

  Parameter-parameter berikut diperlukan:
  + `@task_type`Jenis MSBI tugas, dalam hal ini`SSAS_BACKUP_DB`.
  + `@database_name`— Nama SSAS database yang Anda backup.
  + `@file_path`— Jalur untuk file SSAS cadangan. Ekstensi `.abf` diperlukan.

  Parameter berikut ini bersifat opsional:
  + `@ssas_apply_compression`— Apakah akan menerapkan kompresi SSAS cadangan. Nilai yang valid adalah 1 (Ya) dan 0 (Tidak).
  + `@ssas_overwrite_file`— Apakah akan menimpa file SSAS cadangan. Nilai yang valid adalah 1 (Ya) dan 0 (Tidak).

# Memulihkan database SSAS
<a name="SSAS.Restore"></a>

Gunakan prosedur tersimpan berikut untuk memulihkan SSAS database dari cadangan. 

Anda tidak dapat memulihkan database jika ada SSAS database yang ada dengan nama yang sama. Prosedur tersimpan untuk memulihkan tidak mendukung file cadangan terenkripsi.

```
exec msdb.dbo.rds_msbi_task
@task_type='SSAS_RESTORE_DB',
@database_name='mynewssasdb',
@file_path='D:\S3\ssas_db_backup.abf';
```

Parameter berikut yang diperlukan:
+ `@task_type`Jenis MSBI tugas, dalam hal ini`SSAS_RESTORE_DB`.
+ `@database_name`— Nama SSAS database baru yang Anda pulihkan.
+ `@file_path`— Jalur ke file SSAS cadangan.

## Memulihkan instans DB dengan waktu yang ditentukan
<a name="SSAS.PITR"></a>

Point-in-time recovery (PITR) tidak berlaku untuk SSAS database. Jika Anda melakukannyaPITR, hanya SSAS data dalam snapshot terakhir sebelum waktu yang diminta tersedia pada instance yang dipulihkan.

**Untuk memiliki up-to-date SSAS database pada instans DB yang dipulihkan**

1. Cadangkan SSAS database Anda ke `D:\S3` folder pada instance sumber.

1. Pindahkan file cadangan ke bucket S3.

1. Transfer file cadangan dari bucket S3 ke folder `D:\S3` di instans yang dipulihkan.

1. Jalankan prosedur tersimpan untuk mengembalikan SSAS database ke instance yang dipulihkan.

   Anda juga dapat memproses ulang SSAS proyek untuk memulihkan database.

# Mengubah SSAS mode
<a name="SSAS.ChangeMode"></a>

Anda dapat mengubah mode di mana SSAS berjalan, baik Tabular atau Multidimensional. Untuk mengubah mode, gunakan Konsol Manajemen AWS atau AWS CLI untuk mengubah pengaturan opsi di SSAS opsi.

**penting**  
Anda hanya dapat menggunakan satu SSAS mode pada satu waktu. Pastikan untuk menghapus semua SSAS database sebelum mengubah mode, atau Anda menerima kesalahan.

## Konsol
<a name="SSAS.ChangeMode.CON"></a>

Prosedur RDS konsol Amazon berikut mengubah SSAS mode ke Tabular dan menetapkan `MAX_MEMORY` parameter menjadi 70 persen.

**Untuk memodifikasi SSAS opsi**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi dengan opsi `SSAS` yang ingin Anda modifikasi (`ssas-se-2017` dalam contoh sebelumnya).

1. Pilih **Opsi ubah**.

1. Ubah pengaturan opsi:

   1. Untuk **Memori maks.**, masukkan **70**.

   1. Untuk **Mode**, pilih **Tabular**.

1. Pilih **Opsi ubah**.

## AWS CLI
<a name="SSAS.ChangeMode.CLI"></a>

 AWS CLI Contoh berikut mengubah SSAS mode ke Tabular dan menetapkan `MAX_MEMORY` parameter menjadi 70 persen.

Agar CLI perintah berfungsi, pastikan untuk menyertakan semua parameter yang diperlukan, bahkan jika Anda tidak memodifikasinya.

**Untuk memodifikasi SSAS opsi**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds add-option-to-option-group \
      --option-group-name ssas-se-2017 \
      --options "OptionName=SSAS,VpcSecurityGroupMemberships=sg-12345e67,OptionSettings=[{Name=MAX_MEMORY,Value=70},{Name=MODE,Value=Tabular}]" \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds add-option-to-option-group ^
      --option-group-name ssas-se-2017 ^
      --options OptionName=SSAS,VpcSecurityGroupMemberships=sg-12345e67,OptionSettings=[{Name=MAX_MEMORY,Value=70},{Name=MODE,Value=Tabular}] ^
      --apply-immediately
  ```

# Mematikan SSAS
<a name="SSAS.Disable"></a>

Untuk mematikanSSAS, hapus `SSAS` opsi dari grup opsinya.

**penting**  
Sebelum Anda menghapus `SSAS` opsi, hapus SSAS database Anda.  
Kami sangat menyarankan Anda mencadangkan SSAS database Anda sebelum menghapusnya dan menghapus opsi. `SSAS`

## Konsol
<a name="SSAS.Disable.Console"></a>

**Untuk menghapus SSAS opsi dari grup opsinya**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi dengan opsi `SSAS` yang ingin Anda hapus (`ssas-se-2017` dalam contoh sebelumnya).

1. Pilih **Hapus opsi**.

1. Di bawah **Opsi penghapusan, pilih Opsi SSAS****** **untuk** dihapus.

1. Di bagian **Langsung terapkan**, pilih **Ya** untuk segera menghapus opsi, atau **Tidak** untuk menghapusnya pada masa pemeliharaan berikutnya.

1. Pilih **Hapus**.

## AWS CLI
<a name="SSAS.Disable.CLI"></a>

**Untuk menghapus SSAS opsi dari grup opsinya**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds remove-option-from-option-group \
      --option-group-name ssas-se-2017 \
      --options SSAS \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name ssas-se-2017 ^
      --options SSAS ^
      --apply-immediately
  ```

# Memecahkan masalah SSAS
<a name="SSAS.Trouble"></a>

Anda mungkin mengalami masalah berikut saat menggunakanSSAS.


| Isu | Tipe | Saran pemecahan masalah | 
| --- | --- | --- | 
| Tidak dapat mengonfigurasi SSAS opsi. SSASMode yang diminta adalah new\$1mode, tetapi instance DB saat ini memiliki number current\$1mode basis data. Hapus database yang ada sebelum beralih ke new\$1mode modus. Untuk mendapatkan kembali akses ke current\$1mode modus penghapusan basis data, baik perbarui grup opsi DB saat ini, atau lampirkan grup opsi baru dengan %s sebagai nilai pengaturan MODE opsi untuk opsi. SSAS  | RDSacara | Anda tidak dapat mengubah SSAS mode jika Anda masih memiliki SSAS database yang menggunakan mode saat ini. Hapus SSAS database, lalu coba lagi. | 
| Tidak dapat menghapus SSAS opsi karena ada number ada mode basis data. SSASOpsi tidak dapat dihapus sampai semua SSAS database dihapus. Tambahkan SSAS opsi lagi, hapus semua SSAS database, dan coba lagi.  | RDSacara | Anda tidak dapat mematikan SSAS jika Anda masih memiliki SSAS database. Hapus SSAS database, lalu coba lagi. | 
| SSASOpsi tidak diaktifkan atau sedang dalam proses diaktifkan. Coba lagi nanti. | RDSprosedur tersimpan | Anda tidak dapat menjalankan prosedur SSAS tersimpan saat opsi dimatikan, atau saat sedang dihidupkan. | 
| SSASOpsi ini dikonfigurasi dengan tidak benar. Pastikan status keanggotaan grup opsi adalah “sinkronisasi”, dan tinjau log RDS peristiwa untuk pesan kesalahan SSAS konfigurasi yang relevan. Setelah penyelidikan ini, coba lagi. Jika kesalahan terus terjadi, hubungi AWS Support. | RDSprosedur tersimpan |  Anda tidak dapat menjalankan prosedur SSAS tersimpan saat keanggotaan grup opsi Anda tidak dalam `in-sync` status. Ini menempatkan SSAS opsi dalam status konfigurasi yang salah. Jika status keanggotaan grup opsi Anda berubah `failed` karena modifikasi SSAS opsi, ada dua kemungkinan alasan:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/SSAS.Trouble.html) Konfigurasikan ulang SSAS opsi, karena hanya RDS mengizinkan satu SSAS mode pada satu waktu, dan tidak mendukung penghapusan SSAS opsi dengan SSAS database yang ada. Periksa log RDS peristiwa untuk kesalahan konfigurasi untuk SSAS instance Anda, dan selesaikan masalah yang sesuai.  | 
| Penerapan gagal. Perubahan hanya dapat diterapkan di server yang berjalan di deployment\$1file\$1mode modus. Mode server saat ini adalah current\$1mode. | RDSprosedur tersimpan |  Anda tidak dapat melakukan deployment basis data Tabular ke server Multidimensi, atau basis data Multidimensi ke server Tabular. Pastikan Anda menggunakan file dengan mode yang benar, dan verifikasi bahwa pengaturan opsi `MODE` telah diatur ke nilai yang sesuai.  | 
| Pemulihan gagal. File cadangan hanya dapat dipulihkan pada server yang berjalan di restore\$1file\$1mode modus. Mode server saat ini adalah current\$1mode. | RDSprosedur tersimpan |  Anda tidak dapat mengembalikan basis data Tabular ke server Multidimensi, atau basis data Multidimensi ke server Tabular. Pastikan Anda menggunakan file dengan mode yang benar, dan verifikasi bahwa pengaturan opsi `MODE` telah diatur ke nilai yang sesuai.  | 
| Pemulihan gagal. File cadangan dan versi instans RDS DB tidak kompatibel. | RDSprosedur tersimpan |  Anda tidak dapat memulihkan SSAS database dengan versi yang tidak kompatibel dengan versi instans SQL Server. Untuk informasi selengkapnya, lihat [Compatibility levels for tabular models](https://docs.microsoft.com/en-us/analysis-services/tabular-models/compatibility-level-for-tabular-models-in-analysis-services) dan [Compatibility level of a multidimensional database](https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/compatibility-level-of-a-multidimensional-database-analysis-services) dalam dokumentasi Microsoft.  | 
| Pemulihan gagal. File cadangan yang ditentukan dalam operasi pemulihan rusak atau bukan file SSAS cadangan. Pastikan @rds\$1file\$1path diformat dengan benar. | RDSprosedur tersimpan |  Anda tidak dapat memulihkan SSAS database dengan file yang rusak. Pastikan file tersebut tidak rusak atau rusak. Kesalahan ini juga dapat muncul ketika `@rds_file_path` tidak diformat dengan benar (misalnya, ia memiliki garis miring terbalik ganda seperti pada `D:\S3\\incorrect_format.abf`).  | 
| Pemulihan gagal. Nama basis data yang dipulihkan tidak dapat berisi kata-kata yang dicadangkan atau karakter yang tidak valid: . , ; ' ` : / \$1\$1 \$1 \$1 ? \$1" & % \$1 \$1 \$1 = ( ) [ ] \$1 \$1 < >, atau lebih panjang dari 100 karakter. | RDSprosedur tersimpan |  Nama basis data yang dipulihkan tidak dapat berisi kata atau karakter yang dicadangkan yang tidak valid, atau lebih dari 100 karakter. Untuk konvensi penamaan SSAS objek, lihat [Aturan penamaan objek](https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/olap-physical/object-naming-rules-analysis-services) dalam dokumentasi Microsoft.  | 
| Nama peran yang tidak valid diberikan. Nama peran tidak boleh berisi string yang dipesan. | RDSprosedur tersimpan |  Nama peran tidak boleh berisi string yang dipesan. Untuk konvensi penamaan SSAS objek, lihat [Aturan penamaan objek](https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/olap-physical/object-naming-rules-analysis-services) dalam dokumentasi Microsoft.  | 
| Nama peran yang tidak valid diberikan. Nama peran tidak dapat berisi salah satu karakter cadangan berikut: . , ; ' ` : / \$1\$1 \$1 \$1 ? \$1" & % \$1 \$1 \$1 = ( ) [ ] \$1 \$1 < > | RDSprosedur tersimpan |  Nama peran tidak boleh berisi karakter yang dipesan. Untuk konvensi penamaan SSAS objek, lihat [Aturan penamaan objek](https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/olap-physical/object-naming-rules-analysis-services) dalam dokumentasi Microsoft.  | 

# Dukungan untuk SQL Server Integration Services di Amazon RDS for SQL Server
<a name="Appendix.SQLServer.Options.SSIS"></a>

Microsoft SQL Server Integration Services (SSIS) adalah komponen yang dapat Anda gunakan untuk melakukan berbagai tugas migrasi data. SSIS merupakan platform untuk integrasi data dan aplikasi alur kerja. SSIS dilengkapi dengan alat data warehousing yang digunakan untuk ekstraksi, transformasi, dan pemuatan (ETL) data. Anda juga dapat menggunakan alat ini untuk mengotomatiskan pemeliharaan basis data SQL Server dan pembaruan ke data kubus multidimensi.

Proyek SSIS diatur ke dalam paket-paket yang disimpan sebagai file .dtsx berbasis XML. Paket dapat berisi aliran kontrol dan aliran data. Anda menggunakan aliran data untuk mewakili operasi ETL. Setelah deployment, paket akan disimpan di SQL Server dalam basis data SSISDB. SSISDB adalah basis data pemrosesan transaksi online (OLTP) dalam mode pemulihan penuh.

Amazon RDS for SQL Server mendukung pengoperasian SSIS secara langsung di instans DB RDS. Anda dapat mengaktifkan SSIS di instans DB yang sudah ada atau yang baru. SSIS diinstal di instans DB yang sama seperti mesin basis data Anda.

RDS mendukung SSIS untuk SQL Server Standard dan Enterprise Editions pada versi berikut:
+ SQL Server 2022, semua versi
+ SQL Server 2019, versi 15.00.4043.16.v1 dan yang lebih baru
+ SQL Server 2017, versi 14.00.3223.3.v1 dan yang lebih baru
+ SQL Server 2016, versi 13.00.5426.0.v1 dan yang lebih baru

**Contents**
+ [Batasan dan rekomendasi](#SSIS.Limitations)
+ [Mengaktifkan SSIS](#SSIS.Enabling)
  + [Membuat grup opsi untuk SSIS](#SSIS.OptionGroup)
  + [Menambahkan opsi SSIS ke grup opsi](#SSIS.Add)
  + [Membuat grup parameter untuk SSIS](#SSIS.CreateParamGroup)
  + [Memodifikasi parameter untuk SSIS](#SSIS.ModifyParam)
  + [Mengaitkan grup opsi dan grup parameter dengan instans DB](#SSIS.Apply)
  + [Mengaktifkan integrasi S3](#SSIS.EnableS3)
+ [Izin administratif pada SSISDB](SSIS.Permissions.md)
  + [Menyiapkan pengguna yang diautentikasi Windows untuk SSIS](SSIS.Permissions.md#SSIS.Use.Auth)
+ [Melakukan deployment satu proyek SSIS](SSIS.Deploy.md)
+ [Memantau status tugas deployment](SSIS.Monitor.md)
+ [Menggunakan SSIS](SSIS.Use.md)
  + [Mengatur manajer koneksi database untuk SSIS proyek](SSIS.Use.md#SSIS.Use.ConnMgrs)
  + [Membuat SSIS proxy](SSIS.Use.md#SSIS.Use.Proxy)
  + [Menjadwalkan SSIS paket menggunakan SQL Server Agent](SSIS.Use.md#SSIS.Use.Schedule)
  + [Mencabut SSIS akses dari proxy](SSIS.Use.md#SSIS.Use.Revoke)
+ [Nonaktifkan dan jatuhkan SSIS database](SSIS.DisableDrop.md)
  + [Menonaktifkan SSIS](SSIS.DisableDrop.md#SSIS.Disable)
  + [Menjatuhkan database SSISDB](SSIS.DisableDrop.md#SSIS.Drop)

## Batasan dan rekomendasi
<a name="SSIS.Limitations"></a>

Batasan dan rekomendasi berikut ini berlaku untuk menjalankan SSIS di RDS for SQL Server:
+ Instans DB harus memiliki grup parameter terkait dengan parameter `clr enabled` yang diatur ke 1. Untuk informasi selengkapnya, lihat [Memodifikasi parameter untuk SSIS](#SSIS.ModifyParam).
**catatan**  
Jika Anda mengaktifkan parameter `clr enabled` di SQL Server 2017 atau 2019, Anda tidak dapat menggunakan runtime bahasa umum (CLR) di instans DB Anda. Untuk informasi selengkapnya, lihat [Fitur yang tidak didukung dan fitur dengan dukungan terbatas](SQLServer.Concepts.General.FeatureNonSupport.md).
+ Tugas alur kontrol berikut didukung:
  + Tugas Analysis Services Execute DDL
  + Tugas Analysis Services Processing
  + Tugas Bulk Insert
  + Tugas Check Database Integrity
  + Tugas Data Flow
  + Tugas Data Mining Query
  + Tugas Data Profiling
  + Tugas Execute Package
  + Tugas Execute SQL Server Agent Job
  + Tugas Execute SQL
  + Tugas Execute T-SQL Statement
  + Tugas Notify Operator
  + Tugas Rebuild Index
  + Tugas Reorganize Index
  + Tugas Shrink Database
  + Tugas Transfer Database
  + Tugas Transfer Jobs
  + Tugas Transfer Logins
  + Tugas Transfer SQL Server Objects
  + Tugas Update Statistics
+ Hanya deployment proyek yang didukung.
+ Menjalankan paket SSIS menggunakan SQL Server Agent didukung.
+ Catatan log SSIS dapat dimasukkan hanya ke basis data yang dibuat pengguna.
+ Hanya gunakan folder `D:\S3` untuk bekerja di file. File yang ditempatkan di direktori lain dihapus. Cara mengetahui beberapa detail lokasi file lainnya:
  + Tempatkan file input dan output proyek SSIS dalam folder `D:\S3`.
  + Untuk Tugas Data Flow, ubah lokasi untuk `BLOBTempStoragePath` dan `BufferTempStoragePath` ke file di dalam folder `D:\S3`. Jalur file harus dimulai dengan `D:\S3\`.
  + Pastikan semua parameter, variabel, dan ekspresi yang digunakan untuk koneksi file mengarah ke folder `D:\S3`.
  + Di instans Multi-AZ, file yang dibuat oleh SSIS dalam folder `D:\S3` akan dihapus setelah failover. Untuk informasi selengkapnya, lihat [Batasan Multi-AZ untuk integrasi S3](User.SQLServer.Options.S3-integration.md#S3-MAZ).
  + Unggah file yang dibuat oleh SSIS dalam folder `D:\S3` ke bucket Amazon S3 Anda agar dapat berdurabel.
+ Transformasi Kolom Impor dan Kolom Ekspor serta komponen Skrip pada Tugas Data Flow tidak didukung.
+ Anda tidak dapat mengaktifkan pembuangan saat menjalankan paket SSIS, dan juga tidak dapat menambahkan tap data pada paket SSIS.
+ Fitur SSIS Scale Out tidak didukung.
+ Anda tidak dapat melakukan deployment pada proyek secara langsung. Kami menyediakan prosedur RDS yang disimpan untuk melakukan hal ini. Untuk informasi selengkapnya, lihat [Melakukan deployment satu proyek SSIS](SSIS.Deploy.md).
+ Menyusun file proyek SSIS (.ispac) dengan mode perlindungan `DoNotSavePasswords` untuk deployment pada RDS.
+ SSIS tidak didukung di instans Always On dengan replika baca.
+ Anda tidak dapat mencadangkan basis data SSISDB yang terkait dengan opsi `SSIS`.
+ Mengimpor dan memulihkan basis data SSISDB dari instans SSIS lain tidak didukung.
+ Anda dapat terhubung ke instans DB SQL Server lainnya atau ke sumber data Oracle. Menghubungkan ke mesin basis data lain, seperti MySQL atau PostgreSQL, tidak didukung untuk SSIS di RDS for SQL Server. Untuk informasi selengkapnya mengenai cara menghubungkan ke sumber data Oracle, lihat [Server Tertaut dengan Oracle OLEDB](Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB.md). 
+ SSIS tidak mendukung instans gabungan domain dengan kepercayaan keluar ke domain lokal. Saat menggunakan kepercayaan keluar, jalankan pekerjaan SSIS dari akun di domain lokal AWS .
+ Mengeksekusi paket berbasis sistem file tidak didukung.

## Mengaktifkan SSIS
<a name="SSIS.Enabling"></a>

Anda dapat mengaktifkan SSIS dengan menambahkan opsi SSIS ke instans DB Anda. Gunakan proses berikut:

1. Buat grup opsi baru, atau pilih grup opsi yang sudah ada.

1. Tambahkan opsi `SSIS` untuk grup opsi.

1. Buat grup parameter baru, atau pilih grup parameter yang sudah ada.

1. Ubah grup parameter untuk mengatur parameter `clr enabled` ke 1.

1. Kaitkan grup opsi dan grup parameter dengan instans DB.

1. Aktifkan integrasi Amazon S3.

**catatan**  
Jika basis data dengan nama SSISDB atau kredensial login SSIS yang dicadangkan sudah ada di instans DB, Anda tidak dapat mengaktifkan SSIS di instans.

### Membuat grup opsi untuk SSIS
<a name="SSIS.OptionGroup"></a>

Untuk dapat bekerja dengan SSIS, buat grup opsi atau ubah grup opsi yang sesuai dengan edisi SQL Server dan versi instans DB yang akan Anda gunakan. Untuk melakukan ini, gunakan Konsol Manajemen AWS atau AWS CLI.

#### Konsol
<a name="SSIS.OptionGroup.Console"></a>

Prosedur berikut akan membuat grup opsi untuk SQL Server Standard Edition 2016.

**Untuk membuat grup opsi**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih **Buat grup**.

1. Di jendela **Buat grup opsi**, lakukan hal berikut:

   1. Untuk **Nama**, masukkan nama untuk grup opsi yang unik di dalam AWS akun Anda, seperti**ssis-se-2016**. Nama tersebut hanya boleh berisi huruf, angka, dan tanda hubung.

   1. Untuk **Deskripsi**, masukkan deskripsi singkat grup opsi, seperti **SSIS option group for SQL Server SE 2016**. Deskripsi digunakan untuk tampilan. 

   1. Untuk **Mesin**, pilih **sqlserver-se**.

   1. Untuk **Versi mesin utama**, pilih **13.00**.

1. Pilih **Buat**.

#### CLI
<a name="SSIS.OptionGroup.CLI"></a>

Prosedur berikut akan membuat grup opsi untuk SQL Server Standard Edition 2016.

**Untuk membuat grup opsi**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-option-group \
      --option-group-name ssis-se-2016 \
      --engine-name sqlserver-se \
      --major-engine-version 13.00 \
      --option-group-description "SSIS option group for SQL Server SE 2016"
  ```

  Untuk Windows:

  ```
  aws rds create-option-group ^
      --option-group-name ssis-se-2016 ^
      --engine-name sqlserver-se ^
      --major-engine-version 13.00 ^
      --option-group-description "SSIS option group for SQL Server SE 2016"
  ```

### Menambahkan opsi SSIS ke grup opsi
<a name="SSIS.Add"></a>

Selanjutnya, gunakan Konsol Manajemen AWS atau AWS CLI untuk menambahkan `SSIS` opsi ke grup opsi Anda.

#### Konsol
<a name="SSIS.Add.Console"></a>

**Untuk menambahkan opsi SSIS**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Option groups**.

1. Pilih grup opsi yang baru saja Anda buat, **ssis-se-2016** dalam contoh ini.

1. Pilih **Tambah opsi**.

1. Di bagian **Detail opsi**, pilih **SSIS** untuk **Nama opsi**.

1. Di bagian **Penjadwalan**, pilih apakah akan menambahkan opsi langsung atau pada masa pemeliharaan berikutnya.

1. Pilih **Tambah opsi**.

#### CLI
<a name="SSIS.Add.CLI"></a>

**Untuk menambahkan opsi SSIS**
+ Tambahkan opsi `SSIS` untuk grup opsi.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds add-option-to-option-group \
      --option-group-name ssis-se-2016 \
      --options OptionName=SSIS \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds add-option-to-option-group ^
      --option-group-name ssis-se-2016 ^
      --options OptionName=SSIS ^
      --apply-immediately
  ```

### Membuat grup parameter untuk SSIS
<a name="SSIS.CreateParamGroup"></a>

Membuat atau mengubah grup parameter untuk parameter `clr enabled` yang sesuai dengan edisi SQL Server dan versi instans DB yang akan Anda gunakan untuk SSIS.

#### Konsol
<a name="SSIS.CreateParamGroup.Console"></a>

Prosedur berikut akan membuat grup parameter untuk SQL Server Standard Edition 2016.

**Untuk membuat grup parameter**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup parameter**.

1. Pilih **Buat grup parameter**.

1. Di panel **Buat grup parameter**, lakukan hal berikut:

   1. Untuk **Rangkaian grup parameter**, pilih **sqlserver-se-13.0**.

   1. Untuk **Nama grup**, masukkan pengidentifikasi grup parameter, seperti **ssis-sqlserver-se-13**.

   1. Untuk **Deskripsi**, masukkan **clr enabled parameter group**.

1. Pilih **Buat**.

#### CLI
<a name="SSIS.CreateParamGroup.CLI"></a>

Prosedur berikut akan membuat grup parameter untuk SQL Server Standard Edition 2016.

**Untuk membuat grup parameter**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-db-parameter-group \
      --db-parameter-group-name ssis-sqlserver-se-13 \
      --db-parameter-group-family "sqlserver-se-13.0" \
      --description "clr enabled parameter group"
  ```

  Untuk Windows:

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name ssis-sqlserver-se-13 ^
      --db-parameter-group-family "sqlserver-se-13.0" ^
      --description "clr enabled parameter group"
  ```

### Memodifikasi parameter untuk SSIS
<a name="SSIS.ModifyParam"></a>

Ubah parameter `clr enabled` di grup parameter yang sesuai dengan edisi SQL Server dan versi instans DB Anda. Untuk SSIS, atur parameter `clr enabled` ke 1.

#### Konsol
<a name="SSIS.ModifyParam.Console"></a>

Prosedur berikut akan mengubah grup parameter yang telah Anda buat untuk SQL Server Standard Edition 2016.

**Untuk mengubah grup parameter**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup parameter**.

1. Pilih grup parameter, seperti **ssis-sqlserver-se-13**.

1. Di bagian **Parameter**, filter daftar parameter untuk **clr**.

1. Pilih **clr diaktifkan**.

1. Pilih **Edit parameter**.

1. Dari **Nilai**, pilih **1**.

1. Pilih **Simpan perubahan**.

#### CLI
<a name="SSIS.ModifyParam.CLI"></a>

Prosedur berikut akan mengubah grup parameter yang telah Anda buat untuk SQL Server Standard Edition 2016.

**Untuk mengubah grup parameter**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds modify-db-parameter-group \
      --db-parameter-group-name ssis-sqlserver-se-13 \
      --parameters "ParameterName='clr enabled',ParameterValue=1,ApplyMethod=immediate"
  ```

  Untuk Windows:

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name ssis-sqlserver-se-13 ^
      --parameters "ParameterName='clr enabled',ParameterValue=1,ApplyMethod=immediate"
  ```

### Mengaitkan grup opsi dan grup parameter dengan instans DB
<a name="SSIS.Apply"></a>

Untuk mengaitkan grup opsi SSIS dan grup parameter dengan instans DB Anda, gunakan Konsol Manajemen AWS atau AWS CLI 

**catatan**  
Jika Anda menggunakan instance yang ada, itu harus sudah memiliki domain Direktori Aktif dan peran AWS Identity and Access Management (IAM) yang terkait dengannya. Jika Anda membuat instans baru, tentukan domain Active Directory dan peran IAM yang sudah ada. Untuk informasi selengkapnya, lihat [Menggunakan Active Directory dengan RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).

#### Konsol
<a name="SSIS.Apply.Console"></a>

Untuk menyelesaikan pengaktifan SSIS, kaitkan grup opsi dan grup parameter SSIS Anda dengan instans DB baru atau yang sudah ada:
+ Untuk instans DB baru, kaitkan saat Anda meluncurkan instans. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+ Untuk instans DB yang sudah ada, kaitkan dengan memodifikasi instans. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

#### CLI
<a name="SSIS.Apply.CLI"></a>

Anda dapat mengaitkan grup opsi SSIS dan grup parameter dengan instans DB baru atau yang sudah ada.

**Untuk membuat instans dengan grup opsi dan grup parameter SSIS**
+ Tentukan jenis mesin DB dan versi utama yang sama seperti yang Anda gunakan saat membuat grup opsi.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier myssisinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 13.00.5426.0.v1 \
      --allocated-storage 100 \
      --manage-master-user-password \
      --master-username admin \
      --storage-type gp2 \
      --license-model li \
      --domain-iam-role-name my-directory-iam-role \
      --domain my-domain-id \
      --option-group-name ssis-se-2016 \
      --db-parameter-group-name ssis-sqlserver-se-13
  ```

  Untuk Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier myssisinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 13.00.5426.0.v1 ^
      --allocated-storage 100 ^
      --manage-master-user-password ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --domain-iam-role-name my-directory-iam-role ^
      --domain my-domain-id ^
      --option-group-name ssis-se-2016 ^
      --db-parameter-group-name ssis-sqlserver-se-13
  ```

**Untuk mengubah instans serta mengaitkan grup opsi dan grup parameter SSIS**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier myssisinstance \
      --option-group-name ssis-se-2016 \
      --db-parameter-group-name ssis-sqlserver-se-13 \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier myssisinstance ^
      --option-group-name ssis-se-2016 ^
      --db-parameter-group-name ssis-sqlserver-se-13 ^
      --apply-immediately
  ```

### Mengaktifkan integrasi S3
<a name="SSIS.EnableS3"></a>

Untuk mengunduh file proyek SSIS (.ispac) ke host Anda untuk deployment, gunakan integrasi file S3. Lihat informasi yang lebih lengkap di [Mengintegrasikan instans DB Amazon RDS for SQL Server dengan Amazon S3](User.SQLServer.Options.S3-integration.md).

# Izin administratif pada SSISDB
<a name="SSIS.Permissions"></a>

Ketika instance dibuat atau dimodifikasi dengan SSIS opsi, hasilnya adalah SSISDB database dengan peran ssis\$1admin dan ssis\$1logreader yang diberikan kepada pengguna master. Pengguna master memiliki hak istimewa berikut diSSISDB:
+ mengubah peran ssis\$1admin
+ mengganti peran ssis\$1logreader
+ mengubah pengguna mana pun

Karena pengguna master adalah pengguna yang SQL diautentikasi, Anda tidak dapat menggunakan pengguna master untuk mengeksekusi SSIS paket. Pengguna master dapat menggunakan hak istimewa ini untuk membuat SSISDB pengguna baru dan menambahkannya ke peran ssis\$1admin dan ssis\$1logreader. Melakukan hal ini berguna untuk memberikan akses ke pengguna domain Anda untuk digunakanSSIS.

## Menyiapkan pengguna yang diautentikasi Windows untuk SSIS
<a name="SSIS.Use.Auth"></a>

Pengguna master dapat menggunakan contoh kode berikut untuk mengatur login yang diautentikasi Windows SSISDB dan memberikan izin prosedur yang diperlukan. Melakukan hal ini memberikan izin kepada pengguna domain untuk menyebarkan dan menjalankan SSIS paket, menggunakan prosedur transfer file S3, membuat kredensi, dan bekerja dengan proxy Agen Server. SQL Untuk informasi selengkapnya, lihat [Kredensial (mesin database)](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/credentials-database-engine?view=sql-server-ver15) dan [Membuat proxy Agen SQL Server](https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-sql-server-agent-proxy?view=sql-server-ver15) di dokumentasi Microsoft.

**catatan**  
Anda dapat memberikan beberapa atau semua izin berikut sesuai kebutuhan kepada pengguna yang diautentikasi Windows.

**Example**  

```
-- Create a server-level SQL login for the domain user, if it doesn't already exist
USE [master]
GO
CREATE LOGIN [mydomain\user_name] FROM WINDOWS
GO						
						
-- Create a database-level account for the domain user, if it doesn't already exist						
USE [SSISDB]
GO
CREATE USER [mydomain\user_name] FOR LOGIN [mydomain\user_name]

-- Add SSIS role membership to the domain user
ALTER ROLE [ssis_admin] ADD MEMBER [mydomain\user_name]
ALTER ROLE [ssis_logreader] ADD MEMBER [mydomain\user_name]
GO

-- Add MSDB role membership to the domain user
USE [msdb]
GO
CREATE USER [mydomain\user_name] FOR LOGIN [mydomain\user_name]

-- Grant MSDB stored procedure privileges to the domain user
GRANT EXEC ON msdb.dbo.rds_msbi_task TO [mydomain\user_name] with grant option
GRANT SELECT ON msdb.dbo.rds_fn_task_status TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_task_status TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_cancel_task TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_download_from_s3 TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_upload_to_s3 TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_delete_from_filesystem TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.rds_gather_file_details TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_add_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_update_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_grant_login_to_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_revoke_login_from_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_delete_proxy TO [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_enum_login_for_proxy to [mydomain\user_name] with grant option
GRANT EXEC ON msdb.dbo.sp_enum_proxy_for_subsystem TO [mydomain\user_name]  with grant option
GRANT EXEC ON msdb.dbo.rds_sqlagent_proxy TO [mydomain\user_name] WITH GRANT OPTION


-- Add the SQLAgentUserRole privilege to the domain user
USE [msdb]
GO
ALTER ROLE [SQLAgentUserRole] ADD MEMBER [mydomain\user_name]
GO

-- Grant the ALTER ANY CREDENTIAL privilege to the domain user
USE [master]
GO
GRANT ALTER ANY CREDENTIAL TO [mydomain\user_name]
GO
```

# Melakukan deployment satu proyek SSIS
<a name="SSIS.Deploy"></a>

Pada RDS, Anda tidak dapat melakukan deployment proyek SSIS secara langsung menggunakan prosedur SQL Server Management Studio (SSMS) atau SSIS. Untuk mengunduh file proyek dari Amazon S3 lalu melakukan deployment, gunakan prosedur tersimpan RDS.

Untuk menjalankan prosedur tersimpan, lakukan login sebagai pengguna yang Anda berikan izin agar dapat menjalankan prosedur tersimpan. Untuk informasi lebih lanjut, lihat [Menyiapkan pengguna yang diautentikasi Windows untuk SSIS](SSIS.Permissions.md#SSIS.Use.Auth).

**Untuk melakukan deployment proyek SSIS**

1. Unduh file proyek (.ispac).

   ```
   exec msdb.dbo.rds_download_from_s3
   @s3_arn_of_file='arn:aws:s3:::bucket_name/ssisproject.ispac',
   @rds_file_path='D:\S3\ssisproject.ispac',
   @overwrite_file=1;
   ```

1. Kirim tugas deployment dan pastikan beberapa hal berikut:
   + Folder ini ada di katalog SSIS.
   + Nama proyek sesuai dengan nama proyek yang Anda gunakan saat mengembangkan proyek SSIS.

   ```
   exec msdb.dbo.rds_msbi_task
   @task_type='SSIS_DEPLOY_PROJECT',
   @folder_name='DEMO',
   @project_name='ssisproject',
   @file_path='D:\S3\ssisproject.ispac';
   ```

# Memantau status tugas deployment
<a name="SSIS.Monitor"></a>

Untuk melacak status tugas deployment Anda, panggil fungsi `rds_fn_task_status`. Pelacakan status membutuhkan dua parameter. Parameter pertama harus selalu `NULL` karena tidak berlaku untukSSIS. Parameter kedua menerima ID tugas. 

Untuk melihat daftar semua tugas, tetapkan parameter pertama ke `NULL` dan parameter kedua ke `0`, seperti yang ditunjukkan dalam contoh berikut.

```
SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,0);
```

Untuk melihat daftar semua tugas, tetapkan parameter pertama ke `NULL` dan parameter kedua ke ID tugas, seperti yang ditunjukkan dalam contoh berikut.

```
SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,42);
```

Fungsi `rds_fn_task_status` menampilkan informasi berikut.


| Parameter output | Deskripsi | 
| --- | --- | 
| `task_id` | ID tugas. | 
| `task_type` | `SSIS_DEPLOY_PROJECT` | 
| `database_name` | Tidak berlaku untuk SSIS tugas. | 
| `% complete` | Kemajuan tugas sebagai persentase. | 
| `duration (mins)` | Jumlah waktu yang dihabiskan untuk tugas, dalam menit. | 
| `lifecycle` |  Status tugas. Status yang mungkin adalah: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/SSIS.Monitor.html)  | 
| `task_info` | Informasi tambahan tentang tugas. Jika terjadi kesalahan selama pemrosesan, kolom ini berisi informasi tentang kesalahan tersebut. | 
| `last_updated` | Tanggal dan waktu status tugas terakhir diperbarui. | 
| `created_at` | Tanggal dan waktu tugas dibuat. | 
| `S3_object_arn` |  Tidak berlaku untuk SSIS tugas.  | 
| `overwrite_S3_backup_file` | Tidak berlaku untuk SSIS tugas. | 
| `KMS_master_key_arn` |  Tidak berlaku untuk SSIS tugas.  | 
| `filepath` |  Tidak berlaku untuk SSIS tugas.  | 
| `overwrite_file` |  Tidak berlaku untuk SSIS tugas.  | 
| `task_metadata` | Metadata yang terkait dengan tugas. SSIS | 

# Menggunakan SSIS
<a name="SSIS.Use"></a>

Setelah menyebarkan SSIS proyek ke dalam SSIS katalog, Anda dapat menjalankan paket langsung dari SSMS atau menjadwalkannya dengan menggunakan Agen SQL Server. Anda harus menggunakan login yang diautentikasi Windows untuk mengeksekusi paket. SSIS Untuk informasi selengkapnya, lihat [Menyiapkan pengguna yang diautentikasi Windows untuk SSIS](SSIS.Permissions.md#SSIS.Use.Auth).

**Topics**
+ [Mengatur manajer koneksi database untuk SSIS proyek](#SSIS.Use.ConnMgrs)
+ [Membuat SSIS proxy](#SSIS.Use.Proxy)
+ [Menjadwalkan SSIS paket menggunakan SQL Server Agent](#SSIS.Use.Schedule)
+ [Mencabut SSIS akses dari proxy](#SSIS.Use.Revoke)

## Mengatur manajer koneksi database untuk SSIS proyek
<a name="SSIS.Use.ConnMgrs"></a>

Saat menggunakan pengelola koneksi, Anda dapat menggunakan jenis autentikasi ini:
+ Untuk koneksi database lokal menggunakan AWS Managed Active Directory, Anda dapat menggunakan SQL otentikasi atau otentikasi Windows. Untuk autentikasi Windows, gunakan `DB_instance_name.fully_qualified_domain_name` sebagai nama server dari string koneksi.

  Contohnya adalah `myssisinstance.corp-ad.example.com`, dengan `myssisinstance` adalah nama instans DB dan `corp-ad.example.com` adalah nama domain yang sepenuhnya memenuhi syarat.
+ Untuk koneksi jarak jauh, selalu gunakan SQL otentikasi.
+ Untuk koneksi database lokal menggunakan Active Directory yang dikelola sendiri, Anda dapat menggunakan SQL otentikasi atau otentikasi Windows. Untuk autentikasi Windows, gunakan `.` atau `LocalHost` sebagai nama server dari string koneksi.

## Membuat SSIS proxy
<a name="SSIS.Use.Proxy"></a>

Untuk dapat menjadwalkan SSIS paket menggunakan SQL Server Agent, buat SSIS kredensi dan SSIS proxy. Jalankan prosedur ini sebagai pengguna yang diautentikasi Windows.

**Untuk membuat SSIS kredensi**
+ Buat kredensial untuk proksi. Untuk melakukan ini, Anda dapat menggunakan SSMS atau SQL pernyataan berikut.

  ```
  USE [master]
  GO
  CREATE CREDENTIAL [SSIS_Credential] WITH IDENTITY = N'mydomain\user_name', SECRET = N'mysecret'
  GO
  ```
**catatan**  
`IDENTITY` harus merupakan kredensial login yang diautentikasi domain. Ganti `mysecret` dengan kata sandi untuk kredensial login yang diautentikasi domain.  
Setiap kali host SSISDB utama diubah, ubah kredensi SSIS proxy untuk memungkinkan host baru mengaksesnya.

**Untuk membuat SSIS proxy**

1. Gunakan SQL pernyataan berikut untuk membuat proxy.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_add_proxy @proxy_name=N'SSIS_Proxy',@credential_name=N'SSIS_Credential',@description=N''
   GO
   ```

1. Gunakan SQL pernyataan berikut untuk memberikan akses ke proxy ke pengguna lain.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name=N'SSIS_Proxy',@login_name=N'mydomain\user_name'
   GO
   ```

1. Gunakan SQL pernyataan berikut untuk memberikan SSIS subsistem akses ke proxy.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.rds_sqlagent_proxy @task_type='GRANT_SUBSYSTEM_ACCESS',@proxy_name='SSIS_Proxy',@proxy_subsystem='SSIS'
   GO
   ```

**Untuk melihat proksi dan izin pada proksi**

1. Gunakan SQL pernyataan berikut untuk melihat penerima hibah proxy.

   ```
   USE [msdb]
   GO
   EXEC sp_help_proxy
   GO
   ```

1. Gunakan SQL pernyataan berikut untuk melihat hibah subsistem.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_enum_proxy_for_subsystem
   GO
   ```

## Menjadwalkan SSIS paket menggunakan SQL Server Agent
<a name="SSIS.Use.Schedule"></a>

Setelah Anda membuat kredensi dan proxy dan memberikan SSIS akses ke proxy, Anda dapat membuat pekerjaan Agen SQL Server untuk menjadwalkan SSIS paket.

**Untuk menjadwalkan SSIS paket**
+ Anda dapat menggunakan SSMS atau T- SQL untuk membuat pekerjaan Agen SQL Server. Contoh berikut menggunakan T-SQL.

  ```
  USE [msdb]
  GO
  DECLARE @jobId BINARY(16)
  EXEC msdb.dbo.sp_add_job @job_name=N'MYSSISJob',
  @enabled=1,
  @notify_level_eventlog=0,
  @notify_level_email=2,
  @notify_level_page=2,
  @delete_level=0,
  @category_name=N'[Uncategorized (Local)]',
  @job_id = @jobId OUTPUT
  GO
  EXEC msdb.dbo.sp_add_jobserver @job_name=N'MYSSISJob',@server_name=N'(local)'
  GO
  EXEC msdb.dbo.sp_add_jobstep @job_name=N'MYSSISJob',@step_name=N'ExecuteSSISPackage',
  @step_id=1,
  @cmdexec_success_code=0,
  @on_success_action=1,
  @on_fail_action=2,
  @retry_attempts=0,
  @retry_interval=0,
  @os_run_priority=0,
  @subsystem=N'SSIS',
  @command=N'/ISSERVER "\"\SSISDB\MySSISFolder\MySSISProject\MySSISPackage.dtsx\"" /SERVER "\"my-rds-ssis-instance.corp-ad.company.com/\"" 
  /Par "\"$ServerOption::LOGGING_LEVEL(Int16)\"";1 /Par "\"$ServerOption::SYNCHRONIZED(Boolean)\"";True /CALLERINFO SQLAGENT /REPORTING E',
  @database_name=N'master',
  @flags=0,
  @proxy_name=N'SSIS_Proxy'
  GO
  ```

## Mencabut SSIS akses dari proxy
<a name="SSIS.Use.Revoke"></a>

Anda dapat mencabut akses ke SSIS subsistem dan menghapus SSIS proxy menggunakan prosedur tersimpan berikut.

**Untuk mencabut akses dan menghapus proksi**

1. Mencabut akses subsistem.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.rds_sqlagent_proxy @task_type='REVOKE_SUBSYSTEM_ACCESS',@proxy_name='SSIS_Proxy',@proxy_subsystem='SSIS'
   GO
   ```

1. Mencabut izin pada proksi.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_revoke_login_from_proxy @proxy_name=N'SSIS_Proxy',@name=N'mydomain\user_name'
   GO
   ```

1. Hapus proksi.

   ```
   USE [msdb]
   GO
   EXEC dbo.sp_delete_proxy @proxy_name = N'SSIS_Proxy'
   GO
   ```

# Nonaktifkan dan jatuhkan SSIS database
<a name="SSIS.DisableDrop"></a>

Gunakan langkah-langkah berikut untuk menonaktifkan atau menjatuhkan SSIS database:

**Topics**
+ [Menonaktifkan SSIS](#SSIS.Disable)
+ [Menjatuhkan database SSISDB](#SSIS.Drop)

## Menonaktifkan SSIS
<a name="SSIS.Disable"></a>

Untuk menonaktifkanSSIS, hapus `SSIS` opsi dari grup opsinya.

**penting**  
Menghapus opsi tidak menghapus SSISDB database, sehingga Anda dapat menghapus opsi dengan aman tanpa kehilangan SSIS proyek.  
Anda dapat mengaktifkan kembali `SSIS` opsi setelah penghapusan untuk menggunakan kembali SSIS proyek yang sebelumnya digunakan ke katalog. SSIS

### Konsol
<a name="SSIS.Disable.Console"></a>

Prosedur berikut akan menghapus opsi `SSIS`.

**Untuk menghapus SSIS opsi dari grup opsinya**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi dengan opsi `SSIS` (`ssis-se-2016` dalam contoh sebelumnya).

1. Pilih **Hapus opsi**.

1. Di bawah **Opsi penghapusan, pilih Opsi SSIS****** **untuk** dihapus.

1. Di bagian **Langsung terapkan**, pilih **Ya** untuk segera menghapus opsi, atau **Tidak** untuk menghapusnya pada masa pemeliharaan berikutnya.

1. Pilih **Hapus**.

### CLI
<a name="SSIS.Disable.CLI"></a>

Prosedur berikut menghapus opsi `SSIS`.

**Untuk menghapus SSIS opsi dari grup opsinya**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds remove-option-from-option-group \
      --option-group-name ssis-se-2016 \
      --options SSIS \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name ssis-se-2016 ^
      --options SSIS ^
      --apply-immediately
  ```

## Menjatuhkan database SSISDB
<a name="SSIS.Drop"></a>

Setelah menghapus SSIS opsi, SSISDB database tidak dihapus. Untuk menjatuhkan SSISDB database, gunakan prosedur yang `rds_drop_ssis_database` disimpan setelah menghapus SSIS opsi.

**Untuk menjatuhkan SSIS database**
+ Gunakan prosedur tersimpan berikut.

  ```
  USE [msdb]
  GO
  EXEC dbo.rds_drop_ssis_database
  GO
  ```

Setelah menjatuhkan SSISDB database, jika Anda mengaktifkan kembali SSIS opsi Anda mendapatkan katalog baruSSISDB.

# Support untuk Layanan Pelaporan SQL Server di Amazon RDS untuk SQL Server
<a name="Appendix.SQLServer.Options.SSRS"></a>

Microsoft SQL Server Reporting Services (SSRS) adalah aplikasi berbasis server yang digunakan untuk pembuatan dan distribusi laporan. Ini adalah bagian dari rangkaian layanan SQL Server yang juga mencakup Layanan Analisis SQL Server (SSAS) dan Layanan Integrasi SQL Server (SSIS). SSRSadalah layanan yang dibangun di atas SQL Server. Anda dapat menggunakannya untuk mengumpulkan data dari berbagai sumber data dan menyajikannya dengan cara yang mudah dimengerti dan siap untuk dianalisis.

Amazon RDS for SQL Server mendukung berjalan SSRS langsung pada instans RDS DB. Anda dapat menggunakan SSRS dengan instans DB yang ada atau baru.

RDSmendukung SSRS untuk SQL Server Standard dan Enterprise Editions pada versi berikut:
+ SQLServer 2022, semua versi
+ SQLServer 2019, versi 15.00.4043.16.v1 dan lebih tinggi
+ SQLServer 2017, versi 14.00.3223.3.v1 dan lebih tinggi
+ SQLServer 2016, versi 13.00.5820.21.v1 dan lebih tinggi

**Contents**
+ [Batasan dan rekomendasi](#SSRS.Limitations)
+ [Mengaktifkan SSRS](SSRS.Enabling.md)
  + [Membuat grup opsi untuk SSRS](SSRS.Enabling.md#SSRS.OptionGroup)
  + [Menambahkan opsi SSRS ke grup opsi Anda](SSRS.Enabling.md#SSRS.Add)
  + [Mengaitkan grup opsi Anda dengan instans DB Anda](SSRS.Enabling.md#SSRS.Apply)
  + [Mengizinkan akses masuk ke grup keamanan VPC Anda](SSRS.Enabling.md#SSRS.Inbound)
+ [Laporkan basis data server](#SSRS.DBs)
+ [SSRSberkas log](#SSRS.Logs)
+ [Mengakses portal SSRS web](SSRS.Access.md)
  + [Menggunakan SSL pada RDS](SSRS.Access.md#SSRS.Access.SSL)
  + [Memberikan akses ke pengguna domain](SSRS.Access.md#SSRS.Access.Grant)
  + [Mengakses portal web](SSRS.Access.md#SSRS.Access)
+ [Menyebarkan laporan dan mengonfigurasi sumber data laporan](SSRS.DeployConfig.md)
  + [Menyebarkan laporan ke SSRS](SSRS.DeployConfig.md#SSRS.Deploy)
  + [Mengonfigurasi sumber data laporan](SSRS.DeployConfig.md#SSRS.ConfigureDataSource)
+ [Menggunakan Email SSRS untuk mengirim laporan](SSRS.Email.md)
+ [Mencabut izin tingkat sistem](SSRS.Access.Revoke.md)
+ [Memantau status tugas](SSRS.Monitor.md)
+ [Menonaktifkan dan menghapus database SSRS](SSRS.DisableDelete.md)
  + [Mematikan SSRS](SSRS.DisableDelete.md#SSRS.Disable)
  + [Menghapus database SSRS](SSRS.DisableDelete.md#SSRS.Drop)

## Batasan dan rekomendasi
<a name="SSRS.Limitations"></a>

Batasan dan rekomendasi berikut berlaku untuk menjalankan SSRS RDS untuk SQL Server:
+ Anda tidak dapat menggunakan SSRS pada instans DB yang telah membaca replika.
+ Instans harus menggunakan Active Directory yang dikelola sendiri atau AWS Directory Service for Microsoft Active Directory untuk otentikasi portal SSRS web dan server web. Untuk informasi selengkapnya, lihat [Menggunakan Active Directory dengan RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md). 
+ Anda tidak dapat membuat cadangan database server pelaporan yang dibuat dengan SSRS opsi.
+ Mengimpor dan memulihkan database server laporan dari instance lain tidak didukung. SSRS Untuk informasi selengkapnya, lihat [Laporkan basis data server](#SSRS.DBs).
+ Anda tidak dapat mengonfigurasi SSRS untuk mendengarkan pada SSL port default (443). Nilai yang diizinkan adalah 1150–49511, kecuali 1234, 1434, 3260, 3343, 3389, dan 47001.
+ Langganan melalui berbagi berkas Microsoft Windows tidak didukung.
+ Menggunakan Reporting Services Configuration Manager tidak didukung.
+ Membuat dan memodifikasi peran tidak didukung.
+ Memodifikasi properti server laporan tidak didukung.
+ Administrator sistem dan peran pengguna sistem tidak diizinkan.
+ Anda tidak dapat mengedit penetapan peran tingkat sistem melalui portal web.

# Mengaktifkan SSRS
<a name="SSRS.Enabling"></a>

Gunakan proses berikut untuk mengaktifkan SSRS untuk instans DB Anda:

1. Buat grup opsi baru, atau pilih grup opsi yang sudah ada.

1. Tambahkan opsi `SSRS` untuk grup opsi.

1. Kaitkan grup opsi dengan instans DB.

1. Izinkan akses masuk ke grup keamanan cloud privat virtual (VPC) untuk port pendengar SSRS.

## Membuat grup opsi untuk SSRS
<a name="SSRS.OptionGroup"></a>

Untuk bekerja dengan SSRS, buat grup opsi yang sesuai dengan versi dan mesin SQL Server untuk instans DB yang ingin Anda gunakan. Untuk melakukan ini, gunakan Konsol Manajemen AWS atau AWS CLI. 

**catatan**  
Anda juga dapat menggunakan grup opsi yang ada jika grup opsi tersebut untuk mesin dan versi SQL Server yang benar.

### Konsol
<a name="SSRS.OptionGroup.Console"></a>

Prosedur berikut membuat grup opsi untuk SQL Server Standard Edition 2017.

**Untuk membuat grup opsi**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih **Buat grup**.

1. Di panel **Buat grup opsi**, lakukan hal berikut:

   1. Untuk **Nama**, masukkan nama untuk grup opsi yang unik di dalam Anda Akun AWS, seperti**ssrs-se-2017**. Nama tersebut hanya boleh berisi huruf, angka, dan tanda hubung.

   1. Untuk **Deskripsi**, masukkan deskripsi singkat grup opsi, seperti **SSRS option group for SQL Server SE 2017**. Deskripsi digunakan untuk tampilan.

   1. Untuk **Mesin**, pilih **sqlserver-se**.

   1. Untuk **Versi mesin utama**, pilih **14.00**.

1. Pilih **Buat**.

### CLI
<a name="SSRS.OptionGroup.CLI"></a>

Prosedur berikut membuat grup opsi untuk SQL Server Standard Edition 2017.

**Untuk membuat grup opsi**
+ Gunakan salah satu perintah berikut ini.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws rds create-option-group \
    --option-group-name ssrs-se-2017 \
    --engine-name sqlserver-se \
    --major-engine-version 14.00 \
    --option-group-description "SSRS option group for SQL Server SE 2017"
```
Untuk Windows:  

```
aws rds create-option-group ^
    --option-group-name ssrs-se-2017 ^
    --engine-name sqlserver-se ^
    --major-engine-version 14.00 ^
    --option-group-description "SSRS option group for SQL Server SE 2017"
```

## Menambahkan opsi SSRS ke grup opsi Anda
<a name="SSRS.Add"></a>

Selanjutnya, gunakan Konsol Manajemen AWS atau AWS CLI untuk menambahkan `SSRS` opsi ke grup opsi Anda.

### Konsol
<a name="SSRS.Add.CON"></a>

**Untuk menambahkan opsi SSRS**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi yang baru saja Anda buat, lalu pilih **Tambahkan opsi**.

1. Pada **Detail opsi**, pilih **SSRS** untuk **Nama opsi**.

1. Pada **Pengaturan opsi**, lakukan berikut ini:

   1. Masukkan port untuk layanan SSRS untuk mendengarkan. Default-nya adalah 8443. Untuk daftar nilai yang diizinkan, lihat [Batasan dan rekomendasi](Appendix.SQLServer.Options.SSRS.md#SSRS.Limitations).

   1. Masukkan nilai untuk **Memori maks**.

      **Memori maks** menentukan ambang atas yang di atasnya tidak ada permintaan alokasi memori baru yang diberikan untuk melaporkan aplikasi server. Jumlah tersebut adalah persentase dari total memori instans DB. Nilai yang diperbolehkan adalah 10-80.

   1. Untuk **Grup keamanan**, pilih grup keamanan VPC untuk dikaitkan dengan opsi. Gunakan grup keamanan yang sama yang terkait dengan instans DB Anda.

1. Untuk menggunakan Email SSRS untuk mengirim laporan, centang **Konfigurasikan opsi pengiriman email** di bagian **Pengiriman email dalam layanan pelaporan**, lalu lakukan berikut ini:

   1. Untuk **alamat email Pengirim**, masukkan alamat email yang akan digunakan di bidang **Dari** pada pesan yang dikirim oleh Email SSRS.

      Tentukan akun pengguna yang memiliki izin untuk mengirim email dari server SMTP.

   1. Untuk **server SMTP**, tentukan gateway atau server SMTP yang akan digunakan.

      Ini dapat berupa alamat IP, nama NetBIOS komputer di intranet perusahaan Anda, atau nama domain yang sepenuhnya memenuhi syarat.

   1. Untuk **port SMTP**, masukkan port yang akan digunakan untuk menghubungkan ke server email. Default-nya adalah 25.

   1. Untuk menggunakan autentikasi:

      1. Centang kotak **Gunakan autentikasi**.

      1. Untuk **Rahasia Amazon Resource Name (ARN)** masukkan AWS Secrets Manager ARN untuk kredensi pengguna.

         Gunakan format berikut:

         **arn:aws:secretsmanager:*Region*:*AccountId*:secret:*SecretName*-*6RandomCharacters***

         Contoh:

         **arn:aws:secretsmanager:*us-west-2*:*123456789012*:secret:*MySecret-a1b2c3***

         Untuk informasi lebih lanjut tentang pembuatan rahasia, lihat [Menggunakan Email SSRS untuk mengirim laporan](SSRS.Email.md).

   1. Pilih **Gunakan Secure Sockets Layer (SSL)** untuk mengenkripsi pesan email menggunakan SSL.

1. Pada **Scheduling**, tentukan apakah akan menambahkan opsi segera atau pada periode pemeliharaan berikutnya.

1. Pilih **Tambah opsi**.

### CLI
<a name="SSRS.Add.CLI"></a>

**Untuk menambahkan opsi SSRS**

1. Buat file JSON, misalnya `ssrs-option.json`.

   1. Tetapkan parameter wajib berikut:
      + `OptionGroupName` – Nama grup opsi yang Anda buat atau pilih sebelumnya (`ssrs-se-2017` dalam contoh berikut).
      + `Port` – Port untuk layanan SSRS untuk didengarkan. Default-nya adalah 8443. Untuk daftar nilai yang diizinkan, lihat [Batasan dan rekomendasi](Appendix.SQLServer.Options.SSRS.md#SSRS.Limitations).
      + `VpcSecurityGroupMemberships` – Keanggotaan grup keamanan VPC untuk instans DB RDS Anda.
      + `MAX_MEMORY` – Ambang batas atas yang di atasnya tidak ada permintaan alokasi memori baru yang diberikan untuk melaporkan aplikasi server. Jumlah tersebut adalah persentase dari total memori instans DB. Nilai yang diperbolehkan adalah 10-80.

   1. (Opsional) Tetapkan parameter berikut untuk menggunakan SSRS Email:
      + `SMTP_ENABLE_EMAIL` – Tetapkan menjadi `true` untuk menggunakan Email SSRS. Nilai default-nya `false`.
      + `SMTP_SENDER_EMAIL_ADDRESS` – Alamat email yang akan digunakan di bidang **Dari** pada pesan yang dikirim oleh Email SSRS. Tentukan akun pengguna yang memiliki izin untuk mengirim email dari server SMTP.
      + `SMTP_SERVER` – Gateway atau server SMTP yang akan digunakan. Ini dapat berupa alamat IP, nama NetBIOS komputer di intranet perusahaan Anda, atau nama domain yang sepenuhnya memenuhi syarat.
      + `SMTP_PORT` – Port yang digunakan untuk menghubungkan ke server email. Default-nya adalah 25.
      + `SMTP_USE_SSL` – Tetapkan menjadi `true` untuk mengenkripsi pesan email menggunakan SSL. Nilai default-nya `true`.
      + `SMTP_EMAIL_CREDENTIALS_SECRET_ARN` – Secrets Manager ARN yang memegang kredensial pengguna. Gunakan format berikut:

        **arn:aws:secretsmanager:*Region*:*AccountId*:secret:*SecretName*-*6RandomCharacters***

        Untuk informasi lebih lanjut tentang pembuatan rahasia, lihat [Menggunakan Email SSRS untuk mengirim laporan](SSRS.Email.md).
      + `SMTP_USE_ANONYMOUS_AUTHENTICATION` – Tetapkan menjadi `true` dan jangan sertakan `SMTP_EMAIL_CREDENTIALS_SECRET_ARN` jika Anda tidak ingin menggunakan autentikasi.

        Default-nya adalah `false` jika `SMTP_ENABLE_EMAIL` adalah `true`.

   Contoh berikut mencakup parameter Email SSRS, menggunakan ARN rahasia.

   ```
   {
   "OptionGroupName": "ssrs-se-2017",
   "OptionsToInclude": [
   	{
   	"OptionName": "SSRS",
   	"Port": 8443,
   	"VpcSecurityGroupMemberships": ["sg-0abcdef123"],
   	"OptionSettings": [
               {"Name": "MAX_MEMORY","Value": "60"},
               {"Name": "SMTP_ENABLE_EMAIL","Value": "true"}
               {"Name": "SMTP_SENDER_EMAIL_ADDRESS","Value": "nobody@example.com"},
               {"Name": "SMTP_SERVER","Value": "email-smtp.us-west-2.amazonaws.com"},
               {"Name": "SMTP_PORT","Value": "25"},
               {"Name": "SMTP_USE_SSL","Value": "true"},
               {"Name": "SMTP_EMAIL_CREDENTIALS_SECRET_ARN","Value": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret-a1b2c3"}
               ]
   	}],
   "ApplyImmediately": true
   }
   ```

1. Tambahkan opsi `SSRS` untuk grup opsi.  
**Example**  

   Untuk Linux, macOS, atau Unix:

   ```
   aws rds add-option-to-option-group \
       --cli-input-json file://ssrs-option.json \
       --apply-immediately
   ```

   Untuk Windows:

   ```
   aws rds add-option-to-option-group ^
       --cli-input-json file://ssrs-option.json ^
       --apply-immediately
   ```

## Mengaitkan grup opsi Anda dengan instans DB Anda
<a name="SSRS.Apply"></a>

Gunakan Konsol Manajemen AWS or AWS CLI untuk mengaitkan grup opsi Anda dengan instans DB Anda.

Jika Anda menggunakan instans DB yang ada, instans tersebut harus memiliki domain Active Directory dan peran AWS Identity and Access Management (IAM) yang terkait dengannya. Jika Anda membuat instans baru, tentukan domain Active Directory dan peran IAM yang ada. Untuk informasi selengkapnya, lihat [Menggunakan Active Directory dengan RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md).

### Konsol
<a name="SSRS.Apply.Console"></a>

Anda dapat mengaitkan grup opsi dengan instans DB baru atau yang sudah ada:
+ Untuk instans DB baru, kaitkan grup opsi saat Anda meluncurkan instans tersebut. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+ Untuk instans DB yang ada, ubah instans tersebut dan kaitkan grup opsi baru. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

### CLI
<a name="SSRS.Apply.CLI"></a>

Anda dapat mengaitkan grup opsi dengan instans DB baru atau yang sudah ada.

**Untuk membuat instans DB yang menggunakan grup opsi Anda**
+ Tentukan jenis mesin DB dan versi utama yang sama seperti yang Anda gunakan saat membuat grup opsi.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier myssrsinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 14.00.3223.3.v1 \
      --allocated-storage 100 \
      --manage-master-user-password  \
      --master-username admin \
      --storage-type gp2 \
      --license-model li \
      --domain-iam-role-name my-directory-iam-role \
      --domain my-domain-id \
      --option-group-name ssrs-se-2017
  ```

  Untuk Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier myssrsinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 14.00.3223.3.v1 ^
      --allocated-storage 100 ^
      --manage-master-user-password ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --domain-iam-role-name my-directory-iam-role ^
      --domain my-domain-id ^
      --option-group-name ssrs-se-2017
  ```

**Untuk mengubah instans DB untuk menggunakan grup opsi Anda**
+ Jalankan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier myssrsinstance \
      --option-group-name ssrs-se-2017 \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier myssrsinstance ^
      --option-group-name ssrs-se-2017 ^
      --apply-immediately
  ```

## Mengizinkan akses masuk ke grup keamanan VPC Anda
<a name="SSRS.Inbound"></a>

Untuk mengizinkan akses masuk ke grup keamanan VPC yang terkait dengan instans DB Anda, buat aturan masuk untuk port pendengar SSRS yang ditentukan. Untuk informasi lebih lanjut tentang mengatur grup keamanan, lihat [Memberikan akses ke instans DB di VPC Anda dengan membuat grup keamanan](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup).

## Laporkan basis data server
<a name="SSRS.DBs"></a>

Ketika instans DB Anda dikaitkan dengan SSRS opsi, dua database baru dibuat pada instans DB Anda:
+ `rdsadmin_ReportServer`
+ `rdsadmin_ReportServerTempDB`

Database ini bertindak sebagai database ReportServer dan ReportServerTemp DB. SSRSmenyimpan datanya dalam ReportServer database dan menyimpan datanya di database ReportServerTemp DB. Untuk informasi selengkapnya, lihat [Report Server Database](https://learn.microsoft.com/en-us/sql/reporting-services/report-server/report-server-database-ssrs-native-mode?view=sql-server-ver15) dalam dokumentasi Microsoft.

RDSmemiliki dan mengelola database ini, sehingga operasi database pada mereka seperti ALTER dan DROP tidak diizinkan. Akses tidak diizinkan pada basis data `rdsadmin_ReportServerTempDB`. Namun, Anda dapat melakukan operasi baca di basis data `rdsadmin_ReportServer`.

## SSRSberkas log
<a name="SSRS.Logs"></a>

Anda dapat membuat daftar, melihat, dan mengunduh file SSRS log. SSRSfile log mengikuti konvensi penamaan ReportServerService \$1*timestamp*.log. Log server laporan ini berada di direktori `D:\rdsdbdata\Log\SSRS`. (`D:\rdsdbdata\Log`Direktori ini juga merupakan direktori induk untuk log kesalahan dan log Agen SQL Server.). Untuk informasi selengkapnya, lihat [Melihat dan mencantumkan file log basis data](USER_LogAccess.Procedural.Viewing.md).

Untuk SSRS instance yang ada, memulai ulang SSRS layanan mungkin diperlukan untuk mengakses log server laporan. Anda dapat memulai ulang layanan tersebut dengan memperbarui opsi `SSRS`.

Untuk informasi selengkapnya, lihat [Bekerja dengan Amazon RDS untuk log Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.Logs.md).

# Mengakses portal SSRS web
<a name="SSRS.Access"></a>

Gunakan proses berikut untuk mengakses portal SSRS web:

1. Aktifkan Secure Sockets Layer (SSL).

1. Berikan akses kepada pengguna domain.

1. Akses portal web menggunakan browser dan kredensial pengguna domain.

## Menggunakan SSL pada RDS
<a name="SSRS.Access.SSL"></a>

SSRSmenggunakan HTTPS SSL protokol untuk koneksinya. Untuk bekerja dengan protokol ini, impor SSL sertifikat ke sistem operasi Microsoft Windows di komputer klien Anda.

Untuk informasi selengkapnya tentang SSL sertifikat, lihat[](UsingWithRDS.SSL.md). Untuk informasi selengkapnya tentang penggunaan SSL dengan SQL Server, lihat[Menggunakan SSL dengan instans DB Microsoft SQL Server](SQLServer.Concepts.General.SSL.Using.md).

## Memberikan akses ke pengguna domain
<a name="SSRS.Access.Grant"></a>

Dalam SSRS aktivasi baru, tidak ada penugasan peran diSSRS. Untuk memberikan pengguna domain atau grup pengguna akses ke portal web, RDS menyediakan prosedur tersimpan.

**Untuk memberikan akses kepada pengguna domain di portal web**
+ Gunakan prosedur tersimpan berikut.

  ```
  exec msdb.dbo.rds_msbi_task
  @task_type='SSRS_GRANT_PORTAL_PERMISSION',
  @ssrs_group_or_username=N'AD_domain\user';
  ```

Pengguna domain atau grup pengguna diberi peran sistem `RDS_SSRS_ROLE`. Peran ini diberi tugas tingkat sistem berikut:
+ Menjalankan laporan
+ Mengelola pekerjaan
+ Mengelola jadwal bersama
+ Melihat jadwal bersama

Peran tingkat item `Content Manager` di folder root juga diberikan.

## Mengakses portal web
<a name="SSRS.Access"></a>

Setelah tugas `SSRS_GRANT_PORTAL_PERMISSION` berhasil diselesaikan, Anda memiliki akses ke portal menggunakan browser web. Portal web URL memiliki format berikut.

```
https://rds_endpoint:port/Reports
```

Dalam format ini, hal-hal berikut berlaku:
+ *`rds_endpoint`* — Titik akhir untuk instans RDS DB yang Anda gunakan. SSRS

  Titik akhir tersebut dapat ditemukan di tab **Konektivitas & keamanan** untuk instans DB Anda. Untuk informasi selengkapnya, lihat [Menyambung ke instans Microsoft SQL Server DB](USER_ConnectToMicrosoftSQLServerInstance.md).
+ `port`— Port pendengar untuk SSRS yang Anda atur dalam `SSRS` opsi.

**Untuk mengakses portal web**

1. Masukkan portal web URL di browser Anda.

   ```
   https://myssrsinstance.cg034itsfake.us-east-1.rds.amazonaws.com:8443/Reports
   ```

1. Masuk dengan kredensial untuk pengguna domain yang Anda beri akses dengan tugas `SSRS_GRANT_PORTAL_PERMISSION`.

# Menyebarkan laporan dan mengonfigurasi sumber data laporan
<a name="SSRS.DeployConfig"></a>

Gunakan prosedur berikut untuk menyebarkan laporan ke SSRS dan mengonfigurasi sumber data pelaporan:

**Topics**
+ [Menyebarkan laporan ke SSRS](#SSRS.Deploy)
+ [Mengonfigurasi sumber data laporan](#SSRS.ConfigureDataSource)

## Menyebarkan laporan ke SSRS
<a name="SSRS.Deploy"></a>

Setelah memiliki akses ke portal web, Anda dapat men-deploy laporan ke portal tersebut. Anda dapat menggunakan alat Unggah di portal web untuk mengunggah laporan, atau menyebarkan langsung dari [alat data SQL Server (SSDT)](https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt). Saat menerapkan dariSSDT, pastikan hal berikut:
+ Pengguna yang meluncurkan SSDT memiliki akses ke portal SSRS web.
+ `TargetServerURL`Nilai dalam properti SSRS proyek diatur ke HTTPS titik akhir instance RDS DB yang diakhiran dengan`ReportServer`, misalnya:

  ```
  https://myssrsinstance.cg034itsfake.us-east-1.rds.amazonaws.com:8443/ReportServer
  ```

## Mengonfigurasi sumber data laporan
<a name="SSRS.ConfigureDataSource"></a>

Setelah menerapkan laporanSSRS, Anda harus mengonfigurasi sumber data laporan. Saat mengonfigurasi sumber data laporan, pastikan hal berikut:
+ RDSUntuk instance SQL Server DB yang digabungkan AWS Directory Service for Microsoft Active Directory, gunakan nama domain yang memenuhi syarat (FQDN) sebagai nama sumber data dari string koneksi. Contohnya adalah `myssrsinstance.corp-ad.example.com`, dengan `myssrsinstance` adalah nama instans DB dan `corp-ad.example.com` adalah nama domain yang sepenuhnya memenuhi syarat. 
+ RDSUntuk instance SQL Server DB yang digabungkan ke Active Directory yang dikelola sendiri`.`, gunakan, atau `LocalHost` sebagai nama sumber data dari string koneksi.

# Menggunakan Email SSRS untuk mengirim laporan
<a name="SSRS.Email"></a>

SSRS menyertakan ekstensi Email SSRS, yang dapat Anda gunakan untuk mengirim laporan kepada pengguna.

Untuk mengonfigurasi Email SSRS, gunakan pengaturan opsi `SSRS`. Untuk informasi selengkapnya, lihat [Menambahkan opsi SSRS ke grup opsi Anda](SSRS.Enabling.md#SSRS.Add).

Setelah mengonfigurasi Email SSRS, Anda dapat berlangganan laporan di server laporan. Untuk informasi selengkapnya, lihat [Email delivery in Reporting Services](https://docs.microsoft.com/en-us/sql/reporting-services/subscriptions/e-mail-delivery-in-reporting-services) di dokumentasi Microsoft.

Integrasi dengan AWS Secrets Manager diperlukan agar Email SSRS berfungsi pada RDS. Untuk mengintegrasikan dengan Secrets Manager, Anda harus membuat rahasia.

**catatan**  
Jika mengubah rahasianya nanti, Anda juga harus memperbarui opsi `SSRS` di grup opsi.

**Untuk membuat rahasia untuk Email SSRS**

1. Ikuti langkah-langkah di [Membuat rahasia](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) di *Panduan Pengguna AWS Secrets Manager*.

   1. Untuk **Pilih jenis rahasia**, pilih **Jenis rahasia lainnya**.

   1. Untuk **pasangan kunci/nilai**, masukkan berikut ini:
      + **SMTP\$1USERNAME** – Masukkan pengguna dengan izin untuk mengirim email dari server SMTP.
      + **SMTP\$1PASSWORD** – Masukkan kata sandi untuk pengguna SMTP.

   1. Untuk **kunci Enkripsi**, jangan gunakan default AWS KMS key. Gunakan kunci Anda sendiri, atau buat yang baru.

      Kebijakan kunci KMS harus mengizinkan tindakan `kms:Decrypt`, misalnya:

      ```
      {
          "Sid": "Allow use of the key",
          "Effect": "Allow",
          "Principal": {
              "Service": [
                  "rds.amazonaws.com"
              ]
          },
          "Action": [
              "kms:Decrypt"
          ],
          "Resource": "*"
      }
      ```

1. Ikuti langkah-langkah di [Melampirkan kebijakan izin ke rahasia](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html) di *Panduan Pengguna AWS Secrets Manager*. Kebijakan izin memberikan tindakan `secretsmanager:GetSecretValue` kepada prinsipal layanan `rds.amazonaws.com`.

   Sebaiknya Anda menggunakan ketentuan `aws:sourceAccount` dan `aws:sourceArn` dalam kebijakan untuk menghindari masalah *wakil yang membingungkan*. Gunakan ARN Akun AWS untuk `aws:sourceAccount` dan grup opsi ARN untuk. `aws:sourceArn` Untuk informasi selengkapnya, lihat [Pencegahan masalah confused deputy lintas layanan](cross-service-confused-deputy-prevention.md).

   Contoh berikut menunjukkan kebijakan izin.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement" : [ {
       "Effect" : "Allow",
       "Principal" : {
         "Service" : "rds.amazonaws.com"
       },
       "Action" : "secretsmanager:GetSecretValue",
       "Resource" : "*",
       "Condition" : {
         "StringEquals" : {
           "aws:sourceAccount" : "123456789012"
         },
         "ArnLike" : {
           "aws:sourceArn" : "arn:aws:rds:us-west-2:123456789012:og:ssrs-se-2017"
         }
       }
     } ]
   }
   ```

------

   Untuk contoh lainnya, lihat [contoh kebijakan izin untuk AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html) di *Panduan AWS Secrets Manager Pengguna*.

# Mencabut izin tingkat sistem
<a name="SSRS.Access.Revoke"></a>

Peran sistem `RDS_SSRS_ROLE` tidak memiliki izin yang memadai untuk menghapus penetapan peran tingkat sistem. Untuk menghapus pengguna atau grup pengguna dari `RDS_SSRS_ROLE`, gunakan prosedur tersimpan yang sama dengan yang Anda gunakan untuk memberikan peran, tetapi gunakan jenis tugas `SSRS_REVOKE_PORTAL_PERMISSION`.

**Untuk mencabut akses dari pengguna domain untuk portal web**
+ Gunakan prosedur tersimpan berikut.

  ```
  exec msdb.dbo.rds_msbi_task
  @task_type='SSRS_REVOKE_PORTAL_PERMISSION',
  @ssrs_group_or_username=N'AD_domain\user';
  ```

Tindakan ini akan menghapus pengguna dari peran sistem `RDS_SSRS_ROLE`. Tindakan ini juga menghapus pengguna dari peran tingkat item `Content Manager` jika pengguna memilikinya.

# Memantau status tugas
<a name="SSRS.Monitor"></a>

Untuk melacak status penetapan atau pencabutan tugas Anda, panggil fungsi `rds_fn_task_status`. Membutuhkan dua parameter. Parameter pertama harus selalu `NULL` karena tidak berlaku untukSSRS. Parameter kedua menerima ID tugas. 

Untuk melihat daftar semua tugas, tetapkan parameter pertama ke `NULL` dan parameter kedua ke `0`, seperti yang ditunjukkan dalam contoh berikut.

```
SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,0);
```

Untuk melihat daftar semua tugas, tetapkan parameter pertama ke `NULL` dan parameter kedua ke ID tugas, seperti yang ditunjukkan dalam contoh berikut.

```
SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,42);
```

Fungsi `rds_fn_task_status` menampilkan informasi berikut.


| Parameter output | Deskripsi | 
| --- | --- | 
| `task_id` | ID tugas. | 
| `task_type` | UntukSSRS, tugas dapat memiliki jenis tugas berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/SSRS.Monitor.html)  | 
| `database_name` | Tidak berlaku untuk SSRS tugas. | 
| `% complete` | Kemajuan tugas sebagai persentase. | 
| `duration (mins)` | Jumlah waktu yang dihabiskan untuk tugas, dalam menit. | 
| `lifecycle` |  Status tugas. Status yang mungkin adalah: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/SSRS.Monitor.html)  | 
| `task_info` | Informasi tambahan tentang tugas. Jika terjadi kesalahan selama pemrosesan, kolom ini berisi informasi tentang kesalahan tersebut.  | 
| `last_updated` | Tanggal dan waktu status tugas terakhir diperbarui.  | 
| `created_at` | Tanggal dan waktu tugas dibuat. | 
| `S3_object_arn` |  Tidak berlaku untuk SSRS tugas.  | 
| `overwrite_S3_backup_file` | Tidak berlaku untuk SSRS tugas. | 
| `KMS_master_key_arn` |  Tidak berlaku untuk SSRS tugas.  | 
| `filepath` |  Tidak berlaku untuk SSRS tugas.  | 
| `overwrite_file` |  Tidak berlaku untuk SSRS tugas.  | 
| `task_metadata` | Metadata yang terkait dengan tugas. SSRS | 

# Menonaktifkan dan menghapus database SSRS
<a name="SSRS.DisableDelete"></a>

Gunakan prosedur berikut untuk menonaktifkan SSRS dan menghapus SSRS database:

**Topics**
+ [Mematikan SSRS](#SSRS.Disable)
+ [Menghapus database SSRS](#SSRS.Drop)

## Mematikan SSRS
<a name="SSRS.Disable"></a>

Untuk mematikanSSRS, hapus `SSRS` opsi dari grup opsinya. Menghapus opsi tidak menghapus SSRS database. Untuk informasi selengkapnya, lihat [Menghapus database SSRS](#SSRS.Drop).

Anda dapat SSRS menghidupkan kembali dengan menambahkan kembali `SSRS` opsi. Jika Anda juga telah menghapus SSRS database, membaca opsi pada instans DB yang sama akan membuat database server laporan baru.

### Konsol
<a name="SSRS.Disable.Console"></a>

**Untuk menghapus SSRS opsi dari grup opsinya**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi dengan opsi `SSRS` (`ssrs-se-2017` dalam contoh sebelumnya).

1. Pilih **Hapus opsi**.

1. Di bawah **Opsi penghapusan, pilih Opsi SSRS****** **untuk** dihapus.

1. Di bagian **Langsung terapkan**, pilih **Ya** untuk segera menghapus opsi, atau **Tidak** untuk menghapusnya pada masa pemeliharaan berikutnya.

1. Pilih **Hapus**.

### CLI
<a name="SSRS.Disable.CLI"></a>

**Untuk menghapus SSRS opsi dari grup opsinya**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds remove-option-from-option-group \
      --option-group-name ssrs-se-2017 \
      --options SSRS \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name ssrs-se-2017 ^
      --options SSRS ^
      --apply-immediately
  ```

## Menghapus database SSRS
<a name="SSRS.Drop"></a>

Menghapus opsi `SSRS` tidak akan menghapus basis data server laporan. Untuk menghapusnya, gunakan prosedur tersimpan berikut. 

Untuk menghapus basis data server laporan, pastikan untuk menghapus opsi `SSRS` terlebih dahulu.

**Untuk menghapus SSRS database**
+ Gunakan prosedur tersimpan berikut.

  ```
  exec msdb.dbo.rds_drop_ssrs_databases
  ```

# Dukungan untuk Microsoft Distributed Transaction Coordinator di RDS for SQL Server
<a name="Appendix.SQLServer.Options.MSDTC"></a>

*Transaksi terdistribusi* adalah transaksi basis data yang melibatkan dua atau beberapa host jaringan. Amazon RDS for SQL Server mendukung transaksi terdistribusi di antara host, dengan satu host dapat menjadi salah satu opsi berikut ini:
+ Instans DB RDS for SQL Server
+ Host SQL Server on-premise
+ Host Amazon EC2 dengan SQL Server diinstal
+ Semua host EC2 atau instans DB RDS lainnya dengan mesin basis data yang mendukung transaksi terdistribusi

Di RDS, dimulai dengan SQL Server 2012 (versi 11.00.5058.0.v1 dan yang lebih baru), semua edisi RDS for SQL Server mendukung transaksi terdistribusi. Dukungan disediakan menggunakan Microsoft Distributed Transaction Coordinator (MSDTC). Untuk informasi mendalam tentang MSDTC, lihat [Distributed Transaction Coordinator](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms684146(v=vs.85)) dalam dokumentasi Microsoft.

**Contents**
+ [Batasan](#Appendix.SQLServer.Options.MSDTC.Limitations)
+ [Mengaktifkan MSDTC](Appendix.SQLServer.Options.MSDTC.Enabling.md)
  + [Membuat grup opsi untuk MSDTC](Appendix.SQLServer.Options.MSDTC.Enabling.md#Appendix.SQLServer.Options.MSDTC.OptionGroup)
  + [Menambahkan MSDTC opsi ke grup opsi](Appendix.SQLServer.Options.MSDTC.Enabling.md#Appendix.SQLServer.Options.MSDTC.Add)
  + [Membuat grup parameter untuk MSDTC](Appendix.SQLServer.Options.MSDTC.Enabling.md#MSDTC.CreateParamGroup)
  + [Memodifikasi parameter untuk MSDTC](Appendix.SQLServer.Options.MSDTC.Enabling.md#ModifyParam.MSDTC)
  + [Mengaitkan grup opsi dan grup parameter dengan instans DB](Appendix.SQLServer.Options.MSDTC.Enabling.md#MSDTC.Apply)
  + [Memodifikasi opsi MSDTC](Appendix.SQLServer.Options.MSDTC.Enabling.md#Appendix.SQLServer.Options.MSDTC.Modify)
+ [Menggunakan transaksi](#Appendix.SQLServer.Options.MSDTC.Using)
  + [Menggunakan transaksi terdistribusi](#Appendix.SQLServer.Options.MSDTC.UsingXA)
  + [Menggunakan transaksi XA](#MSDTC.XA)
  + [Menggunakan pelacakan transaksi](#MSDTC.Tracing)
+ [Menonaktifkan MSDTC](Appendix.SQLServer.Options.MSDTC.Disable.md)
+ [Pemecahan Masalah MSDTC untuk Server RDS SQL](Appendix.SQLServer.Options.MSDTC.Troubleshooting.md)

## Batasan
<a name="Appendix.SQLServer.Options.MSDTC.Limitations"></a>

Batasan berikut berlaku untuk penggunaan MSDTC di RDS for SQL Server:
+ MSDTC tidak didukung pada instans yang menggunakan SQL Server Database Mirroring. Untuk informasi selengkapnya, lihat [Transactions - availability groups and database mirroring](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/transactions-always-on-availability-and-database-mirroring?view=sql-server-ver15#non-support-for-distributed-transactions).
+ Parameter `in-doubt xact resolution` harus diatur ke 1 atau 2. Untuk informasi selengkapnya, lihat [Memodifikasi parameter untuk MSDTC](Appendix.SQLServer.Options.MSDTC.Enabling.md#ModifyParam.MSDTC).
+ MSDTC mengharuskan semua host yang berpartisipasi dalam transaksi terdistribusi dapat diselesaikan menggunakan nama host-nya. RDS akan otomatis mempertahankan fungsionalitas ini untuk instans yang bergabung dengan domain. Namun, untuk instans mandiri, pastikan Anda mengonfigurasi server DNS secara manual.
+ Transaksi XA Java Database Connectivity (JDBC) didukung untuk SQL Server 2017 versi 14.00.3223.3 dan yang lebih tinggi, serta SQL Server 2019.
+ Transaksi terdistribusi yang bergantung pada pustaka tautan dinamis klien (DLLs) pada instance RDS tidak didukung.
+ Penggunaan pustaka tautan dinamis XA kustom tidak didukung.

# Mengaktifkan MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Enabling"></a>

Gunakan proses berikut MSDTC untuk mengaktifkan instans DB Anda:

1. Buat grup opsi baru, atau pilih grup opsi yang sudah ada.

1. Tambahkan opsi `MSDTC` untuk grup opsi.

1. Buat grup parameter baru, atau pilih grup parameter yang sudah ada.

1. Ubah grup parameter untuk menyetel parameter `in-doubt xact resolution` ke 1 atau 2.

1. Kaitkan grup opsi dan grup parameter dengan instans DB.

## Membuat grup opsi untuk MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.OptionGroup"></a>

Gunakan Konsol Manajemen AWS atau AWS CLI untuk membuat grup opsi yang sesuai dengan mesin SQL Server dan versi instans DB Anda.

**catatan**  
Anda juga dapat menggunakan grup opsi yang ada jika itu untuk mesin dan versi SQL Server yang benar.

### Konsol
<a name="OptionGroup.MSDTC.Console"></a>

Prosedur berikut membuat grup opsi untuk SQL Server Standard Edition 2016.

**Untuk membuat grup opsi**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih **Buat grup**.

1. Di panel **Buat grup opsi**, lakukan hal berikut:

   1. Untuk **Nama**, masukkan nama untuk grup opsi yang unik di dalam AWS akun Anda, seperti**msdtc-se-2016**. Nama tersebut hanya boleh berisi huruf, angka, dan tanda hubung.

   1. Untuk **Deskripsi**, masukkan deskripsi singkat grup opsi, seperti **MSDTC option group for SQL Server SE 2016**. Deskripsi digunakan untuk tampilan. 

   1. Untuk **Mesin**, pilih **sqlserver-se**.

   1. Untuk **Versi mesin utama**, pilih **13.00**.

1. Pilih **Buat**.

### CLI
<a name="OptionGroup.MSDTC.CLI"></a>

Contoh berikut membuat grup opsi untuk SQL Server Standard Edition 2016.

**Untuk membuat grup opsi**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-option-group \
      --option-group-name msdtc-se-2016 \
      --engine-name sqlserver-se \
      --major-engine-version 13.00 \
      --option-group-description "MSDTC option group for SQL Server SE 2016"
  ```

  Untuk Windows:

  ```
  aws rds create-option-group ^
      --option-group-name msdtc-se-2016 ^
      --engine-name sqlserver-se ^
      --major-engine-version 13.00 ^
      --option-group-description "MSDTC option group for SQL Server SE 2016"
  ```

## Menambahkan MSDTC opsi ke grup opsi
<a name="Appendix.SQLServer.Options.MSDTC.Add"></a>

Selanjutnya, gunakan Konsol Manajemen AWS atau AWS CLI untuk menambahkan `MSDTC` opsi ke grup opsi.

Pengaturan opsi berikut diperlukan:
+ **Port** — Port yang Anda gunakan untuk mengaksesMSDTC. Nilai yang diizinkan adalah 1150–49151 kecuali untuk 1234, 1434, 3260, 3343, 3389, dan 47001. Nilai default-nya adalah 5000.

  Pastikan port yang ingin Anda gunakan diaktifkan dalam aturan firewall Anda. Selain itu, pastikan jika diperlukan bahwa port ini diaktifkan dalam aturan masuk dan keluar untuk grup keamanan yang terkait dengan instans DB Anda. Untuk informasi selengkapnya, lihat [Tidak dapat terhubung ke instans DB Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting). 
+ **Grup keamanan** — Keanggotaan grup VPC keamanan untuk instans RDS DB Anda.
+ **Jenis autentikasi** – Mode autentikasi antara host. Jenis autentikasi berikut ini didukung:
  + Mutual — RDS Instance saling diautentikasi satu sama lain menggunakan otentikasi terintegrasi. Jika opsi ini dipilih, semua instans yang terkait dengan grup opsi ini harus bergabung dengan domain.
  + Tidak Ada – Tidak ada autentikasi yang dilakukan antara host. Kami tidak menyarankan penggunaan mode ini di lingkungan produksi.
+ **Ukuran log transaksi** — Ukuran log MSDTC transaksi. Nilai yang diizinkan adalah 4–1024 MB. Ukuran default-nya adalah 4 MB.

Pengaturan opsi berikut ini bersifat opsional:
+ **Aktifkan koneksi masuk** — Apakah akan mengizinkan MSDTC koneksi masuk ke instance yang terkait dengan grup opsi ini.
+ **Aktifkan koneksi keluar** — Apakah akan mengizinkan MSDTC koneksi keluar dari instance yang terkait dengan grup opsi ini.
+ **Aktifkan XA** – Apakah akan mengizinkan transaksi XA atau tidak. Untuk informasi selengkapnya tentang protokol XA, lihat [spesifikasi XA](https://publications.opengroup.org/c193).
+ **Aktifkan SNA LU** — Apakah akan mengizinkan protokol SNA LU digunakan untuk transaksi terdistribusi. Untuk informasi selengkapnya tentang dukungan protokol SNA LU, lihat [Mengelola transaksi IBM CICS LU 6.2](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms685136(v=vs.85)) dalam dokumentasi Microsoft.

### Konsol
<a name="Options.MSDTC.Add.Console"></a>

**Untuk menambahkan MSDTC opsi**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi yang baru saja Anda buat.

1. Pilih **Tambah opsi**.

1. Di bawah **Rincian opsi**, pilih **MSDTC****nama Opsi**.

1. Di bagian **Pengaturan opsi**:

   1. Untuk **Port**, masukkan nomor port untuk mengakses. MSDTC Default-nya adalah **5000**.

   1. Untuk **grup Keamanan**, pilih grup VPC keamanan untuk dikaitkan dengan opsi.

   1. Untuk **Jenis autentikasi**, pilih **Timbal Balik** atau **Tidak Ada**.

   1. Untuk **Ukuran log transaksi**, masukkan nilai dari 4–1024. Default-nya adalah **4**.

1. Di bagian **Konfigurasi tambahan**, lakukan tindakan berikut:

   1. Untuk **Koneksi**, sebagaimana dibutuhkan pilih **Aktifkan koneksi masuk** dan **Aktifkan koneksi keluar**.

   1. **Untuk **protokol yang Diizinkan**, sesuai kebutuhan pilih **Aktifkan XA dan Aktifkan** LU. SNA**

1. Di bagian **Penjadwalan**, pilih apakah akan menambahkan opsi langsung atau pada masa pemeliharaan berikutnya.

1. Pilih **Tambah opsi**.

   Boot ulang tidak diperlukan untuk menambahkan opsi ini.

### CLI
<a name="Options.MSDTC.Add.CLI"></a>

**Untuk menambahkan MSDTC opsi**

1. Buat JSON file, misalnya`msdtc-option.json`, dengan parameter yang diperlukan berikut.

   ```
   {
   "OptionGroupName":"msdtc-se-2016",
   "OptionsToInclude": [
   	{
   	"OptionName":"MSDTC",
   	"Port":5000,
   	"VpcSecurityGroupMemberships":["sg-0abcdef123"],
   	"OptionSettings":[{"Name":"AUTHENTICATION","Value":"MUTUAL"},{"Name":"TRANSACTION_LOG_SIZE","Value":"4"}]
   	}],
   "ApplyImmediately": true
   }
   ```

1. Tambahkan opsi `MSDTC` ke grup opsi.  
**Example**  

   Untuk Linux, macOS, atau Unix:

   ```
   aws rds add-option-to-option-group \
       --cli-input-json file://msdtc-option.json \
       --apply-immediately
   ```

   Untuk Windows:

   ```
   aws rds add-option-to-option-group ^
       --cli-input-json file://msdtc-option.json ^
       --apply-immediately
   ```

   Tidak diperlukan boot ulang.

## Membuat grup parameter untuk MSDTC
<a name="MSDTC.CreateParamGroup"></a>

Buat atau modifikasi grup parameter untuk `in-doubt xact resolution` parameter yang sesuai dengan edisi SQL Server dan versi instans DB Anda.

### Konsol
<a name="CreateParamGroup.MSDTC.Console"></a>

Contoh berikut membuat grup parameter untuk SQL Server Standard Edition 2016.

**Untuk membuat grup parameter**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup parameter**.

1. Pilih **Buat grup parameter**.

1. Di panel **Buat grup parameter**, lakukan hal berikut:

   1. Untuk **Rangkaian grup parameter**, pilih **sqlserver-se-13.0**.

   1. Untuk **Nama grup**, masukkan pengidentifikasi grup parameter, seperti **msdtc-sqlserver-se-13**.

   1. Untuk **Deskripsi**, masukkan **in-doubt xact resolution**.

1. Pilih **Buat**.

### CLI
<a name="CreateParamGroup.MSDTC.CLI"></a>

Contoh berikut membuat grup parameter untuk SQL Server Standard Edition 2016.

**Untuk membuat grup parameter**
+ Gunakan salah satu perintah berikut.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-db-parameter-group \
      --db-parameter-group-name msdtc-sqlserver-se-13 \
      --db-parameter-group-family "sqlserver-se-13.0" \
      --description "in-doubt xact resolution"
  ```

  Untuk Windows:

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name msdtc-sqlserver-se-13 ^
      --db-parameter-group-family "sqlserver-se-13.0" ^
      --description "in-doubt xact resolution"
  ```

## Memodifikasi parameter untuk MSDTC
<a name="ModifyParam.MSDTC"></a>

Ubah `in-doubt xact resolution` parameter dalam grup parameter yang sesuai dengan edisi SQL Server dan versi instans DB Anda.

UntukMSDTC, atur `in-doubt xact resolution` parameter ke salah satu dari berikut ini:
+ `1`—`Presume commit`. Setiap MSDTC transaksi yang diragukan dianggap telah dilakukan.
+ `2`—`Presume abort`. Setiap MSDTC transaksi yang diragukan dianggap telah berhenti.

Untuk informasi selengkapnya, lihat [in-doubt xact resolution server configuration option](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/in-doubt-xact-resolution-server-configuration-option) dalam dokumentasi Microsoft.

### Konsol
<a name="ModifyParam.MSDTC.Console"></a>

Contoh berikut memodifikasi grup parameter yang Anda buat untuk SQL Server Standard Edition 2016.

**Untuk mengubah grup parameter**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup parameter**.

1. Pilih grup parameter, seperti **msdtc-sqlserver-se-13**.

1. Di bagian **Parameter**, filter daftar parameter untuk **xact**.

1. Pilih **in-doubt xact resolution**.

1. Pilih **Edit parameter**.

1. Masukkan **1** atau **2**.

1. Pilih **Simpan perubahan**.

### CLI
<a name="ModifyParam.MSDTC.CLI"></a>

Contoh berikut memodifikasi grup parameter yang Anda buat untuk SQL Server Standard Edition 2016.

**Untuk mengubah grup parameter**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds modify-db-parameter-group \
      --db-parameter-group-name msdtc-sqlserver-se-13 \
      --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1,ApplyMethod=immediate"
  ```

  Untuk Windows:

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name msdtc-sqlserver-se-13 ^
      --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1,ApplyMethod=immediate"
  ```

## Mengaitkan grup opsi dan grup parameter dengan instans DB
<a name="MSDTC.Apply"></a>

Anda dapat menggunakan Konsol Manajemen AWS or AWS CLI untuk mengaitkan grup MSDTC opsi dan grup parameter dengan instans DB.

### Konsol
<a name="MSDTC.Apply.Console"></a>

Anda dapat mengaitkan grup MSDTC opsi dan grup parameter dengan instans DB baru atau yang sudah ada.
+ Untuk instans DB baru, kaitkan saat Anda meluncurkan instans. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+ Untuk instans DB yang sudah ada, kaitkan dengan memodifikasi instans. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).
**catatan**  
Jika Anda menggunakan instance DB yang sudah bergabung dengan domain, instans tersebut harus sudah memiliki domain Active Directory dan AWS Identity and Access Management (IAM) peran yang terkait dengannya. Jika Anda membuat instance baru yang bergabung dengan domain, tentukan domain dan peran Direktori Aktif yang ada. IAM Untuk informasi selengkapnya, lihat [Bekerja dengan Direktori Aktif AWS Terkelola dengan RDS untuk SQL Server](USER_SQLServerWinAuth.md).

### CLI
<a name="MSDTC.Apply.CLI"></a>

Anda dapat mengaitkan grup MSDTC opsi dan grup parameter dengan instans DB baru atau yang sudah ada.

**catatan**  
Jika Anda menggunakan instans DB yang bergabung dengan domain yang ada, itu harus sudah memiliki domain dan IAM peran Direktori Aktif yang terkait dengannya. Jika Anda membuat instance baru yang bergabung dengan domain, tentukan domain dan peran Direktori Aktif yang ada. IAM Untuk informasi selengkapnya, lihat [Bekerja dengan Direktori Aktif AWS Terkelola dengan RDS untuk SQL Server](USER_SQLServerWinAuth.md).

**Untuk membuat instance DB dengan grup MSDTC opsi dan grup parameter**
+ Tentukan jenis mesin DB dan versi utama yang sama seperti yang Anda gunakan saat membuat grup opsi.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier mydbinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 13.00.5426.0.v1 \
      --allocated-storage 100 \
      --manage-master-user-password \
      --master-username admin \
      --storage-type gp2 \
      --license-model li \
      --domain-iam-role-name my-directory-iam-role \
      --domain my-domain-id \
      --option-group-name msdtc-se-2016 \
      --db-parameter-group-name msdtc-sqlserver-se-13
  ```

  Untuk Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier mydbinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 13.00.5426.0.v1 ^
      --allocated-storage 100 ^
      --manage-master-user-password ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --domain-iam-role-name my-directory-iam-role ^
      --domain my-domain-id ^
      --option-group-name msdtc-se-2016 ^
      --db-parameter-group-name msdtc-sqlserver-se-13
  ```

**Untuk memodifikasi instance DB dan mengaitkan grup MSDTC opsi dan grup parameter**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mydbinstance \
      --option-group-name msdtc-se-2016 \
      --db-parameter-group-name msdtc-sqlserver-se-13 \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mydbinstance ^
      --option-group-name msdtc-se-2016 ^
      --db-parameter-group-name msdtc-sqlserver-se-13 ^
      --apply-immediately
  ```

## Memodifikasi opsi MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Modify"></a>

Setelah mengaktifkan opsi `MSDTC`, Anda dapat mengubah pengaturannya. Untuk informasi cara mengubah pengaturan opsi, lihat [Memodifikasi pengaturan opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption).

**catatan**  
Beberapa perubahan pada pengaturan MSDTC opsi mengharuskan MSDTC layanan dimulai ulang. Persyaratan ini dapat memengaruhi transaksi terdistribusi yang berjalan.

## Menggunakan transaksi
<a name="Appendix.SQLServer.Options.MSDTC.Using"></a>

### Menggunakan transaksi terdistribusi
<a name="Appendix.SQLServer.Options.MSDTC.UsingXA"></a>

Di Amazon RDS for SQL Server, Anda dapat menjalankan transaksi terdistribusi dengan cara yang sama seperti transaksi terdistribusi yang berjalan on-premise:
+ Menggunakan transaksi yang dapat dipromosikan .NET framework `System.Transactions`, yang mengoptimalkan transaksi terdistribusi dengan menunda pembuatannya hingga diperlukan.

  Dalam hal ini, promosi bersifat otomatis dan tidak mengharuskan Anda untuk melakukan intervensi apa pun. Jika hanya ada satu pengelola sumber daya dalam transaksi, tidak ada promosi yang dilakukan. Untuk informasi selengkapnya tentang cakupan transaksi implisit, lihat [Implementing an implicit transaction using transaction scope](https://docs.microsoft.com/en-us/dotnet/framework/data/transactions/implementing-an-implicit-transaction-using-transaction-scope) dalam dokumentasi Microsoft.

  Transaksi yang dapat dipromosikan didukung dengan implementasi .NET ini:
  + Dimulai dengan ADO.NET 2.0, `System.Data.SqlClient` mendukung transaksi yang dapat dipromosikan dengan SQL Server. Untuk informasi selengkapnya, lihat [System.Transactions integration with SQL Server](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/system-transactions-integration-with-sql-server) dalam dokumentasi Microsoft.
  + ODP.NET mendukung `System.Transactions`. Transaksi lokal dibuat untuk koneksi pertama yang dibuka dalam cakupan `TransactionsScope` ke Oracle Database 11g rilis 1 (versi 11.1) dan yang lebih baru. Ketika koneksi kedua dibuka, transaksi ini akan otomatis dipromosikan menjadi transaksi terdistribusi. Untuk informasi dukungan transaksi terdistribusi di ODP.NET selengkapnya, lihat [Microsoft Distributed Transaction Coordinator integration](https://docs.oracle.com/en/database/oracle/oracle-data-access-components/18.3/ntmts/using-mts-with-oracledb.html) dalam dokumentasi Microsoft.
+ Menggunakan pernyataan `BEGIN DISTRIBUTED TRANSACTION`. Untuk informasi selengkapnya, lihat [BEGIN DISTRIBUTED TRANSACTION (Transact-SQL)](https://docs.microsoft.com/en-us/sql/t-sql/language-elements/begin-distributed-transaction-transact-sql) dalam dokumentasi Microsoft.

### Menggunakan transaksi XA
<a name="MSDTC.XA"></a>

Mulai dari RDS for SQL Server 2017 versi 14.00.3223.3, Anda dapat mengontrol transaksi terdistribusi menggunakan JDBC. Saat Anda mengatur pengaturan opsi `Enable XA` ke `true` dalam opsi `MSDTC`, RDS akan otomatis mengaktifkan transaksi JDBC dan memberikan peran `SqlJDBCXAUser` tersebut kepada pengguna `guest`. Tindakan ini akan memungkinkan pelaksanaan transaksi terdistribusi melalui JDBC. Untuk informasi selengkapnya, termasuk contoh kode, lihat [Understanding XA transactions](https://docs.microsoft.com/en-us/sql/connect/jdbc/understanding-xa-transactions) dalam dokumentasi Microsoft.

### Menggunakan pelacakan transaksi
<a name="MSDTC.Tracing"></a>

RDS mendukung pengendalian jejak transaksi MSDTC dan mengunduhnya dari instans DB RDS untuk memecahkan masalah. Anda dapat mengontrol sesi pelacakan transaksi dengan menjalankan prosedur RDS berikut.

```
exec msdb.dbo.rds_msdtc_transaction_tracing 'trace_action',
[@traceall='0|1'],
[@traceaborted='0|1'],
[@tracelong='0|1'];
```

Parameter berikut diperlukan:
+ `trace_action` – Tindakan pelacakan. Tindakan tersebut dapat berupa `START`, `STOP`, atau `STATUS`.

Parameter berikut ini bersifat opsional:
+ `@traceall` – Atur ke 1 untuk melacak semua transaksi terdistribusi. Default-nya adalah 0.
+ `@traceaborted` – Atur ke 1 untuk melacak transaksi terdistribusi yang dibatalkan. Default-nya adalah 0.
+ `@tracelong` – Atur ke 1 untuk melacak transaksi terdistribusi yang berlangsung lama. Default-nya adalah 0.

**Example tindakan pelacakan START**  
Untuk memulai sesi pelacakan transaksi baru, jalankan pernyataan contoh berikut.  

```
exec msdb.dbo.rds_msdtc_transaction_tracing 'START',
@traceall='0',
@traceaborted='1',
@tracelong='1';
```
Hanya satu sesi pelacakan transaksi yang dapat aktif pada satu waktu. Jika perintah sesi pelacakan `START` dikeluarkan saat sesi pelacakan aktif, kesalahan akan dikembalikan dan sesi pelacakan aktif tetap tidak berubah.

**Example tindakan pelacakan STOP**  
Untuk menghentikan sesi pelacakan transaksi, jalankan pernyataan berikut.  

```
exec msdb.dbo.rds_msdtc_transaction_tracing 'STOP'
```
Pernyataan ini akan menghentikan sesi pelacakan transaksi aktif dan menyimpan data jejak transaksi ke direktori log di instans DB RDS. Baris pertama output berisi hasil keseluruhan, dan baris berikutnya menunjukkan detail operasi.  
Berikut ini adalah contoh penghentian sesi pelacakan yang berhasil.  

```
OK: Trace session has been successfully stopped.
Setting log file to: D:\rdsdbdata\MSDTC\Trace\dtctrace.log
Examining D:\rdsdbdata\MSDTC\Trace\msdtctr.mof for message formats,  8 found.
Searching for TMF files on path: (null)
Logfile D:\rdsdbdata\MSDTC\Trace\dtctrace.log:
 OS version    10.0.14393  (Currently running on 6.2.9200)
 Start Time    <timestamp>
 End Time      <timestamp>
 Timezone is   @tzres.dll,-932 (Bias is 0mins)
 BufferSize            16384 B
 Maximum File Size     10 MB
 Buffers  Written      Not set (Logger may not have been stopped).
 Logger Mode Settings (11000002) ( circular paged
 ProcessorCount         1 
Processing completed   Buffers: 1, Events: 3, EventsLost: 0 :: Format Errors: 0, Unknowns: 3
Event traces dumped to d:\rdsdbdata\Log\msdtc_<timestamp>.log
```
Anda dapat menggunakan informasi terperinci untuk mencari nama file log yang dihasilkan. Untuk informasi selengkapnya tentang pengunduhan file log dari instans DB RDS, lihat [Memantau file RDS Amazon](USER_LogAccess.md).  
Log sesi pelacakan tetap berada di instans selama 35 hari. Semua log sesi pelacakan yang lebih lama akan otomatis dihapus.

**Example tindakan pelacakan STATUS**  
Untuk melacak status sesi pelacakan transaksi, jalankan pernyataan berikut.  

```
exec msdb.dbo.rds_msdtc_transaction_tracing 'STATUS'
```
Pernyataan ini menghasilkan informasi berikut sebagai baris kumpulan hasil yang terpisah.  

```
OK
SessionStatus: <Started|Stopped>
TraceAll: <True|False>
TraceAborted: <True|False>
TraceLongLived: <True|False>
```
Baris pertama menunjukkan hasil keseluruhan dari operasi: `OK` atau `ERROR` beserta detail, jika ada. Baris berikutnya menunjukkan detail status sesi pelacakan:   
+ `SessionStatus` dapat berupa salah satu status berikut:
  + `Started` jika sesi pelacakan berjalan.
  + `Stopped` jika tidak ada sesi pelacakan yang berjalan.
+ Tanda sesi pelacakan bisa bernilai `True` atau `False` bergantung pada pengaturannya dalam perintah `START`.

# Menonaktifkan MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Disable"></a>

Untuk menonaktifkanMSDTC, hapus `MSDTC` opsi dari grup opsinya.

## Konsol
<a name="Options.MSDTC.Disable.Console"></a>

**Untuk menghapus MSDTC opsi dari grup opsinya**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi dengan opsi `MSDTC` (`msdtc-se-2016` dalam contoh sebelumnya).

1. Pilih **Hapus opsi**.

1. Di bawah **Opsi penghapusan, pilih Opsi MSDTC****** **untuk** dihapus.

1. Di bagian **Langsung terapkan**, pilih **Ya** untuk segera menghapus opsi, atau **Tidak** untuk menghapusnya pada masa pemeliharaan berikutnya.

1. Pilih **Hapus**.

## CLI
<a name="Options.MSDTC.Disable.CLI"></a>

**Untuk menghapus MSDTC opsi dari grup opsinya**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds remove-option-from-option-group \
      --option-group-name msdtc-se-2016 \
      --options MSDTC \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name msdtc-se-2016 ^
      --options MSDTC ^
      --apply-immediately
  ```

# Pemecahan Masalah MSDTC untuk Server RDS SQL
<a name="Appendix.SQLServer.Options.MSDTC.Troubleshooting"></a>

Dalam beberapa kasus, Anda mungkin mengalami kesulitan membangun koneksi antara MSDTC berjalan di komputer klien dan MSDTC layanan yang berjalan pada instance RDS for SQL Server DB. Jika demikian, pastikan beberapa hal berikut:
+ Aturan masuk untuk grup keamanan yang terkait dengan instans DB telah dikonfigurasi dengan benar. Untuk informasi selengkapnya, lihat [Tidak dapat terhubung ke instans DB Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).
+ Komputer klien Anda telah dikonfigurasi dengan benar.
+ Aturan MSDTC firewall pada komputer klien Anda diaktifkan.

**Untuk mengonfigurasi komputer klien**

1. Buka **Component Services**.

   Bisa juga melalui **Server Manager**, pilih **Tools**, lalu pilih **Component Services**.

1. Perluas **Component Services**, perluas **Computers**, perluas **My Computer**, lalu perluas **Distributed Transaction Coordinator**.

1. Buka menu konteks (klik kanan) untuk **Local DTC** dan pilih **Properties**.

1. Pilih tab **Security**.

1. Pilih semua dari opsi berikut:
   + **DTCAkses Jaringan**
   + **Allow Inbound**
   + **Allow Outbound**

1. Pastikan bahwa mode autentikasi yang benar telah dipilih:
   + **Mutual Authentication Required** – Mesin klien digabungkan ke domain yang sama dengan simpul lain yang berpartisipasi dalam transaksi terdistribusi, atau ada hubungan kepercayaan yang dikonfigurasi antar-domain.
   + **No Authentication Required** – Semua kasus lainnya.

1. Pilih **OK** untuk menyimpan perubahan Anda.

1. Jika diminta untuk memulai ulang layanan, pilih **Yes**.

**Untuk mengaktifkan aturan MSDTC firewall**

1. Buka Windows Firewall, lalu pilih **Advanced settings**.

   Bisa juga melalui **Server Manager**, pilih **Tools**, lalu pilih **Windows Firewall with Advanced Security**.
**catatan**  
Bergantung pada sistem operasi Anda, Windows Firewall mungkin disebut Windows Defender Firewall.

1. Pilih **Inbound Rules** di panel kiri.

1. Aktifkan aturan firewall berikut, jika belum diaktifkan:
   + **Koordinator Transaksi Terdistribusi () RPC**
   + **Koordinator Transaksi Terdistribusi (RPC) - EPMAP**
   + **Koordinator Transaksi Terdistribusi (TCP-In)**

1. Tutup Windows Firewall.

# Gubernur sumber daya Microsoft SQL Server dengan RDS untuk SQL Server
<a name="Appendix.SQLServer.Options.ResourceGovernor"></a>

Resource governor adalah fitur SQL Server Enterprise Edition yang memberi Anda kontrol yang tepat atas sumber daya instans Anda. Ini memungkinkan Anda untuk menetapkan batasan spesifik tentang bagaimana beban kerja menggunakan CPU, memori, dan I/O sumber daya fisik. Dengan gubernur sumber daya, Anda dapat:
+ Mencegah monopoli sumber daya di lingkungan multi-penyewa dengan mengelola bagaimana beban kerja yang berbeda berbagi sumber daya instans
+ Memberikan kinerja yang dapat diprediksi dengan menetapkan batas dan prioritas sumber daya tertentu untuk pengguna dan aplikasi yang berbeda

Anda dapat mengaktifkan pengatur sumber daya pada RDS yang sudah ada atau baru untuk instans SQL Server DB.

Gubernur sumber daya menggunakan tiga konsep dasar:
+ **Resource pool** - Sebuah wadah yang mengelola sumber daya fisik instans Anda (CPU, memori, dan I/O). Anda mendapatkan dua kolam bawaan (internal dan default) dan Anda dapat membuat kolam khusus tambahan.
+ **Kelompok beban kerja** - Wadah untuk sesi database dengan karakteristik serupa. Setiap kelompok beban kerja termasuk dalam kumpulan sumber daya. Anda mendapatkan dua grup beban kerja bawaan (internal dan default) dan Anda dapat membuat grup beban kerja khusus tambahan.
+ **Klasifikasi** - Proses yang menentukan grup beban kerja mana yang menangani sesi masuk berdasarkan nama pengguna, nama aplikasi, nama database, atau nama host.

Untuk detail tambahan tentang fungsionalitas pengatur sumber daya di SQL Server, lihat [Resource Governor](https://learn.microsoft.com/en-us/sql/relational-databases/resource-governor/resource-governor?view=sql-server-ver16) di dokumentasi Microsoft.

**Contents**
+ [Versi dan Wilayah yang didukung](#ResourceGovernor.SupportedVersions)
+ [Batasan dan rekomendasi](#ResourceGovernor.Limitations)
+ [Mengaktifkan pengatur sumber daya Microsoft SQL Server untuk RDS Anda untuk instans SQL Server](ResourceGovernor.Enabling.md)
  + [Membuat grup opsi untuk `RESOURCE_GOVERNOR`](ResourceGovernor.Enabling.md#ResourceGovernor.OptionGroup)
  + [Menambahkan opsi `RESOURCE_GOVERNOR` ke grup opsi](ResourceGovernor.Enabling.md#ResourceGovernor.Add)
  + [Mengaitkan grup opsi dengan instans DB](ResourceGovernor.Enabling.md#ResourceGovernor.Apply)
+ [Menggunakan pengatur sumber daya Microsoft SQL Server untuk RDS Anda untuk instans SQL Server](ResourceGovernor.Using.md)
  + [Kelola kumpulan sumber daya](ResourceGovernor.Using.md#ResourceGovernor.ManageResourcePool)
    + [Buat Pool sumber daya](ResourceGovernor.Using.md#ResourceGovernor.CreateResourcePool)
    + [Ubah kolam sumber daya](ResourceGovernor.Using.md#ResourceGovernor.AlterResourcePool)
    + [Jatuhkan kolam sumber daya](ResourceGovernor.Using.md#ResourceGovernor.DropResourcePool)
  + [Kelola grup beban kerja](ResourceGovernor.Using.md#ResourceGovernor.ManageWorkloadGroups)
    + [Buat grup beban kerja](ResourceGovernor.Using.md#ResourceGovernor.CreateWorkloadGroup)
    + [Ubah kelompok beban kerja](ResourceGovernor.Using.md#ResourceGovernor.AlterWorkloadGroup)
    + [Jatuhkan grup beban kerja](ResourceGovernor.Using.md#ResourceGovernor.DropWorkloadGroup)
  + [Buat dan daftarkan fungsi pengklasifikasi](ResourceGovernor.Using.md#ResourceGovernor.ClassifierFunction)
  + [Fungsi pengklasifikasi drop](ResourceGovernor.Using.md#ResourceGovernor.DropClassifier)
  + [Fungsi pengklasifikasi de-register](ResourceGovernor.Using.md#ResourceGovernor.DeregisterClassifier)
  + [Setel ulang statistik](ResourceGovernor.Using.md#ResourceGovernor.ResetStats)
  + [Perubahan konfigurasi gubernur sumber daya](ResourceGovernor.Using.md#ResourceGovernor.ConfigChanges)
  + [Mengikat TempDB ke kumpulan sumber daya](ResourceGovernor.Using.md#ResourceGovernor.BindTempDB)
  + [Lepaskan TempDB dari kumpulan sumber daya](ResourceGovernor.Using.md#ResourceGovernor.UnbindTempDB)
  + [Gubernur sumber daya pembersihan](ResourceGovernor.Using.md#ResourceGovernor.Cleanup)
+ [Pertimbangan untuk penyebaran Multi-AZ](#ResourceGovernor.Considerations)
+ [Pertimbangan untuk replika baca](#ResourceGovernor.ReadReplica)
+ [Pantau pengatur sumber daya Microsoft SQL Server menggunakan tampilan sistem untuk RDS Anda untuk instans SQL Server](ResourceGovernor.Monitoring.md)
  + [Statistik runtime kumpulan sumber daya](ResourceGovernor.Monitoring.md#ResourceGovernor.ResourcePoolStats)
+ [Menonaktifkan pengatur sumber daya Microsoft SQL Server untuk RDS Anda untuk instans SQL Server](ResourceGovernor.Disabling.md)
+ [Praktik terbaik untuk mengonfigurasi gubernur sumber daya pada RDS untuk SQL Server](ResourceGovernor.BestPractices.md)

## Versi dan Wilayah yang didukung
<a name="ResourceGovernor.SupportedVersions"></a>

Amazon RDS mendukung pengatur sumber daya untuk versi dan edisi SQL Server berikut di semua Wilayah AWS tempat RDS untuk SQL Server tersedia:
+ Edisi Pengembang dan Perusahaan SQL Server 2022
+ SQL Server 2019 Enterprise Edition
+ SQL Server 2017 Enterprise Edition
+ SQL Server 2016 Enterprise Edition

## Batasan dan rekomendasi
<a name="ResourceGovernor.Limitations"></a>

Batasan dan rekomendasi berikut berlaku untuk gubernur sumber daya:
+ Pembatasan edisi dan layanan:
  + Hanya tersedia di SQL Server Enterprise Edition.
  + Manajemen sumber daya terbatas pada SQL Server Database Engine. Gubernur sumber daya untuk Layanan Analisis, Layanan Integrasi, dan Layanan Pelaporan tidak didukung.
+ Batasan konfigurasi:
  + Harus menggunakan prosedur tersimpan Amazon RDS untuk semua konfigurasi.
  + Pernyataan DDL asli dan konfigurasi GUI SQL Server Management Studio tidak didukung.
+ Parameter kumpulan sumber daya:
  + Nama pool yang dimulai dengan `rds_` tidak didukung.
  + Modifikasi kumpulan sumber daya internal dan default tidak diizinkan.
  + Untuk kumpulan sumber daya yang ditentukan pengguna, parameter kumpulan sumber daya berikut tidak didukung:
    + `MIN_MEMORY_PERCENT`
    + `MIN_CPU_PERCENT`
    + `MIN_IOPS_PER_VOLUME`
    + `AFFINITY`
+ Parameter grup beban kerja:
  + Nama grup beban kerja yang dimulai dengan `rds_` tidak didukung.
  + Modifikasi grup beban kerja internal tidak diizinkan.
  + Untuk grup beban kerja default:
    + Hanya `REQUEST_MAX_MEMORY_GRANT_PERCENT` parameter yang dapat dimodifikasi.
    + Untuk grup beban kerja default, `REQUEST_MAX_MEMORY_GRANT_PERCENT` harus antara 1 dan 70.
    + Semua parameter lainnya terkunci dan tidak dapat diubah.
  + Kelompok beban kerja yang ditentukan pengguna memungkinkan modifikasi semua parameter.
+ Keterbatasan fungsi pengklasifikasi:
  + Fungsi pengklasifikasi merutekan koneksi ke grup beban kerja khusus berdasarkan kriteria yang ditentukan (nama pengguna, database, host, atau nama aplikasi).
  + Mendukung hingga dua grup beban kerja yang ditentukan pengguna dengan kondisi perutean masing-masing.
  + Menggabungkan kriteria dengan `AND` kondisi dalam setiap kelompok.
  + Membutuhkan setidaknya satu kriteria routing per kelompok beban kerja.
  + Hanya metode klasifikasi yang tercantum di atas yang didukung.
  + Nama fungsi harus dimulai dengan`rg_classifier_`.
  + Penetapan grup default jika tidak ada kondisi yang cocok.

# Mengaktifkan pengatur sumber daya Microsoft SQL Server untuk RDS Anda untuk instans SQL Server
<a name="ResourceGovernor.Enabling"></a>

Aktifkan pengatur sumber daya dengan menambahkan `RESOURCE_GOVERNOR` opsi ke RDS Anda untuk instans SQL Server DB. Gunakan proses berikut:

1. Buat grup opsi baru, atau pilih grup opsi yang sudah ada.

1. Tambahkan opsi `RESOURCE_GOVERNOR` untuk grup opsi.

1. Kaitkan grup opsi tersebut dengan instans DB.

**catatan**  
Mengaktifkan gubernur sumber daya melalui grup opsi tidak memerlukan reboot.

## Membuat grup opsi untuk `RESOURCE_GOVERNOR`
<a name="ResourceGovernor.OptionGroup"></a>

Untuk mengaktifkan pengatur sumber daya, buat grup opsi atau ubah grup opsi yang sesuai dengan edisi SQL Server dan versi instans DB yang akan Anda gunakan. Untuk menyelesaikan prosedur ini, gunakan Konsol Manajemen AWS atau AWS CLI.

### Konsol
<a name="ResourceGovernor.OptionGroup.Console"></a>

Gunakan prosedur berikut untuk membuat grup opsi untuk SQL Server Enterprise Edition 2022.

**Untuk membuat grup opsi**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih **Buat grup**.

1. Di jendela **Buat grup opsi**, lakukan hal berikut:

   1. Untuk **Nama**, masukkan nama untuk grup opsi yang unik di dalam AWS akun Anda, seperti**resource-governor-ee-2022**. Nama tersebut hanya boleh berisi huruf, angka, dan tanda hubung.

   1. Untuk **Deskripsi**, masukkan deskripsi singkat grup opsi, seperti **RESOURCE\$1GOVERNOR option group for SQL Server EE 2022**. Deskripsi digunakan untuk tampilan.

   1. Untuk **Engine**, pilih **sqlserver-EE**.

   1. Untuk **versi mesin Major**, pilih **16.00**.

1. Pilih **Buat**.

### CLI
<a name="ResourceGovernor.OptionGroup.CLI"></a>

Prosedur berikut membuat grup opsi untuk SQL Server Enterprise Edition 2022.

**Untuk membuat grup opsi**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-option-group \
      --option-group-name resource-governor-ee-2022 \
      --engine-name sqlserver-ee \
      --major-engine-version 16.00 \
      --option-group-description "RESOURCE_GOVERNOR option group for SQL Server EE 2022"
  ```

  Untuk Windows:

  ```
  aws rds create-option-group ^
      --option-group-name resource-governor-ee-2022 ^
      --engine-name sqlserver-ee ^
      --major-engine-version 16.00 ^
      --option-group-description "RESOURCE_GOVERNOR option group for SQL Server EE 2022"
  ```

## Menambahkan opsi `RESOURCE_GOVERNOR` ke grup opsi
<a name="ResourceGovernor.Add"></a>

Selanjutnya, gunakan Konsol Manajemen AWS atau AWS CLI untuk menambahkan `RESOURCE_GOVERNOR` opsi ke grup opsi Anda.

### Konsol
<a name="ResourceGovernor.Add.Console"></a>

**Untuk menambahkan opsi RESOURCE\$1GOVERNOR**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi yang baru saja Anda buat, **resource-governor-ee-2022** dalam contoh ini.

1. Pilih **Tambah opsi**.

1. **Di bawah **Rincian opsi**, pilih **RESOURCE\$1GOVERNOR** untuk nama Opsi.**

1. Di bagian **Penjadwalan**, pilih apakah akan menambahkan opsi langsung atau pada masa pemeliharaan berikutnya.

1. Pilih **Tambah opsi**.

### CLI
<a name="ResourceGovernor.Add.CLI"></a>

**Untuk menambahkan `RESOURCE_GOVERNOR` opsi**
+ Tambahkan opsi `RESOURCE_GOVERNOR` ke grup opsi.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds add-option-to-option-group \
      --option-group-name resource-governor-ee-2022 \
      --options "OptionName=RESOURCE_GOVERNOR" \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds add-option-to-option-group ^
      --option-group-name resource-governor-ee-2022 ^
      --options "OptionName=RESOURCE_GOVERNOR" ^
      --apply-immediately
  ```

## Mengaitkan grup opsi dengan instans DB
<a name="ResourceGovernor.Apply"></a>

Untuk mengaitkan grup `RESOURCE_GOVERNOR` opsi dengan instans DB Anda, gunakan Konsol Manajemen AWS atau AWS CLI.

### Konsol
<a name="ResourceGovernor.Apply.Console"></a>

Untuk menyelesaikan pengaktifan resource governor, kaitkan grup `RESOURCE_GOVERNOR` opsi Anda dengan instans DB baru atau yang sudah ada:
+ Untuk instans DB baru, kaitkan saat Anda meluncurkan instans. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+ Untuk instans DB yang sudah ada, kaitkan dengan memodifikasi instans. Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

### CLI
<a name="ResourceGovernor.Apply.CLI"></a>

Anda dapat mengaitkan grup `RESOURCE_GOVERNOR` opsi dengan instans DB baru atau yang sudah ada.

**Untuk membuat instance dengan grup `RESOURCE_GOVERNOR` opsi**
+ Tentukan tipe mesin DB yang sama dan versi utama yang Anda gunakan saat membuat grup opsi.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier mytestsqlserverresourcegovernorinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-ee \
      --engine-version 16.00 \
      --license-model license-included \
      --allocated-storage 100 \
      --master-username admin \
      --master-user-password password \
      --storage-type gp2 \
      --option-group-name resource-governor-ee-2022
  ```

  Untuk Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier mytestsqlserverresourcegovernorinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-ee ^
      --engine-version 16.00 ^
      --license-model license-included ^
      --allocated-storage 100 ^
      --master-username admin ^
      --master-user-password password ^
      --storage-type gp2 ^
      --option-group-name resource-governor-ee-2022
  ```

**Untuk memodifikasi instans dan mengaitkan grup opsi `RESOURCE_GOVERNOR`**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mytestinstance \
      --option-group-name resource-governor-ee-2022 \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mytestinstance ^
      --option-group-name resource-governor-ee-2022 ^
      --apply-immediately
  ```

# Menggunakan pengatur sumber daya Microsoft SQL Server untuk RDS Anda untuk instans SQL Server
<a name="ResourceGovernor.Using"></a>

Setelah menambahkan opsi gubernur sumber daya ke grup opsi Anda, gubernur sumber daya belum aktif di tingkat mesin database. Untuk sepenuhnya mengaktifkan gubernur sumber daya, Anda harus menggunakan RDS untuk prosedur tersimpan SQL Server untuk mengaktifkannya dan membuat objek pengatur sumber daya yang diperlukan. Untuk informasi selengkapnya, lihat [Menyambung ke instans Microsoft SQL Server DB](USER_ConnectToMicrosoftSQLServerInstance.md).

Pertama, sambungkan ke database SQL Server Anda, lalu panggil RDS yang sesuai untuk prosedur tersimpan SQL Server untuk menyelesaikan konfigurasi. Untuk petunjuk tentang melakukan koneksi ke basis data Anda, lihat [Menyambung ke instans Microsoft SQL Server DB](USER_ConnectToMicrosoftSQLServerInstance.md).

Untuk petunjuk bagaimana cara memanggil setiap prosedur tersimpan, lihat topik berikut:

**Topics**
+ [Kelola kumpulan sumber daya](#ResourceGovernor.ManageResourcePool)
+ [Kelola grup beban kerja](#ResourceGovernor.ManageWorkloadGroups)
+ [Buat dan daftarkan fungsi pengklasifikasi](#ResourceGovernor.ClassifierFunction)
+ [Fungsi pengklasifikasi drop](#ResourceGovernor.DropClassifier)
+ [Fungsi pengklasifikasi de-register](#ResourceGovernor.DeregisterClassifier)
+ [Setel ulang statistik](#ResourceGovernor.ResetStats)
+ [Perubahan konfigurasi gubernur sumber daya](#ResourceGovernor.ConfigChanges)
+ [Mengikat TempDB ke kumpulan sumber daya](#ResourceGovernor.BindTempDB)
+ [Lepaskan TempDB dari kumpulan sumber daya](#ResourceGovernor.UnbindTempDB)
+ [Gubernur sumber daya pembersihan](#ResourceGovernor.Cleanup)

## Kelola kumpulan sumber daya
<a name="ResourceGovernor.ManageResourcePool"></a>

### Buat Pool sumber daya
<a name="ResourceGovernor.CreateResourcePool"></a>

Setelah pengatur sumber daya diaktifkan pada grup opsi, Anda dapat membuat kumpulan sumber daya khusus menggunakan`rds_create_resource_pool`. Kumpulan ini memungkinkan Anda mengalokasikan persentase spesifik CPU, memori, dan IOPS ke beban kerja yang berbeda.

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_create_resource_pool    
    @pool_name=value,
    @MAX_CPU_PERCENT=value,
    @CAP_CPU_PERCENT=value,
    @MAX_MEMORY_PERCENT=value,
    @MAX_IOPS_PER_VOLUME=value
```

Parameter-parameter berikut diperlukan:
+ `@group_name`- Adalah nama grup beban kerja yang ditentukan pengguna yang ada.
+ `@pool_name`- Adalah nama yang ditentukan pengguna untuk kumpulan sumber daya. *pool\$1name*bersifat alfanumerik, bisa sampai 128 karakter, harus unik dalam instance Database Engine, dan harus mematuhi aturan untuk pengidentifikasi database.

Parameter berikut ini bersifat opsional:
+ `@MAX_CPU_PERCENT`- Menentukan bandwidth CPU rata-rata maksimum yang diterima semua permintaan di kumpulan sumber daya saat ada pertentangan CPU. *value*adalah integer dengan pengaturan default 100. Rentang yang diizinkan untuk *value* adalah dari 1 hingga 100.
+ `@CAP_CPU_PERCENT`- Menentukan batas keras pada bandwidth CPU yang diterima semua permintaan di kumpulan sumber daya. Membatasi tingkat bandwidth CPU maksimum agar sama dengan nilai yang ditentukan. *value*adalah integer dengan pengaturan default 100. Rentang yang diizinkan untuk *value* adalah dari 1 hingga 100.
+ `@MAX_MEMORY_PERCENT`- Menentukan jumlah maksimum memori ruang kerja kueri yang permintaan dalam kumpulan sumber daya ini dapat digunakan. *value*adalah integer dengan pengaturan default 100. Rentang yang diizinkan untuk *value* adalah dari 1 hingga 100.
+ `@MAX_IOPS_PER_VOLUME`- Menentukan I/O operasi maksimum per detik (IOPS) per volume disk untuk memungkinkan kumpulan sumber daya. Rentang yang diizinkan untuk *value* adalah dari 0 hingga 2 ^ 31-1 (2.147.483.647). Tentukan 0 untuk menghapus batas IOPS untuk kumpulan. Default-nya adalah 0.

**Contoh**

Contoh pembuatan kumpulan sumber daya dengan semua nilai default:

```
--This creates resource pool 'SalesPool' with all default values
USE [msdb]
EXEC rds_create_resource_pool @pool_name = 'SalesPool';
     
--Apply changes
USE [msdb]
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
     
--Validate configuration
select * from sys.resource_governor_resource_pools
```

Contoh membuat kumpulan sumber daya dengan parameter berbeda yang ditentukan:

```
--creates resource pool
USE [msdb]
EXEC dbo.rds_create_resource_pool    
@pool_name='analytics',
@MAX_CPU_PERCENT = 30,
@CAP_CPU_PERCENT = 40,
@MAX_MEMORY_PERCENT = 20;
            
--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
    
--Validate configuration
select * from sys.resource_governor_resource_pools
```

### Ubah kolam sumber daya
<a name="ResourceGovernor.AlterResourcePool"></a>

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_alter_resource_pool    
    @pool_name=value,
    @MAX_CPU_PERCENT=value,
    @CAP_CPU_PERCENT=value,
    @MAX_MEMORY_PERCENT=value,
    @MAX_IOPS_PER_VOLUME=value;
```

Parameter-parameter berikut diperlukan:
+ `@pool_name`- Adalah nama kumpulan sumber daya yang ditentukan pengguna yang ada. Mengubah kumpulan sumber daya default tidak diizinkan di Amazon RDS SQL Server.

Setidaknya salah satu parameter opsional harus ditentukan:
+ `@MAX_CPU_PERCENT`- Menentukan bandwidth CPU rata-rata maksimum yang diterima semua permintaan di kumpulan sumber daya saat ada pertentangan CPU. *value*adalah integer dengan pengaturan default 100. Rentang yang diizinkan untuk *value* adalah dari 1 hingga 100.
+ `@CAP_CPU_PERCENT`- Menentukan batas keras pada bandwidth CPU yang diterima semua permintaan di kumpulan sumber daya. Membatasi tingkat bandwidth CPU maksimum agar sama dengan nilai yang ditentukan. *value*adalah integer dengan pengaturan default 100. Rentang yang diizinkan untuk *value* adalah dari 1 hingga 100.
+ `@MAX_MEMORY_PERCENT`- Menentukan jumlah maksimum memori ruang kerja kueri yang permintaan dalam kumpulan sumber daya ini dapat digunakan. *value*adalah integer dengan pengaturan default 100. Rentang yang diizinkan untuk *value* adalah dari 1 hingga 100.
+ `@MAX_IOPS_PER_VOLUME`- Menentukan I/O operasi maksimum per detik (IOPS) per volume disk untuk memungkinkan kumpulan sumber daya. Rentang yang diizinkan untuk *value* adalah dari 0 hingga 2 ^ 31-1 (2.147.483.647). Tentukan 0 untuk menghapus batas IOPS untuk kumpulan. Default-nya adalah 0.

**Contoh**

```
--This alters resource pool
USE [msdb]
EXEC dbo.rds_alter_resource_pool    
    @pool_name='analytics',
    @MAX_CPU_PERCENT = 10,
    @CAP_CPU_PERCENT = 20,
    @MAX_MEMORY_PERCENT = 50;

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration.
select * from sys.resource_governor_resource_pools
```

### Jatuhkan kolam sumber daya
<a name="ResourceGovernor.DropResourcePool"></a>

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_drop_resource_pool    
@pool_name=value;
```

Parameter berikut diperlukan:
+ `@pool_name`- Adalah nama kumpulan sumber daya yang ditentukan pengguna yang ada.

**catatan**  
Menjatuhkan kumpulan sumber daya internal atau default tidak diizinkan di SQL Server.

**Contoh**

```
--This drops resource pool
USE [msdb]
EXEC dbo.rds_drop_resource_pool    
@pool_name='analytics'

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
select * from sys.resource_governor_resource_pools
```

## Kelola grup beban kerja
<a name="ResourceGovernor.ManageWorkloadGroups"></a>

Grup beban kerja, dibuat dan dikelola dengan `rds_create_workload_group` dan`rds_alter_workload_group`, memungkinkan Anda menetapkan tingkat kepentingan, hibah memori, dan parameter lainnya untuk grup kueri.

### Buat grup beban kerja
<a name="ResourceGovernor.CreateWorkloadGroup"></a>

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_create_workload_group 
@group_name = value, 
@IMPORTANCE ={ LOW | MEDIUM | HIGH }, 
@REQUEST_MAX_MEMORY_GRANT_PERCENT =value, 
@REQUEST_MAX_CPU_TIME_SEC = value , 
@REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value, 
@MAX_DOP = value, 
@GROUP_MAX_REQUESTS = value, 
@pool_name = value
```

Parameter-parameter berikut diperlukan:
+ `@pool_name`- Adalah nama kumpulan sumber daya yang ditentukan pengguna yang ada.
+ `@group_name`- Adalah nama grup beban kerja yang ditentukan pengguna yang ada.

Parameter berikut ini bersifat opsional:
+ `@IMPORTANCE`- Menentukan kepentingan relatif dari permintaan dalam kelompok beban kerja. Nilai default-nya adalah `MEDIUM`.
+ `@REQUEST_MAX_MEMORY_GRANT_PERCENT`- Menentukan jumlah maksimum memori ruang kerja query yang satu permintaan dapat mengambil dari pool. *value*adalah persentase dari ukuran kumpulan sumber daya yang ditentukan oleh`MAX_MEMORY_PERCENT`. Nilai default adalah 25.
+ `@REQUEST_MAX_CPU_TIME_SEC`- Menentukan jumlah maksimum waktu CPU, dalam hitungan detik, yang dapat digunakan oleh permintaan batch. *value*harus 0 atau bilangan bulat positif. Pengaturan default untuk *value* adalah 0, yang berarti tidak terbatas.
+ `@REQUEST_MEMORY_GRANT_TIMEOUT_SEC`- Menentukan waktu maksimum, dalam hitungan detik, bahwa kueri dapat menunggu hibah memori dari memori ruang kerja query menjadi tersedia. *value*harus 0 atau bilangan bulat positif. Pengaturan default untuk*value*, 0, menggunakan perhitungan internal berdasarkan biaya kueri untuk menentukan waktu maksimum.
+ `@MAX_DOP`- Menentukan tingkat maksimum paralelisme () `MAXDOP` untuk eksekusi query paralel. Rentang yang diizinkan untuk *value* adalah dari 0 hingga 64. Pengaturan default untuk*value*, 0, menggunakan pengaturan global.
+ `@GROUP_MAX_REQUESTS`= Menentukan jumlah maksimum permintaan simultan yang diizinkan untuk mengeksekusi dalam kelompok beban kerja. *value*harus 0 atau bilangan bulat positif. Pengaturan default untuk *value* adalah 0, dan memungkinkan permintaan tak terbatas.
+ `@pool_name`= Mengaitkan grup beban kerja dengan kumpulan sumber daya yang ditentukan pengguna yang diidentifikasi oleh*pool\$1name*, atau dengan kumpulan sumber daya. `default` Jika *pool\$1name* tidak disediakan, grup beban kerja dikaitkan dengan `default` kumpulan bawaan.

**Contoh**

```
--This creates workload group named 'analytics'
USE msdb;
EXEC dbo.rds_create_workload_group 
    @group_name = 'analytics',
    @IMPORTANCE = 'HIGH',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT = 25, 
    @REQUEST_MAX_CPU_TIME_SEC = 0, 
    @REQUEST_MEMORY_GRANT_TIMEOUT_SEC = 0, 
    @MAX_DOP = 0, 
    @GROUP_MAX_REQUESTS = 0, 
    @pool_name = 'analytics';

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
  
--Validate configuration
select * from sys.resource_governor_workload_groups
```

### Ubah kelompok beban kerja
<a name="ResourceGovernor.AlterWorkloadGroup"></a>

**Penggunaan**

```
EXEC msdb.dbo.rds_alter_workload_group
    @group_name = value,
    @IMPORTANCE = 'LOW|MEDIUM|HIGH',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT = value,
    @REQUEST_MAX_CPU_TIME_SEC = value,
    @REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value,
    @MAX_DOP = value,
    @GROUP_MAX_REQUESTS = value,
    @pool_name = value
```

Parameter-parameter berikut diperlukan:
+ `@group_name`- Adalah nama default atau grup beban kerja yang ditentukan pengguna yang ada.

**catatan**  
Mengubah hanya `REQUEST_MAX_MEMORY_GRANT_PERCENT` parameter pada grup beban kerja default didukung. Untuk grup beban kerja default `REQUEST_MAX_MEMORY_GRANT_PERCENT` harus antara 1 dan 70. Tidak ada parameter lain yang dapat dimodifikasi dalam grup beban kerja default. Semua parameter dapat dimodifikasi dalam grup beban kerja yang ditentukan pengguna.

Parameter berikut ini bersifat opsional:
+ `@IMPORTANCE`- Menentukan kepentingan relatif dari permintaan dalam kelompok beban kerja. Nilai defaultnya adalah MEDIUM.
+ `@REQUEST_MAX_MEMORY_GRANT_PERCENT`- Menentukan jumlah maksimum memori ruang kerja query yang satu permintaan dapat mengambil dari pool. *value*adalah persentase dari ukuran kumpulan sumber daya yang ditentukan oleh`MAX_MEMORY_PERCENT`. Nilai default adalah 25. Di Amazon RDS, `REQUEST_MAX_MEMORY_GRANT_PERCENT` harus antara 1 dan 70.
+ `@REQUEST_MAX_CPU_TIME_SEC`- Menentukan jumlah maksimum waktu CPU, dalam hitungan detik, yang dapat digunakan oleh permintaan batch. *value*harus 0 atau bilangan bulat positif. Pengaturan default untuk *value* adalah 0, yang berarti tidak terbatas.
+ `@REQUEST_MEMORY_GRANT_TIMEOUT_SEC`- Menentukan waktu maksimum, dalam hitungan detik, bahwa kueri dapat menunggu hibah memori dari memori ruang kerja query menjadi tersedia. *value*harus 0 atau bilangan bulat positif. Pengaturan default untuk*value*, 0, menggunakan perhitungan internal berdasarkan biaya kueri untuk menentukan waktu maksimum.
+ `@MAX_DOP`- Menentukan tingkat maksimum paralelisme (MAXDOP) untuk eksekusi query paralel. Rentang yang diizinkan untuk *value* adalah dari 0 hingga 64. Pengaturan default untuk*value*, 0, menggunakan pengaturan global.
+ `@GROUP_MAX_REQUESTS`- Menentukan jumlah maksimum permintaan simultan yang diizinkan untuk mengeksekusi dalam kelompok beban kerja. *value*harus 0 atau bilangan bulat positif. Pengaturan default untuk *value* adalah 0, dan memungkinkan permintaan tak terbatas.
+ `@pool_name`- Mengaitkan grup beban kerja dengan kumpulan sumber daya yang ditentukan pengguna yang diidentifikasi oleh. *pool\$1name*

**Contoh**

Contoh untuk Memodifikasi perubahan grup beban kerja default REQUEST\$1MAX\$1MEMORY\$1GRANT\$1PERCENT:

```
--Modify default workload group (set memory grant cap to 10%)
USE msdb
EXEC dbo.rds_alter_workload_group    
    @group_name = 'default',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT=10;
    
--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
SELECT * FROM sys.resource_governor_workload_groups WHERE name='default';
```

Contoh untuk memodifikasi grup beban kerja non-default:

```
EXEC msdb.dbo.rds_alter_workload_group    
    @group_name = 'analytics',
    @IMPORTANCE = 'HIGH',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT = 30,
    @REQUEST_MAX_CPU_TIME_SEC = 3600,
    @REQUEST_MEMORY_GRANT_TIMEOUT_SEC = 60,
    @MAX_DOP = 4,
    @GROUP_MAX_REQUESTS = 100;

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
```

Contoh untuk memindahkan Grup Beban Kerja Non-Default ke kumpulan sumber daya lain:

```
EXEC msdb.dbo.rds_alter_workload_group    
@group_name = 'analytics',
@pool_name='abc'

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
select * from sys.resource_governor_workload_groups
```

### Jatuhkan grup beban kerja
<a name="ResourceGovernor.DropWorkloadGroup"></a>

**Penggunaan**

```
EXEC msdb.dbo.rds_drop_workload_group    
@group_name = value
```

Parameter-parameter berikut diperlukan:
+ `@group_name`- Adalah nama grup beban kerja yang ditentukan pengguna yang ada.

**Contoh**

```
--Drops a Workload Group:
EXEC msdb.dbo.rds_drop_workload_group    
@group_name = 'analytics';

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
select * from sys.resource_governor_workload_groups
```

## Buat dan daftarkan fungsi pengklasifikasi
<a name="ResourceGovernor.ClassifierFunction"></a>

Prosedur ini membuat fungsi pengklasifikasi gubernur sumber daya dalam database master yang merutekan koneksi ke grup beban kerja khusus berdasarkan kriteria yang ditentukan (nama pengguna, database, host, atau nama aplikasi). Jika pengatur sumber daya diaktifkan dan fungsi pengklasifikasi ditentukan dalam konfigurasi pengatur sumber daya, maka output fungsi menentukan grup beban kerja yang digunakan untuk sesi baru. Dengan tidak adanya fungsi pengklasifikasi, semua sesi diklasifikasikan ke dalam `default` grup.

**Fitur-fitur**:
+ Mendukung hingga dua kelompok beban kerja dengan kondisi perutean masing-masing.
+ Menggabungkan kriteria dengan `AND` kondisi dalam setiap kelompok.
+ Membutuhkan setidaknya satu kriteria routing per kelompok beban kerja.
+ Nama fungsi harus dimulai dengan`rg_classifier_`.
+ Penetapan grup default jika tidak ada kondisi yang cocok.

Fungsi pengklasifikasi memiliki karakteristik dan perilaku sebagai berikut:
+ Fungsi ini didefinisikan dalam lingkup server (dalam database master).
+ Fungsi ini didefinisikan dengan pengikatan skema.
+ Fungsi ini dievaluasi untuk setiap sesi baru, bahkan ketika penyatuan koneksi diaktifkan.
+ Fungsi mengembalikan konteks kelompok beban kerja untuk sesi. Sesi ditugaskan ke grup beban kerja yang dikembalikan oleh pengklasifikasi selama masa sesi.
+ Jika fungsi mengembalikan NULL, default, atau nama grup beban kerja yang tidak ada, sesi diberikan konteks grup beban kerja default. Sesi ini juga diberikan konteks default jika fungsi gagal karena alasan apapun.
+ Anda dapat membuat beberapa fungsi pengklasifikasi. Namun, SQL Server hanya mengizinkan satu fungsi pengklasifikasi untuk didaftarkan pada satu waktu.
+ Fungsi pengklasifikasi tidak dapat dihapus kecuali status pengklasifikasi dihapus menggunakan prosedur de-register (`EXEC dbo.msdb.rds_alter_resource_governor_configuration @deregister_function = 1;`) yang menyetel nama fungsi ke NULL atau fungsi pengklasifikasi lain terdaftar menggunakan () `EXEC dbo.msdb.rds_alter_resource_governor_configuration @classifier_function = <function_name>;`
+ Dengan tidak adanya fungsi pengklasifikasi, semua sesi diklasifikasikan ke dalam grup default.
+ Anda tidak dapat memodifikasi fungsi pengklasifikasi saat direferensikan dalam konfigurasi pengatur sumber daya. Namun, Anda dapat memodifikasi konfigurasi untuk menggunakan fungsi pengklasifikasi yang berbeda. Jika Anda ingin membuat perubahan pada pengklasifikasi, pertimbangkan untuk membuat sepasang fungsi pengklasifikasi. Misalnya, Anda dapat membuat `rg_classifier_a` dan`rg_classifier_b`.

**Penggunaan**

```
EXEC msdb.dbo.rds_create_classifier_function 
@function_name = value,
@workload_group1 = value, 
@user_name1 = value,
@db_name1 = value,
@host_name1 = value, 
@app_name1 = value, 
@workload_group2 = value,
@user_name2 = value,
@db_name2 = value,
@host_name2 = value,
@app_name2 = value
```

Parameter-parameter berikut diperlukan:
+ `@function_name`- Nama fungsi pengklasifikasi. Harus dimulai dengan `rg_classifier_`
+ `@workload_group1`- Nama grup beban kerja pertama

Parameter berikut ini bersifat opsional:

(Setidaknya satu dari kriteria ini harus ditentukan untuk kelompok 1)
+ `@user_name1`- Nama login untuk grup 1
+ `@db_name1`- Nama database untuk grup 1
+ `@host_name1`- Nama host untuk grup 1
+ `@app_name1`- Nama aplikasi untuk grup 1

(Jika kelompok 2 ditentukan, setidaknya satu kriteria harus disediakan)
+ `@workload_group2`- Nama kelompok beban kerja kedua
+ `@user_name2`- Nama login untuk grup 2
+ `@db_name2`- Nama database untuk grup 2
+ `@host_name2`- Nama host untuk grup 2
+ `@app_name2`- Nama aplikasi untuk grup 2

**catatan**  
Akun sistem, database, aplikasi, dan host dibatasi.

**Contoh**

Contoh Dasar dengan Satu Kelompok Beban Kerja:

```
/*Create a classifier to route all requests from 'PowerBI' app to workload group 
'reporting_group'*/

EXEC msdb.dbo.rds_create_classifier_function
@function_name = 'rg_classifier_a',
@workload_group1 = 'reporting_group',
@app_name1 = 'PowerBI';

--Register the classifier
EXEC msdb.dbo.rds_alter_resource_governor_configuration
@classifier_function = 'rg_classifier_a';

-- Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration

/*Query sys.resource_governor_configuration to validate that resource governor is enabled and is using the classifier function we created and registered*/

use master
go
SELECT OBJECT_SCHEMA_NAME(classifier_function_id) AS classifier_schema_name,
       OBJECT_NAME(classifier_function_id) AS classifier_object_name,
       is_enabled
FROM sys.resource_governor_configuration;
```

## Fungsi pengklasifikasi drop
<a name="ResourceGovernor.DropClassifier"></a>

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_drop_classifier_function
@function_name = value;
```

Parameter berikut diperlukan:
+ `@function_name`- Apakah nama fungsi pengklasifikasi yang ditentukan pengguna yang ada

**Contoh**

```
EXEC msdb.dbo.rds_drop_classifier_function
@function_name = 'rg_classifier_b';
```

## Fungsi pengklasifikasi de-register
<a name="ResourceGovernor.DeregisterClassifier"></a>

Gunakan prosedur ini untuk membatalkan pendaftaran fungsi pengklasifikasi. Setelah fungsi tidak terdaftar, sesi baru secara otomatis ditetapkan ke grup beban kerja default.

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration    
@deregister_function = 1;
```

Untuk de-registrasi parameter berikut diperlukan:
+ `@deregister_function`harus 1

**Contoh**

```
EXEC msdb.dbo.rds_alter_resource_governor_configuration 
    @deregister_function = 1;
GO

-- Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
```

## Setel ulang statistik
<a name="ResourceGovernor.ResetStats"></a>

Statistik gubernur sumber daya bersifat kumulatif sejak server terakhir dimulai ulang. Jika Anda perlu mengumpulkan statistik mulai dari waktu tertentu, Anda dapat mengatur ulang statistik menggunakan prosedur tersimpan Amazon RDS berikut.

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration  
@reset_statistics = 1;
```

Untuk mengatur ulang statistik parameter berikut diperlukan:
+ `@reset_statistics`harus 1

## Perubahan konfigurasi gubernur sumber daya
<a name="ResourceGovernor.ConfigChanges"></a>

Ketika gubernur sumber daya tidak diaktifkan, `rds_alter_resource_governor_configuration` aktifkan gubernur sumber daya. Mengaktifkan gubernur sumber daya memiliki hasil sebagai berikut:
+ Fungsi pengklasifikasi, jika ada, dijalankan untuk sesi baru, menetapkannya ke grup beban kerja.
+ Batas sumber daya yang ditentukan dalam konfigurasi gubernur sumber daya dihormati dan ditegakkan.
+ Batas sumber daya yang ditentukan dalam konfigurasi gubernur sumber daya dihormati dan ditegakkan.
+ Permintaan yang ada sebelum mengaktifkan pengatur sumber daya mungkin terpengaruh oleh perubahan konfigurasi apa pun yang dibuat saat pengatur sumber daya diaktifkan.
+ Permintaan yang ada, sebelum mengaktifkan pengatur sumber daya, mungkin terpengaruh oleh perubahan konfigurasi apa pun yang dibuat saat pengatur sumber daya diaktifkan.
+ Pada RDS untuk SQL Server, `EXEC msdb.dbo.rds_alter_resource_governor_configuration` harus dijalankan agar perubahan konfigurasi gubernur sumber daya diterapkan. 

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration
```

## Mengikat TempDB ke kumpulan sumber daya
<a name="ResourceGovernor.BindTempDB"></a>

Anda dapat mengikat metadata yang dioptimalkan memori tempdb ke kumpulan sumber daya tertentu menggunakan `rds_bind_tempdb_metadata_to_resource_pool` Amazon RDS SQL Server versi 2019 dan yang lebih baru.

**catatan**  
Fitur metadata tempdb yang dioptimalkan untuk memori harus diaktifkan sebelum mengikat metadata tempdb ke kumpulan sumber daya. Untuk mengaktifkan fitur ini di Amazon RDS, ini adalah parameter `tempdb metadata memory-optimized` statis.

Aktifkan parameter statis di Amazon RDS dan lakukan reboot tanpa failover agar parameter diterapkan:

```
aws rds modify-db-parameter-group \
    --db-parameter-group-name test-sqlserver-ee-2022 \
    --parameters "ParameterName='tempdb metadata memory-optimized',ParameterValue=True,ApplyMethod=pending-reboot"
```

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_bind_tempdb_metadata_to_resource_pool  
@pool_name=value;
```

Parameter berikut diperlukan:
+ `@pool_name`- Adalah nama kumpulan sumber daya yang ditentukan pengguna yang ada.

**catatan**  
Perubahan ini juga memerlukan reboot layanan sql tanpa failover untuk diterapkan, bahkan jika fitur metadata TempDB yang dioptimalkan untuk memori sudah diaktifkan.

## Lepaskan TempDB dari kumpulan sumber daya
<a name="ResourceGovernor.UnbindTempDB"></a>

Buka ikatan metadata memori tempdb yang dioptimalkan dari kumpulan sumber daya.

**catatan**  
Perubahan ini juga membutuhkan reboot layanan sql tanpa failover untuk diterapkan

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_unbind_tempdb_metadata_from_resource_pool
```

## Gubernur sumber daya pembersihan
<a name="ResourceGovernor.Cleanup"></a>

Prosedur ini untuk membersihkan semua objek terkait setelah Anda menghapus opsi pengatur sumber daya dari grup opsi. Ini menonaktifkan pengatur sumber daya, mengembalikan grup beban kerja default ke pengaturan default, menghapus grup beban kerja khusus, kumpulan sumber daya, dan fungsi pengklasifikasi.

**Fitur utama**
+ Mengembalikan grup beban kerja default ke pengaturan default
+ Menonaktifkan gubernur sumber daya
+ Menghapus grup beban kerja khusus
+ Menghapus kumpulan sumber daya khusus
+ Fungsi pengklasifikasi tetes
+ Menghapus pengikatan kumpulan sumber daya tempdb jika diaktifkan

**penting**  
Pembersihan ini dapat error jika ada sesi aktif pada grup beban kerja. Tunggu sesi aktif selesai atau hentikan sesi aktif sesuai kebutuhan bisnis Anda. Disarankan untuk menjalankan ini selama jendela pemeliharaan.   
Pembersihan ini dapat error jika kumpulan sumber daya terikat ke tempdb dan reboot tanpa failover belum terjadi. Jika Anda mengikat kumpulan sumber daya ke tempdb atau membuka ikatan kumpulan sumber daya dari tempdb sebelumnya, lakukan reboot tanpa failover untuk membuat perubahan efektif. Disarankan untuk menjalankan ini selama jendela pemeliharaan.

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_cleanup_resource_governor
```

## Pertimbangan untuk penyebaran Multi-AZ
<a name="ResourceGovernor.Considerations"></a>

RDS untuk SQL Server mereplikasi pengatur sumber daya ke instance sekunder dalam penerapan Multi-AZ. Anda dapat memverifikasi kapan dimodifikasi dan gubernur sumber daya baru terakhir disinkronkan dengan instance sekunder.

Gunakan kueri berikut untuk memeriksa `last_sync_time` replikasi:

```
SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();
```

Dalam hasil kueri, jika waktu sinkronisasi melewati pengatur sumber daya yang diperbarui atau waktu pembuatan, maka gubernur sumber daya menyinkronkan dengan yang sekunder.

Untuk melakukan failover DB manual untuk mengonfirmasi bahwa gubernur sumber daya bereplikasi, tunggu `last_sync_time` hingga pembaruan terlebih dahulu. Kemudian, lanjutkan dengan failover Multi-AZ.

## Pertimbangan untuk replika baca
<a name="ResourceGovernor.ReadReplica"></a>
+ Untuk replika SQL Server di Wilayah yang sama dengan instans DB sumber, gunakan grup opsi yang sama dengan sumbernya. Perubahan pada grup opsi segera menyebar ke replika, terlepas dari jendela pemeliharaannya.
+ Saat Anda membuat replika SQL Server Cross-region, RDS membuat grup opsi khusus untuknya.
+ Anda tidak dapat menghapus replika lintas Wilayah SQL dari grup opsi khususnya. Tidak ada instans DB lain yang dapat menggunakan grup opsi khusus untuk replika lintas Wilayah SQL Server.
+ Opsi gubernur sumber daya adalah opsi yang tidak direplikasi. Anda dapat menambahkan atau menghapus opsi non-replikasi dari grup opsi khusus.
+ Saat Anda mempromosikan replika baca lintas Wilayah SQL, replika yang dipromosikan memiliki perilaku yang sama seperti instans DB SQL Server lainnya, termasuk manajemen opsinya.

**catatan**  
Saat menggunakan Gubernur sumber daya pada replika baca, Anda harus memastikan secara manual bahwa gubernur sumber daya telah dikonfigurasi pada replika baca Anda menggunakan prosedur tersimpan Amazon RDS setelah opsi ditambahkan ke grup opsi. Konfigurasi gubernur sumber daya tidak secara otomatis mereplikasi ke replika baca. Juga, beban kerja pada replika baca biasanya berbeda dari contoh utama. Oleh karena itu, disarankan untuk menerapkan konfigurasi sumber daya pada replika berdasarkan beban kerja dan jenis instance Anda. Anda dapat menjalankan prosedur tersimpan Amazon RDS ini pada replika baca secara independen untuk mengonfigurasi pengatur sumber daya pada replika baca.

# Pantau pengatur sumber daya Microsoft SQL Server menggunakan tampilan sistem untuk RDS Anda untuk instans SQL Server
<a name="ResourceGovernor.Monitoring"></a>

Statistik Gubernur Sumber Daya bersifat kumulatif sejak server terakhir dimulai ulang. Jika Anda perlu mengumpulkan statistik mulai dari waktu tertentu, Anda dapat mengatur ulang statistik menggunakan prosedur tersimpan Amazon RDS berikut:

```
EXEC msdb.dbo.rds_alter_resource_governor_configuration  
@reset_statistics = 1;
```

## Statistik runtime kumpulan sumber daya
<a name="ResourceGovernor.ResourcePoolStats"></a>

Untuk setiap kumpulan sumber daya, pengatur sumber daya melacak pemanfaatan CPU dan memori, out-of-memory peristiwa, hibah memori, I/O, dan statistik lainnya. Untuk informasi selengkapnya, lihat [sys.dm\$1resource\$1governor\$1resource\$1pools](https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-resource-governor-resource-pools-transact-sql?view=sql-server-ver17).

Kueri berikut mengembalikan subset statistik yang tersedia untuk semua kumpulan sumber daya:

```
SELECT rp.pool_id,
       rp.name AS resource_pool_name,
       wg.workload_group_count,
       rp.statistics_start_time,
       rp.total_cpu_usage_ms,
       rp.target_memory_kb,
       rp.used_memory_kb,
       rp.out_of_memory_count,
       rp.active_memgrant_count,
       rp.total_memgrant_count,
       rp.total_memgrant_timeout_count,
       rp.read_io_completed_total,
       rp.write_io_completed_total,
       rp.read_bytes_total,
       rp.write_bytes_total,
       rp.read_io_stall_total_ms,
       rp.write_io_stall_total_ms
FROM sys.dm_resource_governor_resource_pools AS rp
OUTER APPLY (
            SELECT COUNT(1) AS workload_group_count
            FROM sys.dm_resource_governor_workload_groups AS wg
            WHERE wg.pool_id = rp.pool_id
            ) AS wg;
```

# Menonaktifkan pengatur sumber daya Microsoft SQL Server untuk RDS Anda untuk instans SQL Server
<a name="ResourceGovernor.Disabling"></a>

Saat Anda menonaktifkan pengatur sumber daya pada RDS untuk SQL Server, layanan berhenti mengelola sumber daya beban kerja. Sebelum Anda menonaktifkan resource governor, tinjau bagaimana hal ini memengaruhi koneksi dan konfigurasi database Anda.

Menonaktifkan gubernur sumber daya memiliki hasil sebagai berikut:
+ Fungsi classifier tidak dijalankan ketika koneksi baru dibuka.
+ Koneksi baru secara otomatis diklasifikasikan ke dalam grup beban kerja default.
+ Semua pengaturan grup beban kerja dan kumpulan sumber daya yang ada disetel ulang ke nilai defaultnya.
+ Tidak ada peristiwa yang ditembakkan ketika batas tercapai.
+ Perubahan konfigurasi gubernur sumber daya dapat dilakukan, tetapi perubahan tidak berlaku sampai gubernur sumber daya diaktifkan.

Untuk menonaktifkan gubernur sumber daya, hapus `RESOURCE_GOVERNOR` opsi dari grup opsinya.

## Konsol
<a name="ResourceGovernor.Disabling.Console"></a>

Prosedur berikut akan menghapus opsi `RESOURCE_GOVERNOR`.

**Untuk menghapus opsi RESOURCE\$1GOVERNOR dari grup opsinya**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Grup opsi**.

1. Pilih grup opsi dengan opsi `RESOURCE_GOVERNOR` (`resource-governor-ee-2022` dalam contoh sebelumnya).

1. Pilih **Hapus opsi**.

1. **Di bawah **Opsi penghapusan**, pilih **RESOURCE\$1GOVERNOR** untuk Opsi yang akan dihapus.**

1. Di bagian **Langsung terapkan**, pilih **Ya** untuk segera menghapus opsi, atau **Tidak** untuk menghapusnya selama masa pemeliharaan berikutnya.

1. Pilih **Hapus**.

## CLI
<a name="ResourceGovernor.Disabling.CLI"></a>

Prosedur berikut akan menghapus opsi `RESOURCE_GOVERNOR`.

**Untuk menghapus opsi RESOURCE\$1GOVERNOR dari grup opsinya**
+ Gunakan salah satu perintah berikut ini.  
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds remove-option-from-option-group \
      --option-group-name resource-governor-ee-2022 \
      --options RESOURCE_GOVERNOR \
      --apply-immediately
  ```

  Untuk Windows:

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name resource-governor-ee-2022 ^
      --options RESOURCE_GOVERNOR ^
      --apply-immediately
  ```

# Praktik terbaik untuk mengonfigurasi gubernur sumber daya pada RDS untuk SQL Server
<a name="ResourceGovernor.BestPractices"></a>

Untuk mengontrol konsumsi sumber daya, RDS untuk SQL Server mendukung pengatur sumber daya Microsoft SQL Server. Praktik terbaik berikut membantu Anda menghindari masalah konfigurasi umum dan mengoptimalkan kinerja database.

1. Konfigurasi gubernur sumber daya disimpan dalam `master` database. Kami menyarankan Anda selalu menyimpan salinan skrip konfigurasi gubernur sumber daya secara terpisah.

1. Fungsi pengklasifikasi memperpanjang waktu pemrosesan login sehingga disarankan untuk menghindari logika kompleks di pengklasifikasi. Fungsi yang terlalu kompleks dapat menyebabkan penundaan login atau batas waktu koneksi termasuk sesi otomatisasi Amazon RDS. Ini dapat memengaruhi kemampuan otomatisasi Amazon RDS untuk memantau kesehatan instans. Oleh karena itu, selalu disarankan untuk menguji fungsi pengklasifikasi di lingkungan pra-produksi sebelum diterapkan di lingkungan produksi.

1. Hindari menyetel nilai tinggi (di atas 70) untuk `REQUEST_MAX_MEMORY_GRANT_PERCENT` dalam grup beban kerja, karena ini dapat mencegah instance database mengalokasikan memori yang cukup untuk kueri bersamaan lainnya, yang berpotensi mengakibatkan kesalahan batas waktu pemberian memori (Kesalahan 8645). Sebaliknya, menyetel nilai ini terlalu rendah (kurang dari 1) atau ke 0 dapat mencegah kueri yang membutuhkan ruang kerja memori (seperti yang melibatkan operasi pengurutan atau hash) dijalankan dengan benar dalam kelompok beban kerja yang ditentukan pengguna. RDS memberlakukan batasan ini dengan membatasi nilai antara 1 dan 70 pada grup beban kerja default.

1. Untuk mengikat tempdb ke kumpulan sumber daya, setelah mengikat metadata tempdb yang dioptimalkan memori ke kumpulan, kumpulan mungkin mencapai pengaturan maksimumnya, dan kueri apa pun yang digunakan `tempdb` mungkin gagal karena kesalahan. out-of-memory Dalam keadaan tertentu, SQL Server berpotensi berhenti jika terjadi out-of-memory kesalahan. Untuk mengurangi kemungkinan hal ini terjadi, atur kumpulan memori `MAX_MEMORY_PERCENT` ke nilai tinggi.

# Tugas DBA umum untuk Amazon RDS untuk Microsoft SQL Server
<a name="Appendix.SQLServer.CommonDBATasks"></a>

Bagian ini menjelaskan implementasi spesifik Amazon RDS dari beberapa tugas DBA umum untuk instans DB yang menjalankan mesin basis data Microsoft SQL Server. Agar dapat memberikan pengalaman layanan terkelola, Amazon RDS tidak memberikan akses shell ke instans DB, serta membatasi akses ke prosedur dan tabel sistem tertentu yang memerlukan hak istimewa lanjutan. 

**catatan**  
Saat bekerja dengan instans DB SQL Server, Anda dapat menjalankan skrip untuk memodifikasi basis data yang baru dibuat, tetapi Anda tidak dapat memodifikasi basis data [model], basis data yang digunakan sebagai model untuk basis data baru. 

**Topics**
+ [Mengakses basis data tempdb pada instans DB Microsoft SQL Server di Amazon RDS](SQLServer.TempDB.md)
+ [Menganalisis beban kerja basis data di instans DB Amazon RDS for SQL Server dengan basis data Engine Tuning Advisor](Appendix.SQLServer.CommonDBATasks.Workload.md)
+ [Mengubah `db_owner` ke `rdsa` akun untuk database Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.ChangeDBowner.md)
+ [Mengelola koleksi dan set karakter untuk Amazon RDS untuk Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.Collation.md)
+ [Membuat pengguna database untuk Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.CreateUser.md)
+ [Menentukan model pemulihan untuk database Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.DatabaseRecovery.md)
+ [Menentukan waktu failover terakhir untuk Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.LastFailover.md)
+ [point-in-time-recoveryKegagalan pemecahan masalah karena kesenjangan nomor urutan log](Appendix.SQLServer.CommonDBATasks.PITR-LSN-Gaps.md)
+ [Tolak atau izinkan melihat nama database untuk Amazon RDS untuk SQL Server](Appendix.SQLServer.CommonDBATasks.ManageView.md)
+ [Menonaktifkan sisipan cepat selama pemuatan massal untuk Amazon untuk Server RDS SQL](Appendix.SQLServer.CommonDBATasks.DisableFastInserts.md)
+ [Menjatuhkan database di Amazon RDS untuk instans DB Amazon RDS for Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.DropMirrorDB.md)
+ [Mengganti nama Amazon RDS untuk database Microsoft SQL Server dalam penyebaran Multi-AZ](Appendix.SQLServer.CommonDBATasks.RenamingDB.md)
+ [Menyetel ulang keanggotaan peran db\$1owner untuk pengguna master untuk Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.ResetPassword.md)
+ [Memulihkan instans DB yang dihentikan lisensi untuk Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.RestoreLTI.md)
+ [Transisi database Amazon RDS for SQL Server dari OFFLINE ke ONLINE](Appendix.SQLServer.CommonDBATasks.TransitionOnline.md)
+ [Menggunakan pengambilan data perubahan untuk Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.CDC.md)
+ [Menggunakan Agen SQL Server untuk Amazon RDS](Appendix.SQLServer.CommonDBATasks.Agent.md)
+ [Bekerja dengan Amazon RDS untuk log Microsoft SQL Server](Appendix.SQLServer.CommonDBATasks.Logs.md)
+ [Bekerja dengan file trace dan dump untuk Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.TraceFiles.md)

# Mengakses basis data tempdb pada instans DB Microsoft SQL Server di Amazon RDS
<a name="SQLServer.TempDB"></a>

Anda dapat mengakses basis data `tempdb` pada instans DB Microsoft SQL Server di Amazon RDS. Anda dapat menjalankan kode di `tempdb` dengan menggunakan Transact-SQL melalui Microsoft SQL Server Management Studio (SSMS), atau aplikasi klien SQL standar lainnya. Untuk informasi selengkapnya tentang terhubung ke instans DB Anda, lihat [Menyambung ke instans Microsoft SQL Server DB](USER_ConnectToMicrosoftSQLServerInstance.md). 

Pengguna master untuk instans DB Anda diberi akses `CONTROL` ke `tempdb` sehingga pengguna ini dapat mengubah opsi basis data `tempdb`. Pengguna utama bukan pemilik basis data untuk basis data `tempdb`. Jika perlu, pengguna induk dapat memberikan akses `CONTROL` kepada pengguna lain sehingga mereka juga dapat mengubah opsi basis data `tempdb`. 

**catatan**  
Anda tidak dapat menjalankan Perintah Konsol basis data (DBCC) pada basis data `tempdb`. 

# Memodifikasi opsi basis data tempdb
<a name="SQLServer.TempDB.Modifying"></a>

Anda dapat memodifikasi opsi basis data pada basis data `tempdb` di instans DB Amazon RDS Anda. Untuk informasi selengkapnya tentang opsi mana yang dapat dimodifikasi, lihat [tempdb database](https://msdn.microsoft.com/en-us/library/ms190768%28v=sql.120%29.aspx) di dokumentasi Microsoft.

Opsi basis data seperti opsi ukuran file maksimum persisten setelah Anda memulai ulang instans DB Anda. Anda dapat memodifikasi opsi basis data untuk mengoptimalkan performa ketika mengimpor data, dan untuk mencegah kehabisan penyimpanan.

## Mengoptimalkan performa ketika mengimpor data
<a name="SQLServer.TempDB.Modifying.Import"></a>

Untuk mengoptimalkan performa saat mengimpor sejumlah besar data ke dalam instans DB Anda, atur properti `SIZE` dan `FILEGROWTH` dari basis data tempdb ke jumlah besar. Untuk informasi selengkapnya tentang cara mengoptimalkan `tempdb`, lihat [Optimizing tempdb performance](https://technet.microsoft.com/en-us/library/ms175527%28v=sql.120%29.aspx) di dokumentasi Microsoft.

Contoh berikut menunjukkan pengaturan ukuran menjadi 100 GB dan pertumbuhan file menjadi 10 persen. 

```
1. alter database[tempdb] modify file (NAME = N'templog', SIZE=100GB, FILEGROWTH = 10%)
```

## Mencegah masalah penyimpanan
<a name="SQLServer.TempDB.Modifying.Full"></a>

Untuk mencegah basis data `tempdb` menggunakan semua ruang disk yang tersedia, atur properti `MAXSIZE`. Contoh berikut ini menunjukkan cara mengatur properti ke 2048 MB. 

```
1. alter database [tempdb] modify file (NAME = N'templog', MAXSIZE = 2048MB)
```

# Mengurangi basis data tempdb
<a name="SQLServer.TempDB.Shrinking"></a>

Ada dua cara untuk mengurangi basis data `tempdb` di instans DB Amazon RDS Anda. Anda dapat menggunakan prosedur `rds_shrink_tempdbfile`, atau Anda dapat mengatur properti `SIZE`, 

## Menggunakan prosedur rds\$1shrink\$1tempdbfile
<a name="SQLServer.TempDB.Shrinking.Proc"></a>

Anda dapat menggunakan prosedur Amazon RDS `msdb.dbo.rds_shrink_tempdbfile` untuk mengurangi basis data `tempdb`. Anda hanya dapat memanggil `rds_shrink_tempdbfile` jika Anda memiliki akses `CONTROL` ke `tempdb`. Ketika Anda memanggil `rds_shrink_tempdbfile`, tidak ada waktu henti untuk instans DB Anda. 

Prosedur `rds_shrink_tempdbfile` memiliki parameter berikut.


****  

| Nama parameter | Jenis data | Default | Wajib | Deskripsi | 
| --- | --- | --- | --- | --- | 
| `@temp_filename` | SYSNAME | — | diperlukan | Nama logis dari file yang akan dikurangi. | 
| `@target_size` | int | null | opsional | Ukuran baru untuk file, dalam megabyte. | 

Contoh berikut ini akan mengambil nama file untuk basis data `tempdb`.

```
1. use tempdb;
2. GO
3. 
4. select name, * from sys.sysfiles;
5. GO
```

Contoh berikut mengurangi file basis data `tempdb` bernama `test_file`, dan meminta ukuran baru sebesar `10` megabyte: 

```
1. exec msdb.dbo.rds_shrink_tempdbfile @temp_filename = N'test_file', @target_size = 10;
```

## Mengatur properti SIZE
<a name="SQLServer.TempDB.Shrinking.Size"></a>

Anda juga dapat mengurangi basis data `tempdb` dengan mengatur properti `SIZE`, lalu memulai ulang instans DB Anda. Untuk informasi selengkapnya tentang cara memulai ulang instans DB, lihat [Mem-boot ulang instans DB DB](USER_RebootInstance.md).

Contoh berikut ini menunjukkan cara mengatur properti `SIZE` ke 1024 MB. 

```
1. alter database [tempdb] modify file (NAME = N'templog', SIZE = 1024MB)
```

# Konfigurasi TempDB untuk penerapan Multi-AZ
<a name="SQLServer.TempDB.MAZ"></a>

Jika instans DB SQL Server Anda RDS berada dalam Penyebaran Multi-AZ menggunakan Database Mirroring (DBM) atau Always On Availability Groups (AGs), ingatlah pertimbangan berikut untuk menggunakan database. `tempdb`

Anda tidak dapat mereplikasi `tempdb` data dari instans DB utama Anda ke instans DB sekunder Anda. Ketika Anda gagal ke instance DB sekunder, `tempdb` pada instance DB sekunder itu akan kosong.

Anda dapat menyinkronkan konfigurasi opsi `tempdb` database, termasuk ukuran file dan pengaturan pertumbuhan otomatis, dari instans DB utama Anda ke instans DB sekunder Anda. Sinkronisasi `tempDB` konfigurasi didukung pada semua RDS untuk versi SQL Server. Anda dapat mengaktifkan sinkronisasi otomatis `tempdb` konfigurasi dengan menggunakan prosedur tersimpan berikut:

```
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'TempDbFile';
```

**penting**  
Sebelum menggunakan prosedur `rds_set_system_database_sync_objects` tersimpan, pastikan Anda telah mengatur `tempdb` konfigurasi pilihan Anda pada instans DB utama Anda, bukan pada instans DB sekunder Anda. Jika Anda membuat perubahan konfigurasi pada instans DB sekunder Anda, `tempdb` konfigurasi pilihan Anda dapat dihapus ketika Anda mengaktifkan sinkronisasi otomatis.

Anda dapat menggunakan fungsi berikut untuk mengonfirmasi apakah sinkronisasi otomatis `tempdb` konfigurasi diaktifkan:

```
SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();
```

Ketika sinkronisasi otomatis `tempdb` konfigurasi dihidupkan, akan ada nilai pengembalian untuk `object_class` bidang tersebut. Ketika dimatikan, tidak ada nilai yang dikembalikan.

Anda dapat menggunakan fungsi berikut untuk menemukan objek terakhir kali disinkronkan, UTC tepat waktu:

```
SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();
```

Misalnya, jika Anda memodifikasi `tempdb` konfigurasi pada 01:00 dan kemudian menjalankan `rds_fn_server_object_last_sync_time` fungsi, nilai yang dikembalikan untuk `last_sync_time` harus setelah 01:00, menunjukkan bahwa sinkronisasi otomatis terjadi.

Jika Anda juga menggunakan replikasi pekerjaan Agen SQL Server, Anda dapat mengaktifkan replikasi untuk pekerjaan SQL Agen dan `tempdb` konfigurasi dengan menyediakannya dalam parameter: `@object_type`

```
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob,TempDbFile';
```

Untuk informasi selengkapnya tentang replikasi pekerjaan Agen SQL Server, lihat[Mengaktifkan replikasi pekerjaan SQL Server Agent](Appendix.SQLServer.CommonDBATasks.Agent.md#SQLServerAgent.Replicate).

Sebagai alternatif untuk menggunakan prosedur `rds_set_system_database_sync_objects` tersimpan untuk memastikan bahwa perubahan `tempdb` konfigurasi disinkronkan secara otomatis, Anda dapat menggunakan salah satu metode manual berikut:

**catatan**  
Kami merekomendasikan untuk mengaktifkan sinkronisasi otomatis `tempdb` konfigurasi dengan menggunakan prosedur yang `rds_set_system_database_sync_objects` disimpan. Menggunakan sinkronisasi otomatis mencegah kebutuhan untuk melakukan tugas-tugas manual ini setiap kali Anda mengubah `tempdb` konfigurasi Anda.
+ Pertama, ubah instans DB Anda dan matikan Multi-AZ, kemudian modifikasi tempdb, dan terakhir aktifkan kembali Multi-AZ. Metode ini tidak melibatkan waktu henti apa pun.

  Untuk informasi selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md). 
+ Perubahan pertama `tempdb` dalam instans primer asli, kemudian gagal secara manual, dan terakhir memodifikasi `tempdb` di instans utama baru. Metode ini melibatkan waktu henti. 

  Untuk informasi selengkapnya, lihat [Mem-boot ulang instans DB DB](USER_RebootInstance.md).

# Menganalisis beban kerja basis data di instans DB Amazon RDS for SQL Server dengan basis data Engine Tuning Advisor
<a name="Appendix.SQLServer.CommonDBATasks.Workload"></a>

Basis data Engine Tuning Advisor adalah aplikasi klien yang disediakan oleh Microsoft yang menganalisis beban kerja basis data dan merekomendasikan serangkaian indeks optimal untuk basis data Microsoft SQL Server berdasarkan jenis kueri yang Anda jalankan. Seperti SQL Server Management Studio, Anda menjalankan Tuning Advisor dari komputer klien yang terhubung ke instans DB Amazon RDS yang menjalankan SQL Server. Komputer klien dapat berupa komputer lokal yang Anda jalankan di lokasi on-premise Anda sendiri atau dapat berupa instans Windows Amazon EC2 yang berjalan di wilayah yang sama dengan instans DB Amazon RDS Anda.

Bagian ini menunjukkan cara mengambil beban kerja Tuning Advisor yang akan dianalisis. Ini adalah proses yang dipilih untuk mengambil beban kerja karena Amazon RDS membatasi akses host ke instans SQL Server. Untuk informasi selengkapnya, lihat [Database Engine Tuning Advisor](https://docs.microsoft.com/en-us/sql/relational-databases/performance/database-engine-tuning-advisor) dalam dokumentasi Microsoft.

Untuk menggunakan Tuning Advisor, Anda harus menyediakan beban kerja ke advisor tersebut. Beban kerja adalah sekumpulan pernyataan Transact-SQL yang dijalankan di basis data atau basis data yang ingin Anda selaraskan. Basis data Engine Tuning Advisor menggunakan file pelacakan, tabel pelacakan, skrip Transact-SQL, atau file XML sebagai input beban kerja saat mengatur basis data. Ketika bekerja dengan Amazon RDS, beban kerja dapat berupa file di komputer klien atau tabel basis data di DB Amazon RDS for SQL Server yang dapat diakses oleh komputer klien. File atau tabel harus berisi kueri dari basis data yang ingin disetel dalam format yang sesuai untuk diputar ulang.

Untuk mengoptimalkan Tuning Advisor, beban kerja harus serealistis mungkin. Anda dapat membuat file atau tabel beban kerja dengan melakukan pelacakan terhadap instans DB Anda. Saat pelacakan berjalan, Anda dapat menyimulasikan beban di instans DB atau menjalankan aplikasi dengan beban normal.

Ada dua jenis pelacakan: sisi klien dan sisi server. Pelacakan sisi klien lebih mudah diatur dan Anda dapat menonton pelacakan peristiwa yang dicatat secara waktu nyata dalam SQL Server Profiler. Pelacakan sisi server lebih rumit untuk disiapkan dan memerlukan beberapa skrip Transact-SQL. Selain itu, karena pelacakan ditulis ke file di instans DB Amazon RDS, ruang penyimpanan akan digunakan oleh pelacakan. Ini penting untuk melacak berapa banyak ruang penyimpanan yang digunakan oleh pelacakan sisi server yang berjalan karena instans DB dapat memasuki status penuh penyimpanan dan tidak akan lagi tersedia jika ruang penyimpanan habis.

Untuk pelacakan sisi klien, ketika jumlah data pelacakan yang cukup telah diambil di SQL Server Profiler, Anda kemudian dapat membuat file beban kerja dengan menyimpan pelacakan ke file di komputer lokal atau di tabel basis data di instans DB yang tersedia untuk komputer klien. Kekurangan utama dari penggunaan pelacakan sisi klien adalah bahwa pelacakan mungkin tidak mengambil semua kueri saat berada dalam beban berat. Hal ini dapat melemahkan efektivitas analisis yang dilakukan oleh basis data Engine Tuning Advisor. Jika Anda perlu menjalankan pelacakan dalam beban berat dan ingin memastikan bahwa pelacakan dapat menangkap setiap kueri selama sesi pelacakan, Anda harus menggunakan pelacakan sisi server.

Untuk pelacakan sisi server, Anda harus mendapatkan file pelacakan di instans DB ke dalam file beban kerja yang sesuai atau Anda dapat menyimpan pelacakan ke tabel di instans DB setelah pelacakan selesai. Anda dapat menggunakan SQL Server Profiler untuk menyimpan pelacakan ke file di komputer lokal atau membuat Tuning Advisor membaca dari tabel pelacakan di instans DB.

# Menjalankan pelacakan sisi klien di instans DB SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.TuningAdvisor.ClientSide"></a>

 **Untuk menjalankan pelacakan sisi klien di instans DB SQL Server** 

1. Mulai SQL Server Profiler. SQL Server Profiler diinstal di folder Performance Tools dari folder instans SQL Server. Anda harus memuat atau menentukan templat definisi pelacakan untuk memulai pelacakan sisi klien.

1. Di menu SQL Server Profiler File, pilih **Pelacakan Baru**. Di kotak dialog **Hubungkan ke Server**, masukkan titik akhir instans DB, port, nama pengguna utama, dan kata sandi basis data yang ingin Anda lacak.

1. Di kotak dialog **Properti Pelacakan**, masukkan nama pelacakan dan pilih templat definisi pelacakan. Templat default, TSQL\$1Replay, dikirimkan bersama aplikasi. Anda dapat mengedit templat ini untuk menentukan pelacakan Anda. Edit peristiwa dan informasi peristiwa di bagian tab **Pemilihan Peristiwa** dari kotak dialog **Properti Pelacakan**.

   Untuk informasi templat definisi pelacakan dan cara menggunakan SQL Server Profiler untuk menentukan pelacakan sisi klien selengkapnya, lihat [Database Engine Tuning Advisor](https://docs.microsoft.com/en-us/sql/relational-databases/performance/database-engine-tuning-advisor) dalam dokumentasi Microsoft.

1. Mulai pelacakan sisi klien dan perhatikan kueri SQL secara waktu nyata saat berjalan di instans DB Anda.

1. Pilih **Hentikan Pelacakan** dari menu **File** setelah Anda menyelesaikan pelacakan. Simpan hasil sebagai file atau sebagai tabel pelacakan di instans DB.

# Menjalankan pelacakan sisi server di instans DB SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.TuningAdvisor.ServerSide"></a>

Menulis skrip untuk membuat pelacakan sisi server bisa menjadi rumit dan tidak dicakup dalam dokumen ini. Bagian ini berisi contoh skrip yang dapat Anda gunakan sebagai contoh. Seperti halnya pelacakan sisi klien, tujuan skrip ini adalah untuk membuat file beban kerja atau tabel pelacakan yang dapat Anda buka menggunakan basis data Engine Tuning Advisor.

Berikut ini adalah contoh skrip singkat yang memulai pelacakan sisi server dan mengambil detail ke file beban kerja. Jejak awalnya disimpan ke file RDSTrace .trc di direktori D:\$1RDSDBDATA\$1Log dan rolls-over setiap 100 MB sehingga file jejak berikutnya diberi nama RDSTrace \$11.trc, \$12.trc, dll. RDSTrace

```
DECLARE @file_name NVARCHAR(245) = 'D:\RDSDBDATA\Log\RDSTrace';
DECLARE @max_file_size BIGINT = 100;
DECLARE @on BIT = 1
DECLARE @rc INT
DECLARE @traceid INT

EXEC @rc = sp_trace_create @traceid OUTPUT, 2, @file_name, @max_file_size
IF (@rc = 0) BEGIN
   EXEC sp_trace_setevent @traceid, 10, 1, @on
   EXEC sp_trace_setevent @traceid, 10, 2, @on
   EXEC sp_trace_setevent @traceid, 10, 3, @on
 . . .
   EXEC sp_trace_setfilter @traceid, 10, 0, 7, N'SQL Profiler'
   EXEC sp_trace_setstatus @traceid, 1
   END
```

Contoh berikut adalah skrip yang menghentikan pelacakan. Perhatikan bahwa pelacakan yang dibuat oleh skrip sebelumnya terus berjalan hingga Anda secara eksplisit menghentikan pelacakan atau proses tidak berjalan di ruang disk.

```
DECLARE @traceid INT
SELECT @traceid = traceid FROM ::fn_trace_getinfo(default) 
WHERE property = 5 AND value = 1 AND traceid <> 1 

IF @traceid IS NOT NULL BEGIN
   EXEC sp_trace_setstatus @traceid, 0
   EXEC sp_trace_setstatus @traceid, 2
END
```

Anda dapat menyimpan hasil pelacakan sisi server ke tabel basis data dan menggunakan tabel basis data sebagai beban kerja untuk Tuning Advisor menggunakan fungsi fn\$1trace\$1gettable. Perintah berikut memuat hasil semua file bernama RDSTrace .trc di direktori D:\$1rdsdbdata\$1Log, termasuk semua file rollover seperti RDSTrace \$11.trc, ke dalam tabel bernama dalam database saat ini. RDSTrace 

```
SELECT * INTO RDSTrace
FROM fn_trace_gettable('D:\rdsdbdata\Log\RDSTrace.trc', default);
```

Untuk menyimpan file rollover tertentu ke tabel, misalnya file RDSTrace \$11.trc, tentukan nama file rollover dan ganti 1 alih-alih default sebagai parameter terakhir ke fn\$1trace\$1gettable.

```
SELECT * INTO RDSTrace_1
FROM fn_trace_gettable('D:\rdsdbdata\Log\RDSTrace_1.trc', 1);
```

# Menjalankan Tuning Advisor dengan pelacakan
<a name="Appendix.SQLServer.CommonDBATasks.TuningAdvisor.Running"></a>

Setelah Anda membuat pelacakan, baik sebagai file lokal maupun sebagai tabel basis data, Anda kemudian dapat menjalankan Tuning Advisor pada instans DB Anda. Menggunakan Tuning Advisor dengan Amazon RDS adalah proses yang sama seperti ketika bekerja dengan instans SQL Server jarak jauh mandiri. Anda dapat menggunakan Tuning Advisor UI di mesin klien atau menggunakan utilitas dta.exe dari baris perintah. Dalam kedua kasus, Anda harus terhubung ke instans DB Amazon RDS menggunakan titik akhir instans DB serta memberikan nama pengguna utama dan kata sandi pengguna utama Anda saat menggunakan Tuning Advisor. 

Contoh kode berikut menunjukkan penggunaan utilitas baris perintah dta.exe di instans DB Amazon RDS dengan titik akhir **dta.cnazcmklsdei.us-east-1.rds.amazonaws.com**. Contohnya mencakup nama pengguna utama **admin** dan kata sandi pengguna utama **test**, basis data contoh yang akan disetel diberi nama mesin bernama **C:\$1RDSTrace.trc**. Kode baris perintah contoh juga menentukan sesi pelacakan bernama **RDSTrace1** dan menentukan file output ke mesin lokal bernama **RDSTrace.sql** untuk skrip output SQL, **RDSTrace.txt** untuk file hasil, dan **RDSTrace.xml** untuk file XML analisis. Terdapat pula tabel kesalahan yang ditentukan di basis data RDSDTA bernama **RDSTraceErrors**.

```
dta -S dta.cnazcmklsdei.us-east-1.rds.amazonaws.com -U admin -P test -D RDSDTA -if C:\RDSTrace.trc -s RDSTrace1 -of C:\ RDSTrace.sql -or C:\ RDSTrace.txt -ox C:\ RDSTrace.xml -e RDSDTA.dbo.RDSTraceErrors 
```

Berikut adalah contoh kode baris perintah yang sama kecuali beban kerja input merupakan tabel di instans Amazon RDS jarak jauh yang disebut **RDSTrace** dan berada di basis data **RDSDTA**.

```
dta -S dta.cnazcmklsdei.us-east-1.rds.amazonaws.com -U admin -P test -D RDSDTA -it RDSDTA.dbo.RDSTrace -s RDSTrace1 -of C:\ RDSTrace.sql -or C:\ RDSTrace.txt -ox C:\ RDSTrace.xml -e RDSDTA.dbo.RDSTraceErrors
```

Untuk daftar lengkap parameter baris perintah utilitas dta, lihat [dta Utility](https://docs.microsoft.com/en-us/sql/tools/dta/dta-utility) dalam dokumentasi Microsoft.

# Mengubah `db_owner` ke `rdsa` akun untuk database Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.ChangeDBowner"></a>

Saat Anda membuat atau memulihkan basis data di instans DB RDS for SQL Server, Amazon RDS akan mengatur pemilik basis data `rdsa`. Jika Anda memiliki penerapan Multi-AZ menggunakan SQL Server Database Mirroring (DBM) atau Always On Availability Groups ()AGs, Amazon RDS menetapkan pemilik database pada instans DB sekunder ke. `NT AUTHORITY\SYSTEM` Pemilik basis data sekunder tidak dapat diubah sampai instans DB sekunder dinaikkan ke peran utama. Dalam kebanyakan kasus, menetapkan pemilik basis data ke `NT AUTHORITY\SYSTEM` tidak akan menimbulkan masalah saat menjalankan kueri, tetapi dapat menimbulkan kesalahan saat menjalankan prosedur tersimpan sistem seperti `sys.sp_updatestats` yang memerlukan izin lebih tinggi untuk dijalankan.

Anda dapat menggunakan kueri berikut untuk mengidentifikasi pemilik basis data yang dimiliki oleh `NT AUTHORITY\SYSTEM`:

```
SELECT name FROM sys.databases WHERE SUSER_SNAME(owner_sid) = 'NT AUTHORITY\SYSTEM';
```

Anda dapat menggunakan prosedur tersimpan Amazon RDS `rds_changedbowner_to_rdsa` untuk mengubah pemilik basis data `rdsa`. Basis data berikut tidak diizinkan untuk digunakan dengan `rds_changedbowner_to_rdsa`: `master, model, msdb, rdsadmin, rdsadmin_ReportServer, rdsadmin_ReportServerTempDB, SSISDB`.

Untuk mengubah pemilik database`rdsa`, panggil prosedur yang `rds_changedbowner_to_rdsa` disimpan dan berikan nama database.

**Example Penggunaan:**  

```
exec msdb.dbo.rds_changedbowner_to_rdsa 'TestDB1';
```

Parameter berikut diperlukan:
+ `@db_name` – Nama basis data untuk mengubah pemilik basis data menjadi `rdsa`.

**penting**  
Anda tidak dapat menggunakan `rds_changedbowner_to_rdsa` untuk mengubah kepemilikan database ke login selain`rdsa`. Misalnya, Anda tidak dapat mengubah kepemilikan ke login yang Anda gunakan untuk membuat database. Untuk mengembalikan keanggotaan yang hilang dalam `db_owner` peran untuk pengguna utama Anda ketika tidak ada pengguna database lain yang dapat digunakan untuk memberikan keanggotaan, setel ulang kata sandi pengguna utama untuk mendapatkan keanggotaan dalam `db_owner` peran tersebut. Lihat informasi yang lebih lengkap di [Menyetel ulang keanggotaan peran db\$1owner untuk pengguna master untuk Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.ResetPassword.md).

# Mengelola koleksi dan set karakter untuk Amazon RDS untuk Microsoft SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.Collation"></a>

Topik ini memberikan panduan tentang cara mengelola kumpulan dan kumpulan karakter untuk Microsoft SQL Server di Amazon RDS. Ini menjelaskan cara mengkonfigurasi koleksi selama pembuatan database dan memodifikasinya nanti, memastikan penanganan data teks yang tepat berdasarkan persyaratan bahasa dan lokal. Selain itu, ini mencakup praktik terbaik untuk menjaga kompatibilitas dan kinerja di lingkungan SQL Server di Amazon RDS.

SQL Server mendukung kolasi di berbagai tingkat. Anda mengatur kolasi server default saat membuat instans DB. Anda dapat menimpa kolasi di tingkat basis data, tabel, atau kolom.

**Topics**
+ [Kolasi tingkat server untuk Microsoft SQL Server](#Appendix.SQLServer.CommonDBATasks.Collation.Server)
+ [Kolasi tingkat basis data untuk Microsoft SQL Server](#Appendix.SQLServer.CommonDBATasks.Collation.Database-Table-Column)

## Kolasi tingkat server untuk Microsoft SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.Collation.Server"></a>

Saat membuat instans DB Microsoft SQL Server, Anda dapat mengatur kolasi server yang ingin digunakan. Jika Anda tidak memilih pemeriksaan yang berbeda, pemeriksaan tingkat server default ke SQL\$1Latin1\$1General\$1 \$1CI\$1AS. CP1 Kolasi server diterapkan secara default untuk semua basis data dan objek basis data.

**catatan**  
Anda tidak dapat mengubah kolasi saat memulihkan dari snapshot DB.

Saat ini, Amazon RDS mendukung kolasi server berikut:


| Kolasi | Deskripsi | 
| --- | --- | 
|  Arabic\$1CI\$1AS  |  Bahasa Arab, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Cina\$1PRC\$1 BIN2  |  Bahasa Mandarin RRT, urutan titik kode biner  | 
|  Chinese\$1PRC\$1CI\$1AS  |  Bahasa Mandarin-RRT, peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Chinese\$1Taiwan\$1Stroke\$1CI\$1AS  |  Bahasa Mandarin-Taiwan-Gurat, peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Denmark\$1Norwegian\$1CI\$1AS  |  Bahasa Denmark-Norwegia, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Denmark\$1Norwegian\$1CI\$1AS\$1KS  |  Denmark-Norwegia, case-insensitive, aksen-sensitif, kanatype-sensitif, lebar-tidak sensitif  | 
|  Denmark\$1Norwegian\$1CI\$1AS\$1KS\$1WS  |  Denmark-Norwegia, case-insensitive, aksen-sensitif, kanatype-sensitif, lebar-sensitif  | 
|  Denmark\$1Norwegian\$1CI\$1AS\$1WS  |  Denmark-Norwegia, case-insensitive, aksen-sensitif, kanatype-tidak sensitif, lebar-sensitif  | 
|  Danish\$1Norwegian\$1CS\$1AI  |  Denmark-Norwegia, peka huruf besar/kecil, tidak sensitif aksen, kanatype-tidak sensitif, tidak sensitif lebar  | 
|  Denmark\$1Norwegian\$1cs\$1ai\$1ks  |  Denmark-Norwegia, peka huruf besar/kecil, tidak sensitif aksen, sensitif terhadap kanatype, tidak sensitif lebar  | 
|  Finlandia\$1Swedia\$1100\$1bin  |  Finlandia-Swedia-100, jenis biner  | 
|  Finlandia\$1Swedia\$1100\$1 BIN2  |  Finlandia-Swedia-100, jenis perbandingan titik kode biner  | 
|  Finlandia\$1Swedia\$1100\$1CI\$1AI  |  Finlandia-Swedia-100, case-insensitive, aksen-tidak sensitif, kanatype-tidak sensitif, lebar-tidak sensitif  | 
|  Finlandia\$1Swedia\$1100\$1CI\$1AS  |  Finlandia-Swedia-100, case-insensitive, aksen-sensitif, kanatype-tidak sensitif, lebar-tidak sensitif  | 
|  Finnish\$1Swedish\$1CI\$1AS  |  Bahasa Finlandia, Swedia, dan Swedia (Finlandia), peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  French\$1CI\$1AS  |  Bahasa Prancis, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Yunani\$1ci\$1as  |  Yunani, case-insensitive, aksen-sensitif, kanatype-tidak sensitif, lebar-tidak sensitif  | 
|  Greek\$1CS\$1AS  |  Yunani, peka huruf besar/kecil, peka aksen, kanatype-tidak sensitif, tidak peka lebar  | 
|  Hebrew\$1BIN  |  Bahasa Ibrani, urutan biner  | 
|  Hebrew\$1CI\$1AS  |  Bahasa Ibrani, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Japanese\$1BIN  | Bahasa Jepang, urutan biner | 
|  Japanese\$1CI\$1AS  |  Bahasa Jepang, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Japanese\$1CS\$1AS  |  Bahasa Jepang, peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Japanese\$1XJIS\$1140\$1CI\$1AS  |  Bahasa Jepang, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar, tidak peka variasi  | 
|  Japanese\$1XJIS\$1140\$1CI\$1AS\$1KS\$1VSS  |  Bahasa Jepang, tidak peka huruf besar-kecil, peka aksen, peka jenis kana, tidak peka lebar, tidak peka pelengkap, peka variasi  | 
|  Japanese\$1XJIS\$1140\$1CI\$1AS\$1VSS  |  Bahasa Jepang, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar, tidak peka pelengkap, peka variasi  | 
|  Japanese\$1XJIS\$1140\$1CS\$1AS\$1KS\$1WS  |  Bahasa Jepang, peka huruf besar-kecil, peka aksen, peka jenis kana, peka lebar, tidak peka variasi  | 
|  Korean\$1Wansung\$1CI\$1AS  |  Bahasa Korea-Wansung, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Latin1\$1General\$1100\$1BIN  |  Bahasa Latin1-Umum-100, urutan biner  | 
|  Latin1\$1Umum\$1100\$1 BIN2  |  Bahasa Latin1-Umum-100, urutan titik kode biner  | 
|  BIN2Latin1\$1Umum\$1100\$1 \$1 UTF8  |  Bahasa Latin1-Umum-100, urutan titik kode biner, dienkodekan dengan UTF-8  | 
|  Latin1\$1General\$1100\$1CI\$1AS  |  Bahasa Latin1-Umum-100, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Latin1\$1umum\$1100\$1CI\$1AS\$1SC\$1 UTF8  |  Bahasa Latin1-Umum-100, peka huruf besar-kecil, peka aksen, karakter tambahan, dienkodekan dengan UTF-8  | 
|  Latin1\$1General\$1BIN  |  Bahasa Latin1-Umum, urutan biner  | 
|  Latin1\$1Umum\$1 BIN2  |  Bahasa Latin1-Umum, urutan titik kode biner  | 
|  Latin1\$1General\$1CI\$1AI  |  Bahasa Latin1-Umum, tidak peka huruf besar-kecil, tidak peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Latin1\$1General\$1CI\$1AS  |  Bahasa Latin1-Umum, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Latin1\$1General\$1CI\$1AS\$1KS  |  Bahasa Latin1-Umum, tidak peka huruf besar-kecil, peka aksen, peka jenis kana, tidak peka lebar  | 
|  Latin1\$1General\$1CS\$1AS  |  Bahasa Latin1-Umum, peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Modern\$1Spanish\$1CI\$1AS  |  Bahasa Spanyol-Modern, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Polish\$1CI\$1AS  |  Bahasa Polandia, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  SQL\$11xCompat\$1 \$1CI\$1AS CP850  |  Bahasa Latin1-Umum, tidak peka huruf besar-kecil, peka akses, tidak peka jenis kana tidak peka lebar untuk Unicode Data, SQL Server Sort Order 49 pada Code Page 850 untuk non-Unicode Data  | 
|  CP1SQL\$1Latin1\$1Umum\$1 \$1CI\$1AI  |  Bahasa Latin1-Umum, tidak peka huruf besar-kecil, tidak peka akses, tidak peka jenis kana tidak peka lebar untuk Unicode Data, SQL Server Sort Order 54 pada Code Page 1252 untuk non-Unicode Data  | 
|  **SQL\$1Latin1\$1Umum\$1 \$1CI\$1AS CP1 (default)**  |  Bahasa Latin1-Umum, tidak peka huruf besar-kecil, peka akses, tidak peka jenis kana tidak peka lebar untuk Unicode Data, SQL Server Sort Order 52 pada Code Page 1252 untuk non-Unicode Data  | 
|  CP1SQL\$1Latin1\$1Umum\$1 \$1CS\$1AS  |  Bahasa Latin1-Umum, peka huruf besar-kecil, peka akses, tidak peka jenis kana tidak peka lebar untuk Unicode Data, SQL Server Sort Order 51 pada Code Page 1252 untuk non-Unicode Data  | 
|  CP437SQL\$1Latin1\$1Umum\$1 \$1CI\$1AI  |  Bahasa Latin1-Umum, tidak peka huruf besar-kecil, tidak peka akses, tidak peka jenis kana tidak peka lebar untuk Unicode Data, SQL Server Sort Order 34 pada Code Page 437 untuk non-Unicode Data  | 
|  CP850SQL\$1Latin1\$1Umum\$1 \$1BIN  |  Bahasa Latin1-Umum, urutan biner untuk Unicode Data, SQL Server Sort Order 40 pada Code Page 850 untuk non-Unicode Data  | 
|  CP850SQL\$1Latin1\$1Umum\$1 \$1 BIN2  |  Bahasa Latin1-Umum, urutan titik kode biner untuk Unicode Data, SQL Server Sort Order 40 pada Code Page 850 untuk non-Unicode Data  | 
|  CP850SQL\$1Latin1\$1Umum\$1 \$1CI\$1AI  |  Bahasa Latin1-Umum, tidak peka huruf besar-kecil, tidak peka akses, tidak peka jenis kana tidak peka lebar untuk Unicode Data, SQL Server Sort Order 44 pada Code Page 850 untuk non-Unicode Data  | 
|  CP850SQL\$1Latin1\$1Umum\$1 \$1CI\$1AS  |  Bahasa Latin1-Umum, tidak peka huruf besar-kecil, peka akses, tidak peka jenis kana tidak peka lebar untuk Unicode Data, SQL Server Sort Order 42 pada Code Page 850 untuk non-Unicode Data  | 
|  CP850SQL\$1Latin1\$1Umum\$1PREF\$1 \$1CI\$1AS  |  Latin1-General-Pref, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive untuk Unicode Data, SQL Server Sort Order 183 pada Kode Halaman 850 untuk Data non-Unicode  | 
|  CP1256SQL\$1Latin1\$1Umum\$1 \$1CI\$1AS  |  Bahasa Latin1-Umum, tidak peka huruf besar-kecil, peka akses, tidak peka jenis kana tidak peka lebar untuk Unicode Data, SQL Server Sort Order 146 pada Code Page 1256 untuk non-Unicode Data  | 
|  CP1255SQL\$1Latin1\$1Umum\$1 \$1CS\$1AS  |  Latin1-Umum, peka huruf besar/kecil, sensitif aksen, kanatype-tidak sensitif, lebar tidak sensitif untuk Data Unicode, SQL Server Urutkan Urutan 137 pada Halaman Kode 1255 untuk Data non-Unicode  | 
|  Thai\$1CI\$1AS  |  Bahasa Thailand, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 
|  Turkish\$1CI\$1AS  |  Bahasa Turki, tidak peka huruf besar-kecil, peka aksen, tidak peka jenis kana, tidak peka lebar  | 

Anda juga dapat mengambil daftar koleksi yang didukung secara terprogram menggunakan: AWS CLI

```
aws rds describe-db-engine-versions --engine sqlserver-ee --list-supported-character-sets --query 'DBEngineVersions[].SupportedCharacterSets[].CharacterSetName' | sort -u
```

Untuk memilih kolasi:
+ Jika Anda menggunakan konsol Amazon RDS, saat membuat instans DB baru, pilih **Konfigurasi tambahan**, lalu masukkan kolasi di kolom **Kolasi**. Untuk informasi selengkapnya, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md). 
+ Jika Anda menggunakan AWS CLI, gunakan `--character-set-name` opsi dengan `create-db-instance` perintah. Untuk informasi selengkapnya, lihat [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html).
+ Jika Anda menggunakan API Amazon RDS, gunakan parameter `CharacterSetName` dengan operasi `CreateDBInstance`. Untuk informasi selengkapnya, lihat [Membuat DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html).

## Kolasi tingkat basis data untuk Microsoft SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.Collation.Database-Table-Column"></a>

Anda dapat mengubah kolasi default pada basis data, tabel, atau tingkat kolom dengan menimpa kolasi saat membuat basis data baru atau objek basis data. Misalnya, jika pemeriksaan server default Anda adalah SQL\$1Latin1\$1General\$1 \$1CI\$1AS, Anda dapat mengubahnya menjadi CP1 Mohawk\$1100\$1CI\$1AS untuk dukungan pengumpulan Mohawk. Bahkan argumen dalam kueri dapat diketik agar dapat menggunakan kolasi yang berbeda jika perlu.

Misalnya, kueri berikut akan mengubah kolasi default bawaan untuk kolom AccountName ke Mohawk\$1100\$1CI\$1AS

```
CREATE TABLE [dbo].[Account]
	(
	    [AccountID] [nvarchar](10) NOT NULL,
	    [AccountName] [nvarchar](100) COLLATE Mohawk_100_CI_AS NOT NULL 
	) ON [PRIMARY];
```

Mesin DB Microsoft SQL Server mendukung Unicode berdasarkan jenis data NCHAR, NVARCHAR, dan NTEXT default. Misalnya, jika Anda membutuhkan dukungan CJK, gunakan tipe data Unicode untuk penyimpanan karakter dan menimpa kolasi server default saat membuat basis data dan tabel Anda. Berikut adalah beberapa tautan dari Microsoft yang mencakup dukungan kolasi dan Unicode untuk SQL Server:
+ [Bekerja dengan kolasi](http://msdn.microsoft.com/en-us/library/ms187582%28v=sql.105%29.aspx) 
+ [Kolasi dan terminologi internasional](http://msdn.microsoft.com/en-us/library/ms143726%28v=sql.105%29) 
+ [Menggunakan kolasi SQL Server](http://msdn.microsoft.com/en-us/library/ms144260%28v=sql.105%29.aspx) 
+ [Pertimbangan internasional untuk aplikasi basis data dan mesin basis data](http://msdn.microsoft.com/en-us/library/ms190245%28v=sql.105%29.aspx)

# Membuat pengguna database untuk Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.CreateUser"></a>

Anda dapat membuat pengguna basis data untuk instans DB Amazon RDS for Microsoft SQL Server. Gunakan aplikasi seperti SQL Server Management Suite (SSMS). Anda masuk ke instans DB sebagai pengguna utama yang dibuat saat membuat instans DB.

```
--Initially set context to master database
USE [master];
GO
--Create a server-level login named theirname with password theirpassword
CREATE LOGIN [theirname] WITH PASSWORD = 'theirpassword';
GO
--Set context to msdb database
USE [msdb];
GO
--Create a database user named theirname and link it to server-level login theirname
CREATE USER [theirname] FOR LOGIN [theirname];
GO
```

Untuk contoh menambahkan pengguna basis data ke peran, lihat [Menambahkan pengguna ke SQLAgentUser peran](SQLServerAgent.AddUser.md).

**catatan**  
Jika mendapatkan kesalahan izin saat menambahkan pengguna, Anda dapat memulihkan hak istimewa dengan memodifikasi kata sandi pengguna utama instans DB. Untuk informasi selengkapnya, lihat [Menyetel ulang keanggotaan peran db\$1owner untuk pengguna master untuk Amazon RDS for SQL Server](Appendix.SQLServer.CommonDBATasks.ResetPassword.md).   
Ini bukan praktik terbaik untuk mengkloning izin pengguna master di aplikasi Anda. Untuk informasi selengkapnya, lihat [Cara mengkloning izin pengguna master di Amazon RDS](https://aws.amazon.com/blogs/database/how-to-clone-master-user-permissions-in-amazon-rds-for-sql-server/) for SQL Server.

# Menentukan model pemulihan untuk database Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.DatabaseRecovery"></a>

Di Amazon RDS, model pemulihan, periode retensi, dan status basis data ditautkan.

Penting bagi Anda untuk memahami konsekuensinya sebelum membuat perubahan pada salah satu pengaturan ini. Setiap pengaturan dapat memengaruhi pengaturan lain. Sebagai contoh:
+ Jika Anda mengubah model pemulihan basis data ke SIMPLE atau BULK\$1LOGGED saat retensi cadangan diaktifkan, Amazon RDS akan mereset model pemulihan ke FULL dalam waktu lima menit. Perubahan ini juga akan mengakibatkan RDS mengambil snapshot instans DB.
+ Jika Anda mengatur retensi cadangan ke `0` hari, RDS akan mengatur mode pemulihan ke SIMPLE.
+ Jika Anda mengubah model pemulihan basis data dari SIMPLE ke opsi lain apa pun ketika penyimpanan cadangan diatur ke `0` hari, RDS akan mereset model pemulihan ke SIMPLE.

**penting**  
Jangan sekali-kali mengubah model pemulihan pada instans Multi-AZ meskipun tampaknya Anda dapat melakukannya—misalnya menggunakan ALTER DATABASE. Oleh karena itu, retensi cadangan dengan mode pemulihan FULL diperlukan untuk Multi-AZ. Jika Anda mengubah model pemulihan, RDS akan segera mengubahnya kembali menjadi FULL.  
Reset otomatis ini memaksa RDS untuk membangun kembali duplikasi sepenuhnya. Selama pembangunan kembali ini, ketersediaan basis data akan menurun selama 30-90 menit hingga duplikasi siap untuk failover. Instans DB juga akan mengalami penurunan performa dengan cara yang sama seperti selama konversi dari AZ Tunggal ke Multi-AZ. Lamanya performa terdegradasi bergantung pada ukuran penyimpanan basis data—makin besar basis data tersimpan, makin lama degradasi.

Untuk informasi model pemulihan SQL Server selengkapnya, lihat [Recovery models (SQL Server)](https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/recovery-models-sql-server) dalam dokumentasi Microsoft.

# Menentukan waktu failover terakhir untuk Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.LastFailover"></a>

Untuk menentukan waktu failover terakhir, gunakan prosedur berikut:

```
execute msdb.dbo.rds_failover_time;
```

Prosedur ini akan menampilkan informasi berikut.


****  

| Parameter output | Deskripsi | 
| --- | --- | 
|  errorlog\$1available\$1from  |  Menampilkan waktu sejak log kesalahan tersedia di direktori log.  | 
|  recent\$1failover\$1time  |  Menampilkan waktu failover terakhir jika tersedia dari log kesalahan. Jika tidak, `null` akan ditampilkan.  | 

**catatan**  
Prosedur tersimpan akan mencari semua log kesalahan SQL Server yang tersedia di direktori log untuk mengambil waktu failover terbaru. Jika pesan failover telah ditimpa oleh SQL Server, prosedur tidak akan mengambil waktu failover.

**Example tanpa failover terbaru**  
Contoh ini menampilkan output saat tidak ada failover terbaru dalam log kesalahan. Tidak terjadi failover sejak 29-04-2020 23:59:00.01.  


| errorlog\$1available\$1from | recent\$1failover\$1time | 
| --- | --- | 
|  2020-04-29 23:59:00.0100000  |  null  | 

**Example failover terbaru**  
Contoh ini menampilkan output saat ada failover dalam log kesalahan. Failover terbaru adalah pada 05-05-2020 18:57:51.89.  


| errorlog\$1available\$1from | recent\$1failover\$1time | 
| --- | --- | 
|  2020-04-29 23:59:00.0100000  |  05-05-2020 18:57:51.8900000  | 

# point-in-time-recoveryKegagalan pemecahan masalah karena kesenjangan nomor urutan log
<a name="Appendix.SQLServer.CommonDBATasks.PITR-LSN-Gaps"></a>

Saat mencoba point-in-time-recovery (PITR) di RDS untuk SQL Server, Anda mungkin mengalami kegagalan karena celah di nomor urutan log (). LSNs Kesenjangan ini mencegah RDS memulihkan database Anda ke waktu yang diminta dan RDS menempatkan instance pemulihan Anda dalam keadaan. `incompatible-restore`

Penyebab umum untuk masalah ini adalah:
+ Perubahan manual pada model pemulihan database.
+ Model pemulihan otomatis berubah oleh RDS karena sumber daya yang tidak mencukupi untuk menyelesaikan cadangan log transaksi.

Untuk mengidentifikasi celah LSN dalam database Anda, jalankan kueri ini:

```
SELECT * FROM msdb.dbo.rds_fn_list_tlog_backup_metadata(database_name)
ORDER BY backup_file_time_utc desc;
```

Jika Anda menemukan celah LSN, Anda dapat:
+ Pilih titik pemulihan sebelum celah LSN.
+ Tunggu dan kembalikan ke titik setelah pencadangan instance berikutnya selesai.

Untuk mencegah masalah ini, sebaiknya Anda tidak mengubah model pemulihan RDS untuk database SQL Server secara manual, karena mengganggu daya tahan instans. Kami juga menyarankan Anda memilih jenis instans dengan sumber daya yang cukup untuk beban kerja Anda guna memastikan pencadangan log transaksi reguler.

Untuk informasi selengkapnya tentang manajemen log transaksi, lihat [arsitektur log transaksi SQL Server dan panduan manajemen](https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver16) dalam dokumentasi Microsoft SQL Server.

# Tolak atau izinkan melihat nama database untuk Amazon RDS untuk SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.ManageView"></a>

Pengguna master tidak dapat mengatur `DENY VIEW ANY DATABASE TO LOGIN` untuk menyembunyikan database dari pengguna.   Untuk mengubah izin ini, gunakan prosedur tersimpan berikut sebagai gantinya:
+ Menolak akses tampilan basis data *LOGIN*:

  ```
  EXEC msdb.dbo.rds_manage_view_db_permission @permission=‘DENY’, @server_principal=‘LOGIN’  
  go
  ```
+ Mengizinkan akses tampilan basis data ke *LOGIN*:

  ```
  EXEC msdb.dbo.rds_manage_view_db_permission @permission='GRANT', @server_principal='LOGIN' 
   go
  ```

Pertimbangkan hal berikut saat menggunakan prosedur tersimpan ini:
+ Nama database disembunyikan dari SSMS dan internal DMV (tampilan manajemen dinamis). Namun, nama database masih terlihat dari audit, log, dan tabel metadata. Ini adalah izin `VIEW ANY DATABASE` server yang aman. Untuk informasi lebih lanjut, lihat [ DENYIzin Server](https://learn.microsoft.com/en-us/sql/t-sql/statements/deny-server-permissions-transact-sql?view=sql-server-ver16#permissions).
+ Setelah izin dikembalikan ke `GRANT` (diizinkan), *LOGIN* dapat melihat semua database.
+ Jika Anda menghapus dan membuat ulang *LOGIN*, izin tampilan yang terkait dengan LOGIN diatur ulang ke`ALLOW`.
+ Untuk instans Multi-AZ, setel `GRANT` izin `DENY` atau hanya untuk *LOGIN* pada host utama. Perubahan disebarkan ke host sekunder secara otomatis.
+ Izin ini hanya mengubah apakah login dapat melihat nama database. Namun, akses ke database dan objek di dalamnya dikelola secara terpisah.

# Menonaktifkan sisipan cepat selama pemuatan massal untuk Amazon untuk Server RDS SQL
<a name="Appendix.SQLServer.CommonDBATasks.DisableFastInserts"></a>

Dimulai dengan SQL Server 2016, sisipan cepat diaktifkan secara default. Sisipan cepat memanfaatkan pencatatan log minimal yang terjadi saat basis data berada dalam model pemulihan pencatatan log sederhana atau massal untuk mengoptimalkan performa sisipan. Dengan sisipan cepat, setiap batch beban massal memperoleh luasan baru yang mengabaikan pencarian alokasi untuk luasan yang ada dengan ruang kosong yang tersedia untuk mengoptimalkan performa sisipan.

Namun, dengan sisipan cepat, Panduan Referensi massal dengan ukuran batch kecil dapat menyebabkan bertambahnya ruang tidak terpakai yang digunakan objek. Jika peningkatan ukuran batch tidak memungkinkan, mengaktifkan tanda pelacakan 692 dapat membantu mengurangi ruang terpesan yang tidak digunakan, tetapi dengan mengorbankan performa. Mengaktifkan tanda pelacakan ini akan menonaktifkan sisipan cepat saat memuat data secara massal ke indeks berklaster atau heap.

Anda mengaktifkan tanda pelacakan 692 sebagai parameter startup menggunakan grup parameter DB. Untuk informasi selengkapnya, lihat [Grup parameter untuk RDS](USER_WorkingWithParamGroups.md).

Trace flag 692 didukung untuk Amazon RDS di SQL Server 2016 dan yang lebih baru. Untuk informasi selengkapnya tentang flag jejak, lihat [DBCCTRACEON- melacak bendera](https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql) di dokumentasi Microsoft.

# Menjatuhkan database di Amazon RDS untuk instans DB Amazon RDS for Microsoft SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.DropMirrorDB"></a>

Anda dapat menghapus sementara basis data di instans DB Amazon RDS yang menjalankan Microsoft SQL Server dalam deployment AZ Tunggal atau Multi-AZ. Untuk menghapus sementara basis data, gunakan perintah berikut:

```
--replace your-database-name with the name of the database you want to drop
EXECUTE msdb.dbo.rds_drop_database  N'your-database-name'
```

**catatan**  
Gunakan kutipan tunggal lurus dalam perintah. Kutipan cerdas akan menyebabkan kesalahan.

Setelah Anda menggunakan prosedur ini untuk menghapus sementara basis data, Amazon RDS akan menghapus sementara semua koneksi yang ada ke basis data dan menghapus riwayat pencadangan basis data.

Untuk memberikan cadangan dan pengembalian tunjangan kepada pengguna lain, ikuti prosedur ini:

```
USE master
GO
CREATE LOGIN user1 WITH PASSWORD=N'changeThis', DEFAULT_DATABASE=master, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE msdb
GO
CREATE USER user1 FOR LOGIN user1
GO
use msdb
GO
GRANT EXECUTE ON msdb.dbo.rds_backup_database TO user1
GO
GRANT EXECUTE ON msdb.dbo.rds_restore_database TO user1
GO
```

# Mengganti nama Amazon RDS untuk database Microsoft SQL Server dalam penyebaran Multi-AZ
<a name="Appendix.SQLServer.CommonDBATasks.RenamingDB"></a>

Untuk mengganti nama instans basis data Microsoft SQL Server yang menggunakan Multi-AZ, gunakan prosedur berikut:

1. Pertama, nonaktifkan Multi-AZ untuk instans DB.

1. Ganti nama basis data dengan menjalankan `rdsadmin.dbo.rds_modify_db_name`.

1. Kemudian, aktifkan Multi-AZ Mirroring atau Always On Availability Groups untuk instans DB agar dapat mengembalikannya ke kondisi semula.

Untuk informasi selengkapnya, lihat [Menambahkan Multi-AZ ke instans DB Microsoft SQL Server](USER_SQLServerMultiAZ.md#USER_SQLServerMultiAZ.Adding). 

**catatan**  
Jika instans Anda tidak menggunakan Multi-AZ, Anda tidak perlu mengubah pengaturan apa pun sebelum atau setelah menjalankan `rdsadmin.dbo.rds_modify_db_name`.  
Anda tidak dapat mengganti nama database pada instance sumber replika baca.

**Contoh: **Pada contoh berikut, prosedur tersimpan `rdsadmin.dbo.rds_modify_db_name` mengganti nama basis data dari **MOO** menjadi **ZAR**. Hal ini mirip dengan menjalankan pernyataan `DDL ALTER DATABASE [MOO] MODIFY NAME = [ZAR]`. 

```
EXEC rdsadmin.dbo.rds_modify_db_name N'MOO', N'ZAR'
GO
```

# Menyetel ulang keanggotaan peran db\$1owner untuk pengguna master untuk Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.ResetPassword"></a>

Jika Anda mengunci pengguna master Anda dari keanggotaan `db_owner` peran pada database RDS untuk SQL Server Anda dan tidak ada pengguna database lain yang dapat memberikan keanggotaan, Anda dapat memulihkan keanggotaan yang hilang dengan memodifikasi kata sandi pengguna master instans DB. 

Dengan mengubah kata sandi pengguna master instans DB, RDS memberikan `db_owner` keanggotaan ke database dalam instans DB yang mungkin telah dicabut secara tidak sengaja. Anda dapat mengubah kata sandi instans DB dengan menggunakan konsol Amazon RDS, AWS CLI perintah [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html), atau dengan menggunakan operasi [Modify DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API. Untuk informasi cara mengubah instans DB selengkapnya, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

# Memulihkan instans DB yang dihentikan lisensi untuk Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.RestoreLTI"></a>

Microsoft telah meminta beberapa pelanggan Amazon RDS yang tidak melaporkan informasi Microsoft License Mobility mereka untuk menghentikan instans DB mereka. Amazon RDS mengambil snapshot dari instans DB ini, dan Anda dapat memulihkan dari snapshot ke instans DB baru yang memiliki model Termasuk Lisensi. 

Anda dapat memulihkan dari snapshot Standar Edition ke Standard Edition atau Enterprise Edition. 

Anda dapat memulihkan dari snapshot Enterprise Edition ke Standard Edition atau Enterprise Edition. 

**Untuk memulihkan dari snapshot SQL Server setelah Amazon RDS membuat snapshot akhir instans Anda**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Snapshot**.

1. Pilih snapshot instans DB SQL Server. Amazon RDS akan membuat snapshot akhir instans DB. Nama snapshot instans yang telah dihentikan ada dalam format `instance_name-final-snapshot`. Misalnya, jika nama instans DB Anda**mytest.cdxgahslksma.us-east-1.rds.com**, snapshot akhir dipanggil ** mytest-final-snapshot** dan terletak di AWS Wilayah yang sama dengan instans DB asli. 

1. Untuk **Tindakan**, pilih **Pulihkan Snapshot**.

   Jendela **Pulihkan Instans DB** akan muncul.

1. Untuk **Model Lisensi**, pilih **termasuk lisensi**. 

1. Pilih mesin DB SQL Server yang ingin Anda gunakan. 

1. Untuk **Pengidentifikasi Instans DB**, masukkan nama instans DB yang dipulihkan. 

1. Pilih **Pulihkan Instans DB**.

Untuk informasi cara memulihkan dari snapshot selengkapnya, lihat [Memulihkan ke instans DB](USER_RestoreFromSnapshot.md). 

# Transisi database Amazon RDS for SQL Server dari OFFLINE ke ONLINE
<a name="Appendix.SQLServer.CommonDBATasks.TransitionOnline"></a>

Anda dapat bertransisi dari basis data Microsoft SQL Server di instans DB Amazon RDS dari `OFFLINE` ke `ONLINE`. 


****  

| Metode SQL Server | Metode RDS Amazon | 
| --- | --- | 
| MENGUBAH DATABASE *db\$1name* SET ONLINE; | EXEC rdsadmin.dbo.rds\$1set\$1database\$1online *db\$1name* | 

# Menggunakan pengambilan data perubahan untuk Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.CDC"></a>

Amazon RDS mendukung pengambilan data perubahan (CDC) untuk instans DB yang menjalankan Microsoft SQL Server. CDC mencatat perubahan yang dilakukan terhadap data di tabel. CDC akan menyimpan metadata setiap perubahan, dan Anda dapat mengaksesnya nanti. Untuk informasi cara kerja CDC selengkapnya, lihat [Change data capture](https://docs.microsoft.com/en-us/sql/relational-databases/track-changes/track-data-changes-sql-server#Capture) dalam dokumentasi Microsoft. Sebelum menggunakan CDC dengan instans DB Amazon RDS, aktifkan CDC di basis data dengan menjalankan `msdb.dbo.rds_cdc_enable_db`. Setelah CDC diaktifkan, setiap pengguna yang merupakan `db_owner` basis data tersebut dapat mengaktifkan atau menonaktifkan CDC pada tabel di basis data tersebut.

**penting**  
Selama pemulihan, CDC akan dinonaktifkan. Semua metadata terkait akan otomatis dihapus dari basis data. Ini berlaku untuk pemulihan dan point-in-time pemulihan snapshot. Setelah melakukan salah satu jenis pemulihan ini, Anda dapat mengaktifkan ulang CDC dan menetapkan ulang tabel untuk melacak.

Untuk mengaktifkan CDC instans DB, jalankan prosedur tersimpan `msdb.dbo.rds_cdc_enable_db`.

```
1. exec msdb.dbo.rds_cdc_enable_db 'database_name'
```

Untuk menonaktifkan CDC instans DB, jalankan prosedur tersimpan `msdb.dbo.rds_cdc_disable_db`.

```
1. exec msdb.dbo.rds_cdc_disable_db 'database_name'
```

Untuk memberikan izin CDC kepada pengguna, gunakan prosedur berikut:

```
1. go
2. 		GRANT EXECUTE ON msdb.dbo.rds_cdc_enable_db TO User1
3. 		GRANT EXECUTE ON msdb.dbo.rds_cdc_disable_db TO User1
```

**Topics**
+ [Melacak tabel menggunakan pengambilan data perubahan](#Appendix.SQLServer.CommonDBATasks.CDC.tables)
+ [Pekerjaan pengambilan data perubahan](#Appendix.SQLServer.CommonDBATasks.CDC.jobs)
+ [Pengambilan data perubahan untuk instans Multi-AZ](#Appendix.SQLServer.CommonDBATasks.CDC.Multi-AZ)

## Melacak tabel menggunakan pengambilan data perubahan
<a name="Appendix.SQLServer.CommonDBATasks.CDC.tables"></a>

Setelah CDC diaktifkan di basis data, Anda dapat mulai melacak tabel tertentu. Anda dapat memilih tabel yang akan dilacak dengan menjalankan [sys.sp\$1cdc\$1enable\$1table](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sys-sp-cdc-enable-table-transact-sql).

```
 1. --Begin tracking a table
 2. exec sys.sp_cdc_enable_table   
 3.    @source_schema           = N'source_schema'
 4. ,  @source_name             = N'source_name'
 5. ,  @role_name               = N'role_name'
 6. 
 7. --The following parameters are optional:
 8.  
 9. --, @capture_instance       = 'capture_instance'
10. --, @supports_net_changes   = supports_net_changes
11. --, @index_name             = 'index_name'
12. --, @captured_column_list   = 'captured_column_list'
13. --, @filegroup_name         = 'filegroup_name'
14. --, @allow_partition_switch = 'allow_partition_switch'
15. ;
```

Untuk melihat konfigurasi CDC untuk tabel Anda, jalankan [sys.sp\$1cdc\$1help\$1change\$1data\$1capture](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sys-sp-cdc-help-change-data-capture-transact-sql).

```
1. --View CDC configuration
2. exec sys.sp_cdc_help_change_data_capture 
3. 
4. --The following parameters are optional and must be used together.
5. --  'schema_name', 'table_name'
6. ;
```

Untuk informasi tabel CDC, fungsi, dan prosedur tersimpan dalam dokumentasi SQL Server selengkapnya, lihat bagian berikut:
+ [Prosedur tersimpan pengambilan data perubahan (Transact-SQL)](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/change-data-capture-stored-procedures-transact-sql)
+ [Fungsi pengambilan data perubahan (Transact-SQL)](https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/change-data-capture-functions-transact-sql)
+ [Tabel pengambilan data perubahan (Transact-SQL)](https://docs.microsoft.com/en-us/sql/relational-databases/system-tables/change-data-capture-tables-transact-sql)

## Pekerjaan pengambilan data perubahan
<a name="Appendix.SQLServer.CommonDBATasks.CDC.jobs"></a>

Saat Anda mengaktifkan CDC, SQL Server akan membuat pekerjaan CDC. Pemilik basis data (`db_owner`) dapat melihat, membuat, memodifikasi, dan menghapus pekerjaan CDC. Namun, akun sistem RDS tetap memilikinya. Oleh karena itu, pekerjaan tidak akan terlihat dari tampilan native, prosedur, atau di SQL Server Management Studio.

Untuk mengendalikan perilaku CDC di basis data, gunakan prosedur SQL Server native, seperti [sp\$1cdc\$1enable\$1table](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sys-sp-cdc-enable-table-transact-sql) dan [sp\$1cdc\$1start\$1job](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sys-sp-cdc-start-job-transact-sql). Untuk mengubah parameter pekerjaan CDC, seperti `maxtrans` dan `maxscans`, Anda dapat menggunakan [sp\$1cdc\$1change\$1job.](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sys-sp-cdc-change-job-transact-sql)

Untuk mendapatkan informasi pekerjaan CDC selengkapnya, Anda dapat mengueri tampilan pengelolaan dinamis berikut: 
+ sys.dm\$1cdc\$1errors
+ sys.dm\$1cdc\$1log\$1scan\$1sessions
+ sysjobs
+ sysjobhistory

## Pengambilan data perubahan untuk instans Multi-AZ
<a name="Appendix.SQLServer.CommonDBATasks.CDC.Multi-AZ"></a>

Jika Anda menggunakan CDC di instans Multi-AZ, pastikan konfigurasi pekerjaan CDC duplikat cocok dengan duplikat yang ada di pengguna utama. Pekerjaan CDC dipetakan ke `database_id`. Jika database IDs di sekunder berbeda dari prinsipal, maka pekerjaan tidak akan dikaitkan dengan database yang benar. Untuk mencoba mencegah kesalahan setelah failover, RDS akan menghapus dan membuat ulang pekerjaan di pengguna utama baru. Pekerjaan yang dibuat ulang akan menggunakan parameter yang dicatat oleh pengguna utama sebelum failover.

Meskipun proses ini berjalan cepat, pekerjaan CDC masih mungkin berjalan sebelum RDS dapat memperbaikinya. Berikut tiga cara untuk memaksa parameter agar konsisten antara replika utama dan sekunder:
+ Gunakan parameter pekerjaan yang sama untuk semua basis data yang mengaktifkan CDC. 
+ Sebelum Anda mengubah konfigurasi pekerjaan CDC, konversi instans Multi-AZ menjadi AZ Tunggal.
+ Transfer parameter secara manual setiap kali Anda mengubahnya di pengguna utama.

Untuk melihat dan menentukan parameter CDC yang digunakan untuk membuat ulang pekerjaan CDC setelah failover, gunakan `rds_show_configuration` dan `rds_set_configuration`.

Contoh berikut menampilkan nilai yang diatur ke `cdc_capture_maxtrans`. Untuk parameter yang diatur ke `RDS_DEFAULT`, RDS akan otomatis mengonfigurasi nilai tersebut.

```
-- Show configuration for each parameter on either primary and secondary replicas. 
exec rdsadmin.dbo.rds_show_configuration 'cdc_capture_maxtrans';
```

Untuk mengatur konfigurasi pada di server sekunder, jalankan `rdsadmin.dbo.rds_set_configuration`. Prosedur ini mengatur nilai parameter untuk semua basis data di server sekunder. Pengaturan ini hanya digunakan setelah failover. Contoh berikut menetapkan `maxtrans` untuk semua pekerjaan penangkapan CDC ke*1000*:

```
--To set values on secondary. These are used after failover.
exec rdsadmin.dbo.rds_set_configuration 'cdc_capture_maxtrans', 1000;
```

Untuk mengatur parameter pekerjaan CDC di pengguna utama, gunakan [sys.sp\$1cdc\$1change\$1job](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sys-sp-cdc-change-job-transact-sql).

# Menggunakan Agen SQL Server untuk Amazon RDS
<a name="Appendix.SQLServer.CommonDBATasks.Agent"></a>

Dengan Amazon RDS, Anda dapat menggunakan SQL Server Agent di instans DB yang menjalankan Microsoft SQL Server Enterprise Edition, Standard Edition, atau Web Edition. SQL Server Agent adalah layanan Microsoft Windows yang menjalankan tugas administratif terjadwal, yang disebut pekerjaan. Anda dapat menggunakan SQL Server Agent untuk menjalankan pekerjaan T-SQL untuk membangun ulang indeks, menjalankan pemeriksaan kerusakan, dan mengumpulkan data agregat dalam instans DB SQL Server.

Saat Anda membuat instans DB SQL Server, pengguna utama didaftarkan dalam peran `SQLAgentUserRole`.

SQL Server Agent dapat menjalankan pekerjaan sesuai jadwal, sebagai respons terhadap peristiwa tertentu, atau sesuai permintaan. Untuk informasi selengkapnya, lihat [SQL Server Agent](http://msdn.microsoft.com/en-us/library/ms189237) dalam dokumentasi Microsoft.

**catatan**  
Hindari menjadwalkan pekerjaan untuk dijalankan selama masa pemeliharaan dan pencadangan instans DB. Proses pemeliharaan dan pencadangan yang diluncurkan oleh AWS dapat mengganggu pekerjaan atau menyebabkannya dibatalkan.  
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](#SQLServerAgent.Replicate).  
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 lalu kirimkan formulir.

Untuk melihat riwayat pekerjaan SQL Server Agent individu di SQL Server Management Studio (SSMS), buka Object Explorer, klik kanan pekerjaan, lalu pilih **Lihat Riwayat**.

Karena SQL Server Agent berjalan di host terkelola di instans DB, ada beberapa tindakan yang tidak didukung:
+ Menjalankan pekerjaan replikasi dan menjalankan skrip baris perintah dengan menggunakan ActiveX, shell perintah Windows, atau Windows tidak didukung. PowerShell 
+ Anda tidak dapat memulai, menghentikan, atau memulai ulang SQL Server Agent secara manual.
+ Pemberitahuan email melalui SQL Server Agent tidak tersedia dari instans DB.
+ Peringatan dan operator SQL Server Agent tidak didukung.
+ Menggunakan SQL Server Agent untuk membuat cadangan tidak didukung. Gunakan Amazon RDS untuk mencadangkan instans DB.
+ Saat ini, RDS untuk SQL Server tidak mendukung penggunaan token SQL Server Agent.

## Mengaktifkan replikasi pekerjaan SQL Server Agent
<a name="SQLServerAgent.Replicate"></a>

Anda dapat mengaktifkan replikasi pekerjaan SQL Server Agent menggunakan prosedur tersimpan berikut:

```
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob';
```

Anda dapat menjalankan prosedur tersimpan di semua versi SQL Server yang didukung oleh Amazon RDS for SQL Server. Pekerjaan dalam kategori berikut direplikasi:
+ [Tidak Dikategorikan (Lokal)]
+ [Tidak Dikategorikan (Multi-Server)]
+ [Tidak Dikategorikan]
+ Data Collector
+ Database Engine Tuning Advisor
+ Database Maintenance
+ Full-Text

Hanya pekerjaan yang menggunakan langkah pekerjaan T-SQL yang akan direplikasi. Pekerjaan dengan tipe langkah seperti SQL Server Integration Services (SSIS), SQL Server Reporting Services (SSRS), Replikasi, dan tidak direplikasi. PowerShell Pekerjaan yang menggunakan Database Mail dan objek tingkat server tidak direplikasi.

**penting**  
Host utama adalah sumber kebenaran untuk replikasi. Sebelum mengaktifkan replikasi pekerjaan, pastikan bahwa pekerjaan Agen SQL Server Anda berada di urutan pertama. Jika ini tidak dilakukan, pekerjaan Agen SQL Server Anda akan dihapus jika Anda mengaktifkan fitur saat pekerjaan yang lebih baru berada di host sekunder.

Anda dapat menggunakan fungsi berikut untuk mengonfirmasi apakah replikasi telah diaktifkan atau belum.

```
SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();
```

 Kueri T-SQL akan menampilkan hal berikut ini jika pekerjaan SQL Server Agent sedang mereplikasi. Jika pekerjaan SQL Server Agent sedang tidak mereplikasi, kueri T-SQL tidak akan menampilkan apa pun untuk `object_class`.

![\[Pekerjaan SQL Server Agent sedang mereplikasi\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/SQLAgentJob.png)


Anda dapat menggunakan fungsi berikut untuk mengetahui kapan terakhir kali objek disinkronkan dalam waktu UTC.

```
SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();
```

Misalnya, Anda memodifikasi pekerjaan SQL Server Agent pada 01:00. Anda mengharapkan waktu sinkronisasi terbaru setelah 01:00, yang menunjukkan bahwa sinkronisasi telah terjadi.

Setelah sinkronisasi, nilai yang ditampilkan untuk `date_created` dan `date_modified` pada simpul sekunder diperkirakan akan cocok.

![\[Objek server terakhir kali disinkronkan adalah 01:21:23\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/SQLAgentJob_last_sync_time.png)


Jika Anda juga menggunakan `tempdb` replikasi, Anda dapat mengaktifkan replikasi untuk pekerjaan Agen SQL dan `tempdb` konfigurasi dengan menyediakannya dalam parameter: `@object_type`

```
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob,TempDbFile';
```

Untuk informasi lebih lanjut tentang `tempdb` replikasi, lihat[Konfigurasi TempDB untuk penerapan Multi-AZ](SQLServer.TempDB.MAZ.md).

# Peran Agen SQL Server
<a name="SQLServerAgent.AgentRoles"></a>

RDS untuk SQL Server mendukung peran Agen SQL Server berikut dengan berbagai tingkat izin untuk mengelola pekerjaan:
+ **SQLAgentUserRole**

  Izin
  + Membuat dan mengelola pekerjaan, jadwal, dan operator mereka sendiri
  + Lihat properti pekerjaan dan jadwal mereka sendiri
  + Tidak dapat melihat atau mengelola pekerjaan yang dibuat oleh pengguna lain

  Peran ini cocok untuk pengguna yang perlu membuat dan mengelola pekerjaan mereka sendiri tetapi tidak memerlukan akses ke pekerjaan yang dibuat oleh pengguna lain.
+ **SQLAgentReaderRole**

  Izin
  + Semua izin dari SQLAgent UserRole
  + Lihat daftar semua pekerjaan dan jadwal, termasuk yang dibuat oleh orang lain
  + Lihat properti dari semua pekerjaan
  + Tinjau riwayat pekerjaan

  Peran ini cocok untuk pengguna yang perlu memantau status semua pekerjaan tetapi tidak perlu mengelolanya.
+ **SQLAgentOperatorRole**

  Izin
  + Semua izin dari dan SQLAgent UserRole SQLAgent ReaderRole
  + Jalankan, hentikan, atau mulai pekerjaan
  + Kelola riwayat pekerjaan
  + Aktifkan/nonaktifkan pekerjaan dan jadwal
  + Lihat operator dan proxy

  Peran ini memberikan izin paling komprehensif dan cocok untuk pengguna yang perlu memiliki kontrol penuh atas semua pekerjaan.

Gunakan perintah berikut untuk menetapkan peran ke login SQL Server Anda:

```
USE msdb;
EXEC sp_addrolemember 'SQLAgentOperatorRole', 'username';
```

## Mengelola SQLAgent OperatorRole di RDS untuk SQL Server
<a name="SQLServerAgent.AgentRoles.ManageSQLAgentOperatorRole"></a>

Untuk melihat pekerjaan saat ini, Anda harus menambahkan SQLAgent OperatorRole ke login SQL Server Anda dan menghapusnya sebelum memutuskan sambungan dari database Anda.

Untuk memvisualisasikan pohon Agen SQL Server di SQL Server Management Studio, ikuti petunjuk berikut:

**Lihat Agen SQL Server di SQL Server Management Studio (SSMS)**

1. Menggunakan kredensil master RDS, masuk ke instance RDS SQL Server dan berikan pengguna yang diinginkan. SQLAgent UserRole

   ```
   USE msdb
   GO
   IF NOT EXISTS(SELECT name FROM sys.database_principals WHERE name = 'UserName')
   BEGIN
   CREATE USER UserName FROM LOGIN UserName
   END
   GO
   ALTER ROLE SQLAgentUserRole ADD MEMBER UserName
   GO
   GRANT ALTER ON ROLE::[SQLAgentOperatorRole] to UserName
   GO
   ```

   Perintah ini membuat pengguna di `msdb` database, jika tidak ada. Ini juga menambahkan pengguna pada SQLAgentUserRole, sehingga pohon Agen SQL Server pada SSMS dapat dilihat. Akhirnya, ia memberikan izin mengubah SQLAgent OperatorRole ke pengguna. Ini memungkinkan pengguna untuk add/remove dirinya sendiri dari peran itu. 

1. Untuk menambahkan diri Anda ke peran yang disebutkan di atas, sambungkan ke instance RDS SQL Server, dengan pengguna yang perlu melihat pekerjaan, dan jalankan skrip berikut.

   ```
   use msdb
   go
   ALTER ROLE SQLAgentOperatorRole ADD MEMBER UserName
   GO
   ```

   Setelah ini, klik kanan pada folder **Jobs**, dan pilih **Refresh**.

1. Saat Anda melakukan tindakan ini, tab **Jobs** menampilkan tombol **\$1** (plus). Klik untuk memperluas daftar SQL Server Agent Jobs.

1. 
**penting**  
Sebelum Anda memutuskan sambungan dari instance RDS SQL Server, Anda perlu menghapus diri Anda dari. SQLAgent OperatorRole

   Untuk menghapus login Anda dari SQLAgentOperatorRole, jalankan kueri berikut sebelum memutuskan atau menutup Management Studio:

   ```
   USE msdb
   GO
   ALTER ROLE SQLAgentOperatorRole DROP MEMBER UserName
   GO
   ```

Untuk informasi selengkapnya, lihat [Memanfaatkan SQLAgent OperatorRole di RDS SQL Server](https://aws.amazon.com/blogs/database/leveraging-sqlagentoperatorrole-in-rds-sql-server/).

# Menambahkan pengguna ke SQLAgentUser peran
<a name="SQLServerAgent.AddUser"></a>

Untuk mengizinkan login tambahan atau pengguna menggunakan Agen SQL Server, masuk sebagai pengguna utama dan lakukan hal berikut:

1. Buat login level server lainnya menggunakan perintah `CREATE LOGIN`.

1. Buat pengguna di `msdb` menggunakan perintah `CREATE USER`, lalu tautkan pengguna ini ke login yang telah Anda buat di langkah sebelumnya.

1. Tambahkan pengguna ke `SQLAgentUserRole` menggunakan prosedur `sp_addrolemember` yang disimpan sistem.

Misalnya, misalkan nama pengguna master Anda **admin** dan Anda ingin memberikan akses ke Agen SQL Server ke pengguna bernama **theirname** dengan kata sandi**theirpassword**. Dalam kasus ini, Anda dapat menggunakan prosedur berikut.

**Untuk menambahkan pengguna ke SQLAgentUser peran**

1. Masuk sebagai pengguna utama.

1. Jalankan perintah berikut:

   ```
   --Initially set context to master database
   USE [master];
   GO
   --Create a server-level login named theirname with password theirpassword
   CREATE LOGIN [theirname] WITH PASSWORD = 'theirpassword';
   GO
   --Set context to msdb database
   USE [msdb];
   GO
   --Create a database user named theirname and link it to server-level login theirname
   CREATE USER [theirname] FOR LOGIN [theirname];
   GO
   --Added database user theirname in msdb to SQLAgentUserRole in msdb
   EXEC sp_addrolemember [SQLAgentUserRole], [theirname];
   ```

# Menghapus pekerjaan SQL Server Agent
<a name="SQLServerAgent.DeleteJob"></a>

Anda menggunakan prosedur tersimpan `sp_delete_job` untuk menghapus pekerjaan SQL Server Agent di Amazon RDS for Microsoft SQL Server.

Anda tidak dapat menggunakan SSMS untuk menghapus pekerjaan SQL Server Agent. Jika mencoba melakukannya, Anda akan mendapatkan pesan kesalahan yang serupa dengan pesan berikut ini:

```
The EXECUTE permission was denied on the object 'xp_regread', database 'mssqlsystemresource', schema 'sys'.
```

Sebagai layanan terkelola, RDS dibatasi untuk tidak menjalankan prosedur yang mengakses registri Windows. Ketika Anda menggunakan SSMS untuk menghapus pekerjaan, SSMS akan mencoba menjalankan proses (`xp_regread`) yang tidak diotorisasi RDS.

**catatan**  
Di RDS for SQL Server, hanya anggota peran sysadmin yang diizinkan untuk memperbarui atau menghapus pekerjaan yang dimiliki oleh login lain. Untuk informasi selengkapnya, lihat [Memanfaatkan SQLAgent OperatorRole di RDS SQL Server](https://aws.amazon.com/blogs/database/leveraging-sqlagentoperatorrole-in-rds-sql-server/).

**Untuk menghapus pekerjaan SQL Server Agent**
+ Jalankan pernyataan T-SQL berikut:

  ```
  EXEC msdb..sp_delete_job @job_name = 'job_name';
  ```

# Bekerja dengan Amazon RDS untuk log Microsoft SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.Logs"></a>

Anda dapat menggunakan konsol Amazon RDS untuk melihat, menonton, dan mengunduh log SQL Server Agent, log kesalahan Microsoft SQL Server, dan log SQL Server Reporting Services (SSRS).

## Menonton file log
<a name="Appendix.SQLServer.CommonDBATasks.Logs.Watch"></a>

Jika melihat log di konsol Amazon RDS, Anda dapat melihatnya kontennya sebagaimana adanya pada saat itu. Menonton log di konsol terbuka dalam keadaan dinamis sehingga Anda dapat melihat pembaruannya dalam waktu yang mendekati waktu nyata.

Hanya log terbaru yang aktif untuk ditonton. Misalnya, anggap Anda memiliki log berikut yang ditampilkan:

![\[Gambar bagian Log dari konsol Amazon RDS dengan log kesalahan dipilih.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/logs_sqlserver.png)


Hanya log/KESALAHAN, sebagai log terbaru, yang secara aktif diperbarui. Anda dapat memilih untuk menonton log lain, tetapi log lain bersifat statis dan tidak akan diperbarui.

## Mengarsipkan file log
<a name="Appendix.SQLServer.CommonDBATasks.Logs.Archive"></a>

Konsol Amazon RDS menunjukkan log selama seminggu terakhir hingga hari ini. Anda dapat mengunduh dan mengarsipkan log untuk menyimpannya sebagai referensi selama waktu tersebut. Satu cara untuk mengarsipkan log adalah dengan memuatnya ke dalam bucket Amazon S3. Untuk petunjuk cara menyiapkan bucket Amazon S3 dan mengunggah file, lihat [dasar-dasar Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/AmazonS3Basics.html) dalam *Panduan Memulai Layanan Penyimpanan Sederhana Amazon* lalu klik **Mulai**. 

## Melihat log kesalahan dan agen
<a name="Appendix.SQLServer.CommonDBATasks.Logs.SP"></a>

Untuk melihat log kesalahan dan agen Microsoft SQL Server, gunakan prosedur `rds_read_error_log` yang disimpan oleh Amazon RDS dengan parameter berikut ini: 
+ **`@index`** – versi log yang akan diambil. Nilai default-nya adalah 0, yang mengambil log kesalahan saat ini. Tentukan 1 untuk mengambil log sebelumnya, tentukan 2 untuk mengambil log sebelum itu, dan selanjutnya. 
+ **`@type`** – jenis log yang akan diambil. Tentukan 1 untuk mengambil log kesalahan. Tentukan 2 untuk mengambil log agen. 

**Example**  
Contoh berikut meminta log kesalahan saat ini.  

```
EXEC rdsadmin.dbo.rds_read_error_log @index = 0, @type = 1;
```

Untuk informasi kesalahan SQL Server selengkapnya, lihat [Database engine errors](https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/database-engine-events-and-errors) dalam dokumentasi Microsoft.

# Bekerja dengan file trace dan dump untuk Amazon RDS for SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.TraceFiles"></a>

Bagian ini menjelaskan cara bekerja dengan file pelacakan dan file dump untuk instans DB Amazon RDS Anda yang menjalankan Microsoft SQL Server. 

## Membuat kueri SQL pelacakan
<a name="Appendix.SQLServer.CommonDBATasks.TraceFiles.TraceSQLQuery"></a>

```
1. declare @rc int 
2. declare @TraceID int 
3. declare @maxfilesize bigint 
4. 
5. set @maxfilesize = 5
6. 
7. exec @rc = sp_trace_create @TraceID output,  0, N'D:\rdsdbdata\log\rdstest', @maxfilesize, NULL
```

## Melihat pelacakan terbuka
<a name="Appendix.SQLServer.CommonDBATasks.TraceFiles.ViewOpenTrace"></a>

```
1. select * from ::fn_trace_getinfo(default)
```

## Melihat konten pelacakan
<a name="Appendix.SQLServer.CommonDBATasks.TraceFiles.ViewTraceContents"></a>

```
1. select * from ::fn_trace_gettable('D:\rdsdbdata\log\rdstest.trc', default)
```

## Mengatur periode retensi untuk file pelacakan dan dump
<a name="Appendix.SQLServer.CommonDBATasks.TraceFiles.PurgeTraceFiles"></a>

File pelacakan dan dump dapat terakumulasi dan menghabiskan ruang disk. Secara default, Amazon RDS akan menghapus file pelacakan dan dump yang telah melebihi tujuh hari. 

Untuk melihat periode retensi file pelacakan dan dump saat ini, gunakan prosedur `rds_show_configuration`, sebagaimana ditunjukkan dalam contoh berikut. 

```
1. exec rdsadmin..rds_show_configuration;
```

Untuk mengubah periode retensi file pelacakan, gunakan prosedur `rds_set_configuration` dan atur `tracefile retention` dalam menit. Contoh berikut akan mengatur periode retensi file pelacakan menjadi 24 jam. 

```
1. exec rdsadmin..rds_set_configuration 'tracefile retention', 1440; 
```

Untuk mengubah periode retensi file dump, gunakan prosedur `rds_set_configuration` dan atur `dumpfile retention` dalam menit. Contoh berikut mengatur periode retensi file dump menjadi 3 hari. 

```
1. exec rdsadmin..rds_set_configuration 'dumpfile retention', 4320; 
```

Untuk alasan keamanan, Anda tidak dapat menghapus file pelacakan atau dump tertentu di instans DB SQL Server. Untuk menghapus semua file pelacakan atau dump yang tidak digunakan, atur periode retensi file ke 0. 