Azure Depolama'da event_file hedefiyle olay oturumu oluşturma
Şunlar için geçerlidir:Azure SQL Veritabanı Azure SQL Yönetilen Örneği
Bu kılavuzdaki üst düzey adımlar şunlardır:
- Azure Depolama hesabı oluşturma veya kullanılacak mevcut uygun hesabı bulma
- Bu depolama hesabında kapsayıcı oluştur
- Bu kapsayıcı için gerekli erişime sahip bir SAS belirteci oluşturun
- SAS belirtecini olay oturumunu oluşturduğunuz veritabanında veya yönetilen örnekte depolamak için bir kimlik bilgisi oluşturma
- Olay oturumu oluşturma, başlatma ve kullanma
Depolama hesabı ve kapsayıcı oluşturma
Azure Depolama'da depolama hesabı oluşturma hakkında ayrıntılı bir açıklama için bkz. Depolama hesabı oluşturma. Azure portalı, PowerShell, Azure SQL, ARM şablonu veya Bicep şablonu kullanarak depolama hesabı oluşturmayı öğrenirsiniz.
Aşağıdakiler için bir hesap kullanmanızı öneririz:
- Bir
Standard general-purpose v2
hesaptır. - Olay oturumlarının oluşturulduğu Azure SQL veritabanının, elastik havuzun veya yönetilen örneğin yedekliliğiyle eşleşen yedeklilik türüne sahiptir.
- Yerel olarak yedekli Azure SQL kaynakları için LRS, GRS veya RA-GRS kullanın. Alanlar arası yedekli Azure SQL kaynakları için ZRS, GZRS veya RA-GZRS kullanın. Daha fazla bilgi için bkz. Azure Depolama yedekliliği.
- Blob erişim katmanını
Hot
kullanır. - Azure SQL veritabanı, elastik havuz veya yönetilen örnekle aynı Azure bölgesindedir.
Ardından Azure portalını kullanarak bu depolama hesabında bir kapsayıcı oluşturun. PowerShell veya Azure CLI kullanarak da kapsayıcı oluşturabilirsiniz.
Kullandığınız depolama hesabının ve kapsayıcının adlarını not edin.
SAS belirteci oluşturma
Olay oturumunu çalıştıran Veritabanı Altyapısı'nın depolama kapsayıcısına belirli bir erişime ihtiyacı vardır. Kapsayıcı için bir SAS belirteci oluşturarak bu erişimi verirsiniz. Bu belirteç aşağıdaki gereksinimleri karşılamalıdır:
rwl
(Read
,Write
,List
) izinlerine sahip olmak- Olay oturumunun ömrünü kapsayan başlangıç saati ve süre sonu süresine sahip olmak
- IP adresi kısıtlaması yok
Azure portalında, oluşturduğunuz depolama hesabını ve kapsayıcıyı bulun. Kapsayıcıyı seçin ve paylaşılan erişim belirteçlerini Ayarlar > gidin. İzinleri , , ve olarak ayarlayın ve Başlangıç ve Süre Sonu tarih ve saatini ayarlayın. List
Write
Read
Oluşturduğunuz SAS belirteci yalnızca bu zaman aralığı içinde çalışır.
SAS belirteci ve URL oluştur düğmesini seçin. SAS belirteci Blob SAS belirteci kutusundadır. Sonraki adımda kullanmak üzere kopyalayabilirsiniz.
Önemli
SAS belirteci bu kapsayıcıya okuma ve yazma erişimi sağlar. Parolayı veya başka bir gizli diziyi ele alır gibi davranın.
SAS belirtecini depolamak için kimlik bilgisi oluşturma
Azure SQL Veritabanı,SAS belirtecini depolamak için veritabanı kapsamlı bir kimlik bilgisi kullanırsınız. Azure SQL Yönetilen Örneği'de sunucu kapsamlı bir kimlik bilgisi kullanırsınız.
SAS belirtecini veritabanı kapsamlı bir kimlik bilgileri içinde depolayın. SSMS veya ADS gibi bir istemci aracı kullanarak yeni bir sorgu penceresi açın, olay oturumunu oluşturduğunuz veritabanına bağlanın ve aşağıdaki T-SQL toplu işlemini yapıştırın. Veritabanına değil, kullanıcı veritabanınıza bağlı olduğunuzdan master
emin olun.
Dekont
Aşağıdaki T-SQL toplu işleminin yürütülmesi için veritabanı sahibi (dbo
) tarafından, veritabanı rolünün üyeleri ve mantıksal sunucunun db_owner
yöneticisi tarafından tutulan veritabanı izni gerekirCONTROL
.
/*
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';
Bu toplu işlemi yürütmeden önce aşağıdaki değişiklikleri yapın:
- öğesinin
https://exampleaccount4xe.blob.core.windows.net/xe-example-container
üç örneğinde de değeriniexampleaccount4xe
depolama hesabınızın adıyla, değerini de kapsayıcınızın adıyla değiştirinxe-example-container
. - Yan tümcesindeki tek tırnak işaretleri arasındaki dizenin
SECRET
tamamını önceki adımda kopyaladığınız SAS belirteci ile değiştirin.
Olay oturumu oluşturma, başlatma ve durdurma
SAS belirteciyle kimlik bilgileri oluşturulduktan sonra olay oturumunu oluşturabilirsiniz. Olay oturumu oluşturmak için izin gerekmez CONTROL
. Doğru SAS belirtecini içeren kimlik bilgileri zaten varsa, daha kısıtlı bir izin kümeniz olsa bile olay oturumları oluşturabilirsiniz. Bkz. gereken belirli izinler için izinler.
SSMS'de yeni bir olay oturumu oluşturmak için Genişletilmiş Olaylar düğümünü genişletin. Bu düğüm, Azure SQL Veritabanı'daki veritabanı klasörünün altında ve Azure SQL Yönetilen Örneği'daki Yönetim klasörünün altındadır. Oturumlar klasörüne sağ tıklayın ve Yeni Oturum... öğesini seçin. Genel sayfasında, oturum için bu örnekteki example-session
adı girin. Olaylar sayfasında oturuma eklenecek bir veya daha fazla olayı seçin. Bu örnekte olayı seçtik sql_batch_starting
.
Veri Depolama sayfasında hedef tür olarak seçin event_file
ve depolama kapsayıcısının URL'sini Depolama URL kutusuna yapıştırın. Bu URL'nin sonuna bir eğik çizgi (/
) ve ardından dosya (blob) adı yazın. Örneğimizde blob adı şeklindedir example-session.xel
ve URL'nin tamamı şeklindedir https://exampleaccount4xe.blob.core.windows.net/xe-example-container/example-session.xel
.
Dekont
SQL Yönetilen Örneği için, depolama kapsayıcısı URL'sini Veri depolama sayfasına yapıştırmak yerine Betik düğmesini kullanarak oturumun T-SQL betiğini oluşturun. Aşağıdaki SQL Yönetilen Örneği örneğe benzer şekilde bağımsız değişkenin filename
değeri olarak kapsayıcı URL'sini belirtin ve betiği yürüterek oturumu oluşturun.
Oturum yapılandırıldığına göre, betik düğmesini seçerek oturumun T-SQL betiğini oluşturabilir ve daha sonra kaydedebilirsiniz. Örnek oturumumuzun betiği şu şekildedir:
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
Oturumu oluşturmak için Tamam'ı seçin.
oluşturduğunuz olay oturumunu görmek için Nesne Gezgini Oturumlar klasörünü genişletin. Varsayılan olarak, oturum oluşturulduğunda başlatılmaz. Oturumu başlatmak için oturum adına sağ tıklayın ve Oturumu Başlat'ı seçin. Daha sonra, oturum çalıştırıldıktan sonra benzer şekilde Oturumu Durdur'u seçerek durdurabilirsiniz.
T-SQL toplu işlemleri bu veritabanında veya yönetilen örnekte yürütüldükçe, oturum olayları depolama kapsayıcısında bloba example-session.xel
xe-example-container
yazar.
Oturumu durdurmak için Nesne Gezgini sağ tıklayın ve Oturumu Durdur'u seçin.
Olay verilerini görüntüleme
Olay verilerini, yakaladığınız verileri analiz etmek için filtreleri ve toplamaları kullanabileceğiniz SQL Server Management Studio (SSMS) olay görüntüleyicisi kullanıcı arabiriminde görüntüleyebilirsiniz. SSMS'de olay görüntüleyicisini kullanma hakkında daha fazla bilgi için bkz . SSMS'de olay verilerini görüntüleme.
Azure depolamadan xel dosyalarını indirme
Bahşiş
SSMS v19.2 veya üzerini kullanıyorsanız, bu bölümde açıklandığı gibi dosyaları indirmeniz xel
gerekmez. Bu sürümlerde SSMS, her oturumun xel
dosyalarını doğrudan Azure depolama alanından okur. Daha fazla bilgi için Bkz . Azure SQL'de Genişletilmiş Olayları Geliştirme blogu.
Oturumun blobunu xel
depolama kapsayıcısından indirin ve yerel dosya olarak kaydedin. Azure portalında kullandığınız depolama hesabını bulun, Veri depolama'nın altında Kapsayıcılar'ı seçin ve olay oturumunuz için oluşturduğunuz kapsayıcıyı seçin. Oturumun blobu, adının ilk bölümü olarak oturum adını ve sayısal son eki içerir. Blob için bağlam menüsünü göstermek için üç noktayı (...) ve ardından İndir'i seçin.
Tek bir işlemde birden çok xel
blob indirmek için Azure Depolama Gezgini yükleyebilirsiniz.
xel
Dosya indirildikten sonra SSMS'de açın. SSMS ana menüsünde Dosya'ya gidin ve Aç'ı seçin. Tek xel
bir dosyanız varsa Dosya... öğesini seçin ve indirdiğiniz dosyaya gidin. Aynı olay oturumu tarafından oluşturulan birden çok xel
dosyanız varsa (geçiş dosyaları olarak bilinir), Tümünü olay görüntüleyicisinde açmak için Genişletilmiş Olay Dosyalarını Birleştir... iletişim kutusunu kullanabilirsiniz.
T-SQL kullanarak olay verilerini görüntüleme
T-SQL kullanarak olay oturumu verilerini okumak için sys.fn_xe_file_target_read_file() işlevini kullanın. Bu işlevi olay oturumunun oluşturulduğu veritabanından farklı bir veritabanında veya yönetilen örnekte kullanmak için Veritabanı Altyapısı'na olay bloblarıyla depolama kapsayıcısına erişim vermek için bir kimlik bilgisi oluşturun.
Daha ayrıntılı bir izlenecek yol için bkz . SSMS'de olay oturumu oluşturma.
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin