Vytvoření relace události s cílem event_file ve službě Azure Storage

Platí pro:Azure SQL DatabaseAzure SQL Managed Instance

Základní kroky v tomto názorném postupu jsou:

  1. Vytvoření účtu Azure Storage nebo vyhledání existujícího vhodného účtu pro použití
  2. Vytvoření kontejneru v tomto účtu úložiště
  3. Vytvoření tokenu SAS s požadovaným přístupem pro tento kontejner
  4. Vytvoření přihlašovacích údajů pro uložení tokenu SAS do databáze nebo spravované instance, ve které vytvoříte relaci událostí
  5. Vytvoření, spuštění a použití relace událostí

Vytvoření účtu úložiště a kontejneru

Podrobný popis vytvoření účtu úložiště ve službě Azure Storage najdete v tématu Vytvoření účtu úložiště. Naučíte se vytvořit účet úložiště pomocí webu Azure Portal, PowerShellu, Azure SQL, šablony ARM nebo šablony Bicep.

Doporučujeme použít účet, který:

  • Standard general-purpose v2 Je to účet.
  • Má svůj typ redundance odpovídající redundanci databáze Azure SQL, elastického fondu nebo spravované instance, kde se vytvářejí relace událostí.
  • Používá úroveň přístupu k objektům Hotblob.
  • Je ve stejné oblasti Azure jako databáze Azure SQL, elastický fond nebo spravovaná instance.

Dále vytvořte kontejner v tomto účtu úložiště pomocí webu Azure Portal. Kontejner můžete vytvořit také pomocí PowerShellu nebo pomocí Azure CLI.

Poznamenejte si názvy účtu úložiště a kontejneru, který používáte.

Vytvoření tokenu SAS

Databázový stroj, na kterém je spuštěná relace událostí, potřebuje konkrétní přístup k kontejneru úložiště. Tento přístup udělíte vytvořením tokenu SAS pro kontejner. Tento token musí splňovat následující požadavky:

  • rwl Oprávnění (Read, Write, List)
  • Mít čas zahájení a vypršení platnosti, které zahrnují dobu životnosti relace události.
  • Nemáte žádná omezení IP adres

Na webu Azure Portal vyhledejte účet úložiště a kontejner, který jste vytvořili. Vyberte kontejner a přejděte do Nastavení > sdílených přístupových tokenů. Nastavte oprávnění na hodnotu , WriteLista nastavte datum a čas zahájení a vypršení platnosti.Read Token SAS, který vytvoříte, funguje pouze v tomto časovém intervalu.

Vyberte tlačítko Generovat token SAS a adresu URL. Token SAS je v poli Token SAS objektu blob. Můžete ho zkopírovat, abyste ho mohli použít v dalším kroku.

Důležité

Token SAS poskytuje přístup pro čtení a zápis k tomuto kontejneru. Zacházejte s ním stejně jako s heslem nebo s jakýmkoli jiným tajným kódem.

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

Vytvoření přihlašovacích údajů pro uložení tokenu SAS

Ve službě Azure SQL Database použijete přihlašovací údaje s oborem databáze k uložení tokenu SAS. Ve službě Azure SQL Managed Instance použijete přihlašovací údaje s vymezeným serverem.

Uložte token SAS do přihlašovacích údajů v oboru databáze. Pomocí klientského nástroje, jako je SSMS nebo ADS, otevřete nové okno dotazu, připojte se k databázi, ve které vytvoříte relaci události, a vložte následující dávku T-SQL. Ujistěte se, že jste připojení k uživatelské databázi, a ne k master databázi.

Poznámka:

Spuštění následující dávky T-SQL vyžaduje CONTROL oprávnění k databázi, která je uložena vlastníkem databáze (dbo), členy db_owner role databáze a správcem logického serveru.

/*
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';

Před provedením této dávky proveďte následující změny:

  • Ve všech třech výskytech https://exampleaccount4xe.blob.core.windows.net/xe-example-containernahraďte exampleaccount4xe názvem vašeho účtu úložiště a nahraďte xe-example-container názvem kontejneru.
  • Nahraďte celý řetězec mezi jednoduchými uvozovkami v SECRET klauzuli tokenem SAS, který jste zkopírovali v předchozím kroku.

Vytvoření, spuštění a zastavení relace události

Po vytvoření přihlašovacích údajů pomocí tokenu SAS můžete vytvořit relaci události. Vytvoření relace události nevyžaduje CONTROL oprávnění. Pokud přihlašovací údaje se správným tokenem SAS již existují, můžete vytvořit relace událostí, i když máte omezenější sadu oprávnění. Podívejte se na oprávnění pro potřebná konkrétní oprávnění.

Pokud chcete vytvořit novou relaci událostí v nástroji SSMS, rozbalte uzel Rozšířené události . Tento uzel je ve složce databáze ve službě Azure SQL Database a ve složce Správa ve službě Azure SQL Managed Instance. Klikněte pravým tlačítkem myši na složku Relace a vyberte Možnost Nová relace.... Na stránce Obecné zadejte název relace, která je example-session v tomto příkladu. Na stránce Události vyberte jednu nebo více událostí, které chcete přidat do relace. V tomto příkladu sql_batch_starting jsme vybrali událost.

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

Na stránce Úložiště dat vyberte event_file jako cílový typ a vložte adresu URL kontejneru úložiště do pole Adresa URL úložiště. Na konec této adresy URL zadejte lomítko (/) následované názvem souboru (objekt blob). V našem příkladu je example-session.xelnázev objektu blob a celá adresa URL je https://exampleaccount4xe.blob.core.windows.net/xe-example-container/example-session.xel.

Poznámka:

Pro službu SQL Managed Instance místo vložení adresy URL kontejneru úložiště na stránce Úložiště dat použijte tlačítko Skript k vytvoření skriptu T-SQL relace. Zadejte adresu URL kontejneru jako hodnotu argumentu filename , podobně jako v příkladu spravované instance SQL níže, a spusťte skript pro vytvoření relace.

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

Teď, když je relace nakonfigurovaná, můžete výběrem tlačítka Skript vytvořit skript T-SQL relace a uložit ho pro pozdější použití. Tady je skript pro naši ukázkovou relaci:

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

Vyberte OK a vytvořte relaci.

V Průzkumník objektů rozbalte složku Relace a zobrazte relaci události, kterou jste vytvořili. Ve výchozím nastavení se relace při vytváření nespusťe. Relaci spustíte tak, že kliknete pravým tlačítkem myši na název relace a vyberete Spustit relaci. Později ji můžete zastavit tak, že po spuštění relace vyberete možnost Zastavit relaci.

Při spouštění dávek T-SQL v této databázi nebo spravované instanci relace zapisuje události do objektu example-session.xel blob v kontejneru xe-example-container úložiště.

Pokud chcete relaci zastavit, klikněte na ni pravým tlačítkem v Průzkumník objektů a vyberte Zastavit relaci.

Zobrazení dat události

Data událostí můžete zobrazit v uživatelském rozhraní prohlížeče událostí aplikace SQL Server Management Studio (SSMS), kde můžete k analýze zachycených dat použít filtry a agregace. Další informace o použití prohlížeče událostí v nástroji SSMS najdete v tématu Zobrazení dat událostí v nástroji SSMS.

Stažení souborů xel ze služby Azure Storage

Tip

Pokud používáte SSMS verze 19.2 nebo novější, nemusíte stahovat xel soubory, jak je popsáno v této části. V těchto verzích SSMS čte xel soubory pro každou relaci přímo z úložiště Azure. Další informace najdete v blogovém příspěvku o vylepšení rozšířených událostí Azure SQL .

xel Stáhněte objekt blob pro relaci z kontejneru úložiště a uložte ho jako místní soubor. Na webu Azure Portal vyhledejte použitý účet úložiště, v části Úložiště dat vyberte Kontejnery a vyberte kontejner, který jste vytvořili pro relaci událostí. Objekt blob relace má název relace jako první část jejího názvu s číselnou příponou. Výběrem tří teček (...) zobrazte místní nabídku objektu blob a vyberte Stáhnout.

Můžete nainstalovat Průzkumník služby Azure Storage a stáhnout několik xel objektů blob v jedné operaci.

Jakmile se xel soubor stáhne, otevřete ho v aplikaci SSMS. V hlavní nabídce SSMS přejděte na Soubor a vyberte Otevřít. Pokud máte jeden xel soubor, vyberte Soubor... a přejděte na stažený soubor. Pokud máte více xel souborů vygenerovaných stejnou relací událostí (označuje se jako soubory vrácení), můžete použít dialogové okno Sloučit rozšířené soubory událostí... a otevřít je všechny v prohlížeči událostí.

Zobrazení dat událostí pomocí T-SQL

Pokud chcete číst data relace událostí pomocí T-SQL, použijte funkci sys.fn_xe_file_target_read_file(). Pokud chcete tuto funkci použít v databázi nebo spravované instanci, která se liší od té, ve které je relace událostí vytvořená, vytvořte přihlašovací údaje, které databázovému stroji udělí přístup ke kontejneru úložiště s objekty blob událostí.

Podrobnější návod najdete v tématu Vytvoření relace událostí v nástroji SSMS.