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:

  1. Azure Depolama hesabı oluşturma veya kullanılacak mevcut uygun hesabı bulma
  2. Bu depolama hesabında kapsayıcı oluştur
  3. Bu kapsayıcı için gerekli erişime sahip bir SAS belirteci oluşturun
  4. SAS belirtecini olay oturumunu oluşturduğunuz veritabanında veya yönetilen örnekte depolamak için bir kimlik bilgisi oluşturma
  5. 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.
  • Blob erişim katmanını Hotkullanı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. ListWriteRead 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.

Screenshot of the Shared Access Tokens screen for an Azure Storage container, with a generated SAS token for an example container.

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ğerini exampleaccount4xe depolama hesabınızın adıyla, değerini de kapsayıcınızın adıyla değiştirin xe-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 .

Screenshot of the New Session SSMS dialog showing the event selection page with the sql_batch_starting event selected.

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.xelve 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.

Screenshot of the New Session SSMS dialog showing the data storage selection page with an event_file target selected and an entered storage URL.

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.xelxe-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.