Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan peristiwa diperpanjang dengan server Amazon RDS for Microsoft SQL Server
Anda dapat menggunakan peristiwa diperpanjang di Microsoft SQL Server untuk menangkap informasi debugging dan pemecahan masalah untuk Amazon RDS for SQL Server. Peristiwa diperpanjang menggantikan SQL Trace dan Server Profiler, yang tidak digunakan lagi oleh Microsoft. Peristiwa diperpanjang mirip dengan jejak profiler tetapi dengan kontrol yang lebih rinci pada peristiwa yang dilacak. Peristiwa yang diperpanjang didukung untuk SQL Server versi 2016 dan yang lebih baru di Amazon RDS. Untuk informasi selengkapnya, lihat Extended events overview
Peristiwa diperpanjang diaktifkan secara otomatis untuk pengguna dengan hak pengguna master di Amazon RDS for SQL Server.
Topik
Batasan dan rekomendasi
Saat menggunakan peristiwa diperpanjang di RDS untuk 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_LOSSatauALLOW_MULTIPLE_EVENT_LOSS. -
Target Event Tracing for Windows (ETW) tidak didukung.
-
Pastikan bahwa target file berada di direktori
D:\rdsdbdata\log. -
Untuk target pencocokan pasangan, atur properti
respond_to_memory_pressureke1. -
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_completeddidukung 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.
Mengonfigurasi peristiwa diperpanjang di RDS untuk SQL Server
Pada RDS untuk SQL Server, Anda dapat mengonfigurasi nilai-nilai parameter tertentu dari sesi peristiwa diperpanjang. Tabel berikut menjelaskan parameter yang dapat dikonfigurasi ini.
| Nama parameter | Deskripsi | Nilai default RDS | Nilai minimum | Nilai maksimum |
|---|---|---|---|---|
xe_session_max_memory |
Tentukan jumlah maksimum memori untuk dialokasikan untuk sesi untuk buffering peristiwa. Nilai ini sesuai dengan pengaturan max_memory sesi peristiwa. |
4 MB | 4 MB | 8 MB |
xe_session_max_event_size |
Menentukan ukuran memori maksimum yang diperbolehkan untuk peristiwa besar. Nilai ini sesuai dengan pengaturan max_event_size sesi peristiwa. |
4 MB | 4 MB | 8 MB |
xe_session_max_dispatch_latency |
Tentukan jumlah waktu peristiwa di-buffer dalam memori sebelum dikirim ke target sesi peristiwa diperpanjang. Nilai ini sesuai dengan pengaturan max_dispatch_latency sesi peristiwa. |
30 detik | 1 detik | 30 detik |
xe_file_target_size |
Tentukan ukuran maksimum target file. Nilai ini sesuai dengan pengaturan max_file_size target file. |
100 MB | 10 MB | 1 GB |
xe_file_retention |
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 pernyataan SQL berikut untuk melihat pengaturan xe_session_max_memory saat ini.
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 pernyataan SQL 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
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. RDS menghentikan semua sesi peristiwa diperpanjang non-default pada replika siaga, sehingga sesi ini tidak mengonsumsi sumber daya pada replika 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 SQL Server Agent untuk melacak replika siaga dan memulai sesi jika replika siaga menjadi replika utama. Misalnya, gunakan kueri berikut dalam langkah pekerjaan SQL Server Agent untuk memulai ulang sesi peristiwa pada instans DB primer.
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
Anda dapat menggunakan SQL Server Management Studio atau fungsi sys.fn_xe_file_target_read_file untuk melihat data dari peristiwa diperpanjang yang menggunakan target file. Untuk informasi selengkapnya tentang fungsi ini, lihat sys.fn_xe_file_target_read_file (Transact-SQL)
Target file peristiwa diperpanjang hanya dapat menulis file ke direktori D:\rdsdbdata\log pada RDS untuk SQL Server.
Misalnya, gunakan kueri SQL berikut untuk menyusun daftar dari konten semua file sesi peristiwa diperpanjang yang namanya dimulai dengan xe.
SELECT * FROM sys.fn_xe_file_target_read_file('d:\rdsdbdata\log\xe*', null,null,null);