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:
- Bir Azure Depolama hesabı oluşturun veya kullanmak için mevcut uygun hesabı bulun.
- Bu depolama hesabında bir kapsayıcı oluşturun.
- Veritabanı Altyapısı'na RBAC rol ataması veya SAS belirteci kullanarak kapsayıcıya gerekli erişimi verin.
- Olay oturumunu oluşturduğunuz veritabanında veya yönetilen örnekte bir kimlik bilgisi oluşturun.
- 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.
Oluşturduğunuz depolama hesabının ve kapsayıcının adlarını not edin. Bunları aşağıdaki adımlarda kullanacaksınız.
Kapsayıcıya erişim izni verme
Veritabanı Altyapısı, olay verilerini okumak ve yazmak için kapsayıcıya özel erişim gerektirir. Bu erişimi, seçtiğiniz kimlik doğrulama türüne bağlı olarak iki yoldan biriyle vekleyebilirsiniz:
Microsoft Entra kimlik doğrulaması ile yönetilen kimlik kullanıyorsanız kapsayıcı için Depolama Blob Verileri Katkıda Bulunanı RBAC rolünü Azure SQL mantıksal sunucusunun veya Azure SQL yönetilen örneğinin yönetilen kimliğine atarsınız.
Not
Genişletilmiş olay oturumlarıyla yönetilen kimlik kullanımı önizleme aşamasındadır.
Gizli dizi tabanlı kimlik doğrulaması kullanıyorsanız kapsayıcı için bir SAS belirteci oluşturursunuz.
Bu kimlik doğrulama türünü kullanmak için Depolama hesabı anahtarı erişimine izin ver seçeneğinin etkinleştirilmesi gerekir. Daha fazla bilgi için bkz . Azure Depolama hesabı için Paylaşılan Anahtar yetkilendirmesini engelleme.
Yönetilen kimliği kullanarak erişim izni verme
Azure portalında Azure SQL mantıksal sunucunuzun veya Azure SQL yönetilen örneğinizin Kimlik sayfasına gidin ve yönetilen kimliğin atandığından emin olun. Daha fazla bilgi için bkz . Azure SQL için Microsoft Entra'da yönetilen kimlikler.
Azure portalında, olay verilerini depolamak istediğiniz depolama kapsayıcısına gidin. Erişim Denetimi (IAM) sayfasında Ekle'yi seçerek Depolama Blobu Veri Katkıda Bulunanı RBAC rolünü mantıksal sunucunun veya SQL yönetilen örneğinin yönetilen kimliğine atayın.
Mantıksal sunucuda veya SQL yönetilen örneğinde sistem tarafından atanmış yönetilen kimlik etkinleştirildiyse, rolü bu kimliğe atayın. Sistem tarafından atanan kimlik devre dışı bırakıldıysa ancak bir veya daha fazla kullanıcı tarafından atanan kimlik varsa, rolü birincil kimlik olarak atanan kullanıcı tarafından atanan kimliğe atayın.
Daha fazla bilgi için bkz. Blob verilerine erişmek için Azure rolü atama.
Veritabanı Altyapısı'na belirli bir kapsayıcı URL'si için yönetilen kimliği kullanarak Azure Depolama'da kimlik doğrulaması talimatı vermek için bir kimlik bilgisi oluşturun.
Veritabanı kapsamlı bir kimlik bilgisi oluşturun. 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.Not
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 sunucunundb_owner
yöneticisi tarafından tutulan veritabanı izni gerekirCONTROL
./* (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://<storage-account-name>.blob.core.windows.net/<container-name>' ) DROP DATABASE SCOPED CREDENTIAL [https://<storage-account-name>.blob.core.windows.net/<container-name>]; /* When using managed identity, the credential does not contain a secret */ CREATE DATABASE SCOPED CREDENTIAL [https://<storage-account-name>.blob.core.windows.net/<container-name>] WITH IDENTITY = 'MANAGED IDENTITY';
Bu toplu işlemi yürütmeden önce aşağıdaki değişikliği yapın:
- öğesinin
https://<storage-account-name>.blob.core.windows.net/<container-name>
üç örneğinde de değerini<storage-account-name>
depolama hesabınızın adıyla, değerini de kapsayıcınızın adıyla değiştirin<container-name>
.
- öğesinin
SAS belirteci kullanarak erişim verme
Azure portalında, oluşturduğunuz depolama hesabına ve kapsayıcıya gidin. Kapsayıcıyı seçin ve Ayarlar > Paylaşılan erişim belirteçleri'ne gidin.
SAS belirteci aşağıdaki gereksinimleri karşılamalıdır:
- İzinler
Read
, ,Write
,Delete
List
. - Başlangıç saati ve Süre Sonu süresi, olay oturumunun ömrünü içermelidir. Oluşturduğunuz SAS belirteci yalnızca bu zaman aralığı içinde çalışır.
- IP adresi kısıtlaması yoktur.
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.
- İzinler
SAS belirtecini depolamak için bir kimlik bilgisi oluşturun.
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.Not
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 sunucunundb_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://<storage-account-name>.blob.core.windows.net/<container-name>' ) DROP DATABASE SCOPED CREDENTIAL [https://<storage-account-name>.blob.core.windows.net/<container-name>]; /* The secret is the SAS token for the container. The Read, Write, and List permissions are set. */ CREATE DATABASE SCOPED CREDENTIAL [https://<storage-account-name>.blob.core.windows.net/<container-name>] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '<sas-token>';
Bu toplu işlemi yürütmeden önce aşağıdaki değişiklikleri yapın:
- öğesinin
https://<storage-account-name>.blob.core.windows.net/<container-name>
üç örneğinde de değerini<storage-account-name>
depolama hesabınızın adıyla, değerini de kapsayıcınızın adıyla değiştirin<container-name>
. - yan tümcesinde
SECRET
değerini önceki adımda kopyaladığınız SAS belirteciyle değiştirin<sas-token>
.
- öğesinin
Olay oturumu oluşturma, başlatma ve durdurma
Kimlik bilgisi oluşturulduktan sonra olay oturumunu oluşturabilirsiniz. Kimlik bilgilerini oluşturmanın aksine, olay oturumu oluşturmak için izin gerekmez CONTROL
. Kimlik bilgisi oluşturulduktan sonra, daha kısıtlı izinleriniz 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'si 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://<storage-account-name>.blob.core.windows.net/<container-name>/example-session.xel
.
Not
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://<storage-account-name>.blob.core.windows.net/<container-name>/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
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
İpucu
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, olay veri bloblarıyla depolama kapsayıcısında Veritabanı Altyapısı'na erişim verin.
Daha ayrıntılı bir izlenecek yol için bkz . SSMS'de olay oturumu oluşturma.