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
Peristiwa yang diperpanjang diaktifkan secara otomatis untuk pengguna dengan hak istimewa pengguna utama di Amazon RDS untuk SQL Server.
Topik
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
atauALLOW_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
ke1
. -
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
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);