Membuat sesi peristiwa dengan target event_file di Azure Storage
Berlaku untuk: Azure SQL Database Azure SQL Managed Instance
Langkah-langkah tingkat tinggi dalam panduan ini adalah:
- Membuat akun Azure Storage, atau menemukan akun yang sesuai untuk digunakan
- Buat kontainer di akun penyimpanan ini
- Buat token SAS dengan akses yang diperlukan untuk kontainer ini
- Membuat kredensial untuk menyimpan token SAS di database atau instans terkelola tempat Anda membuat sesi peristiwa
- Membuat, memulai, dan menggunakan sesi peristiwa
Membuat kontainer dan akun Azure Storage
Untuk deskripsi terperinci tentang cara membuat akun penyimpanan di Azure Storage, lihat Membuat akun penyimpanan. Anda mempelajari cara membuat akun penyimpanan menggunakan portal Azure, PowerShell, Azure SQL, templat ARM, atau templat Bicep.
Kami menyarankan Anda menggunakan akun yang:
Standard general-purpose v2
Adalah akun.- Memiliki jenis redundansi yang cocok dengan redundansi database Azure SQL, kumpulan elastis, atau instans terkelola tempat sesi peristiwa dibuat.
- Untuk sumber daya Azure SQL yang berlebihan secara lokal, gunakan LRS, GRS, atau RA-GRS. Untuk sumber daya Azure SQL zona-redundan , gunakan ZRS, GZRS, atau RA-GZRS. Untuk informasi lebih lanjut, lihat Redundansi Azure Storage.
Hot
Menggunakan tingkat akses blob.- Berada di wilayah Azure yang sama dengan database Azure SQL, kumpulan elastis, atau instans terkelola.
Selanjutnya, buat kontainer di akun penyimpanan ini menggunakan portal Azure. Anda juga dapat membuat kontainer menggunakan PowerShell, atau menggunakan Azure CLI.
Perhatikan nama akun penyimpanan dan kontainer yang Anda gunakan.
Membuat token SAS
Mesin Database yang menjalankan sesi peristiwa memerlukan akses khusus ke kontainer penyimpanan. Anda memberikan akses ini dengan membuat token SAS untuk kontainer. Token ini harus memenuhi persyaratan berikut:
rwl
Memiliki izin (Read
,Write
, )List
- Memiliki waktu mulai dan waktu kedaluwarsa yang mencakup masa pakai sesi peristiwa
- Tidak memiliki batasan alamat IP
Di portal Azure, temukan akun penyimpanan dan kontainer yang Anda buat. Pilih kontainer, dan navigasi ke Pengaturan > Token akses bersama. Atur Izin ke Read
, Write
, List
, dan atur tanggal dan waktu Mulai dan Kedaluwarsa . Token SAS yang Anda buat hanya berfungsi dalam interval waktu ini.
Pilih tombol Buat token SAS dan URL. Token SAS ada di kotak token SAS Blob. Anda dapat menyalinnya untuk digunakan di langkah berikutnya.
Penting
Token SAS menyediakan akses baca dan tulis ke kontainer ini. Perlakukan seperti yang Akan Anda perlakukan kata sandi atau rahasia lainnya.
Membuat kredensial untuk menyimpan token SAS
Di Azure SQL Database, Anda menggunakan kredensial cakupan database untuk menyimpan token SAS. Di Azure SQL Managed Instance, Anda menggunakan kredensial cakupan server.
Simpan token SAS dalam kredensial cakupan database. Menggunakan alat klien seperti SQL Server Management Studio atau ADS, buka jendela kueri baru, sambungkan ke database tempat Anda membuat sesi peristiwa, dan tempelkan batch T-SQL berikut. Pastikan Anda tersambung ke database pengguna Anda, dan bukan ke master
database.
Catatan
Menjalankan batch T-SQL berikut memerlukan CONTROL
izin database, yang dipegang oleh pemilik database (dbo
), oleh anggota db_owner
peran database, dan oleh administrator server logis.
/*
Create a master key to protect the secret of the credential
*/
IF NOT EXISTS (
SELECT 1
FROM sys.symmetric_keys
WHERE name = '##MS_DatabaseMasterKey##'
)
CREATE MASTER KEY;
/*
(Re-)create a database scoped credential.
The name of the credential must match the URL of the blob container.
*/
IF EXISTS (
SELECT 1
FROM sys.database_credentials
WHERE name = 'https://exampleaccount4xe.blob.core.windows.net/xe-example-container'
)
DROP DATABASE SCOPED CREDENTIAL [https://exampleaccount4xe.blob.core.windows.net/xe-example-container];
/*
The secret is the SAS token for the container. The Read, Write, and List permissions are set.
*/
CREATE DATABASE SCOPED CREDENTIAL [https://exampleaccount4xe.blob.core.windows.net/xe-example-container]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sp=rwl&st=2023-10-17T23:28:32Z&se=2023-10-18T07:28:32Z&spr=https&sv=2022-11-02&sr=c&sig=REDACTED';
Sebelum menjalankan batch ini, buat perubahan berikut:
- Dalam ketiga kemunculan
https://exampleaccount4xe.blob.core.windows.net/xe-example-container
, gantiexampleaccount4xe
dengan nama akun penyimpanan Anda, dan gantixe-example-container
dengan nama kontainer Anda. - Ganti seluruh string di antara tanda kutip tunggal dalam
SECRET
klausul dengan token SAS yang Anda salin di langkah sebelumnya.
Membuat, memulai, dan menghentikan sesi Peristiwa
Setelah kredensial dengan token SAS dibuat, Anda dapat membuat sesi peristiwa. Membuat sesi peristiwa tidak memerlukan CONTROL
izin. Jika kredensial dengan token SAS yang benar sudah ada, Anda dapat membuat sesi peristiwa meskipun Anda memiliki sekumpulan izin yang lebih terbatas. Lihat izin untuk izin tertentu yang diperlukan.
Untuk membuat sesi peristiwa baru di SSMS, perluas node Extended Events . Simpul ini berada di bawah folder database di Azure SQL Database, dan di bawah folder Manajemen di Azure SQL Managed Instance. Klik kanan pada folder Sesi , dan pilih Sesi Baru.... Pada halaman Umum , masukkan nama untuk sesi, yang ada example-session
dalam contoh ini. Pada halaman Peristiwa , pilih satu atau beberapa peristiwa untuk ditambahkan ke sesi. Dalam contoh ini, kami memilih sql_batch_starting
peristiwa.
Pada halaman Penyimpanan Data, pilih event_file
sebagai jenis target, dan tempelkan URL kontainer penyimpanan di kotak URL Penyimpanan. Ketik garis miring (/
) di akhir URL ini, diikuti dengan nama file (blob). Dalam contoh kami, nama blob adalah example-session.xel
, dan seluruh URL adalah https://exampleaccount4xe.blob.core.windows.net/xe-example-container/example-session.xel
.
Catatan
Untuk SQL Managed Instance, alih-alih menempelkan URL kontainer penyimpanan di halaman Penyimpanan data , gunakan tombol Skrip untuk membuat skrip T-SQL sesi. Tentukan URL kontainer sebagai nilai untuk filename
argumen, mirip dengan contoh SQL Managed Instance di bawah ini, dan jalankan skrip untuk membuat sesi.
Sekarang setelah sesi dikonfigurasi, Anda dapat memilih tombol Skrip untuk membuat skrip T-SQL sesi, untuk menyimpannya untuk nanti. Berikut adalah skrip untuk sesi contoh kami:
CREATE EVENT SESSION [example-session] ON DATABASE
ADD EVENT sqlserver.sql_batch_starting
ADD TARGET package0.event_file(SET filename=N'https://exampleaccount4xe.blob.core.windows.net/xe-example-container/example-session.xel')
GO
Pilih OK untuk membuat sesi.
Di Object Explorer, perluas folder Sesi untuk melihat sesi peristiwa yang Anda buat. Secara default, sesi tidak dimulai saat dibuat. Untuk memulai sesi, klik kanan pada nama sesi, dan pilih Mulai Sesi. Anda nantinya dapat menghentikannya dengan memilih Hentikan Sesi secara serupa, setelah sesi berjalan.
Karena batch T-SQL dijalankan dalam database ini atau instans terkelola, sesi menulis peristiwa ke example-session.xel
blob dalam xe-example-container
kontainer penyimpanan.
Untuk menghentikan sesi, klik kanan di Object Explorer, dan pilih Hentikan Sesi.
Menampilkan data peristiwa
Anda dapat melihat data peristiwa di antarmuka pengguna penampil peristiwa SQL Server Management Studio (SSMS), tempat Anda dapat menggunakan filter dan agregasi untuk menganalisis data yang Anda ambil. Untuk informasi selengkapnya tentang menggunakan penampil peristiwa di SSMS, lihat Menampilkan data peristiwa di SSMS.
Mengunduh file xel dari penyimpanan Azure
Tip
Jika Anda menggunakan SSMS v19.2 atau yang lebih baru, Anda tidak perlu mengunduh xel
file seperti yang dijelaskan di bagian ini. Dalam versi ini, SSMS membaca xel
file untuk setiap sesi langsung dari penyimpanan Azure. Untuk informasi selengkapnya, lihat blog Meningkatkan Acara yang Diperluas di Azure SQL .
xel
Unduh blob untuk sesi dari kontainer penyimpanan dan simpan sebagai file lokal. Di portal Azure, temukan akun penyimpanan yang Anda gunakan, pilih Kontainer di bawah Penyimpanan data, dan pilih kontainer yang Anda buat untuk sesi peristiwa Anda. Blob untuk sesi memiliki nama sesi sebagai bagian pertama dari namanya, dengan akhiran numerik. Pilih elipsis (...) untuk menampilkan menu konteks untuk blob, dan pilih Unduh.
Anda dapat menginstal Azure Storage Explorer untuk mengunduh beberapa xel
blob dalam satu operasi.
xel
Setelah file diunduh, buka di SSMS. Pada menu utama SSMS, buka File dan pilih Buka. Jika Anda memiliki satu xel
file, pilih File... dan telusuri ke file yang Anda unduh. Jika Anda memiliki beberapa xel
file yang dihasilkan oleh sesi peristiwa yang sama (dikenal sebagai file rollover), Anda dapat menggunakan dialog Gabungkan File Peristiwa yang Diperluas... untuk membuka semuanya di penampil peristiwa.
Menampilkan data peristiwa menggunakan T-SQL
Untuk membaca data sesi peristiwa menggunakan T-SQL, gunakan fungsi sys.fn_xe_file_target_read_file(). Untuk menggunakan fungsi ini dalam database atau instans terkelola yang berbeda dari fungsi tempat sesi peristiwa dibuat, buat kredensial untuk memberi Mesin Database akses ke kontainer penyimpanan dengan blob peristiwa.
Untuk panduan yang lebih rinci, lihat Membuat sesi acara di SSMS.