

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

# 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. 