Menggunakan acara diperpanjang dengan Amazon RDS untuk Microsoft SQL Server - Layanan Basis Data Relasional Amazon

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

Menggunakan acara diperpanjang dengan Amazon RDS untuk Microsoft SQL Server

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 di dokumentasi Microsoft.

Peristiwa yang diperpanjang diaktifkan secara otomatis untuk pengguna dengan hak istimewa pengguna utama di Amazon RDS untuk SQL Server.

Batasan dan rekomendasi

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

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_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 SQL pernyataan berikut untuk melihat pengaturan saat inixe_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

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

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_xe_file_target_read_file (Transact-) dalam dokumentasi 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 dimulaixe.

SELECT * FROM sys.fn_xe_file_target_read_file('d:\rdsdbdata\log\xe*', null,null,null);