Esemény-munkamenet létrehozása event_file-tárolóval az Azure Storage-ban

A következőre vonatkozik: Azure SQL DatabaseFelügyelt Azure SQL-példány

Az útmutató magas szintű lépései a következők:

  1. Azure Storage-fiók létrehozása vagy meglévő megfelelő fiók megkeresése
  2. Tároló létrehozása ebben a tárfiókban
  3. SAS-jogkivonat létrehozása a tárolóhoz szükséges hozzáféréssel
  4. Hozzon létre egy hitelesítő adatot az SAS-jogkivonat tárolásához abban az adatbázisban vagy felügyelt példányban, ahol az esemény-munkamenetet hozza létre
  5. Esemény-munkamenet létrehozása, indítása és használata

Tárfiók és tároló létrehozása

A tárfiók Azure Storage-ban való létrehozásának részletes leírását a Tárfiók létrehozása című témakörben találja. Megtudhatja, hogyan hozhat létre tárfiókot az Azure Portal, a PowerShell, az Azure SQL, egy ARM-sablon vagy egy Bicep-sablon használatával.

Javasoljuk, hogy olyan fiókot használjon, amely:

  • Standard general-purpose v2 Egy fiók.
  • Redundanciatípusa megegyezik az Azure SQL-adatbázis, a rugalmas készlet vagy a felügyelt példány redundanciájával, ahol esemény-munkamenetek jönnek létre.
  • A blobelérési Hotszintet használja.
  • Ugyanabban az Azure-régióban található, mint az Azure SQL-adatbázis, a rugalmas készlet vagy a felügyelt példány.

Ezután hozzon létre egy tárolót ebben a tárfiókban az Azure Portal használatával. Tárolót a PowerShell vagy az Azure CLI használatával is létrehozhat.

Jegyezze fel a használt tárfiók és tároló nevét.

SAS-jogkivonat létrehozása

Az esemény-munkamenetet futtató adatbázismotornak konkrét hozzáférésre van szüksége a tárolóhoz. Ezt a hozzáférést egy SAS-jogkivonat létrehozásával biztosíthatja a tárolóhoz. Ennek a jogkivonatnak meg kell felelnie a következő követelményeknek:

  • Rendelkezik (rwlRead, Write, List) engedélyekkel
  • Az esemény munkamenetének élettartamát magában foglaló kezdési és lejárati idő
  • Nincsenek IP-címkorlátozások

Az Azure Portalon keresse meg a létrehozott tárfiókot és tárolót. Jelölje ki a tárolót, és keresse meg Gépház > megosztott hozzáférési jogkivonatokat. Állítsa be az engedélyeket a , Write, ListértékreRead, és állítsa be a kezdő és a lejárati dátumot és időpontot. A létrehozott SAS-jogkivonat csak ezen időintervallumon belül működik.

Válassza az SAS-jogkivonat és az URL-cím létrehozása gombot. Az SAS-jogkivonat a Blob SAS-jogkivonat mezőjében található. A következő lépésben használhatja.

Fontos

Az SAS-jogkivonat olvasási és írási hozzáférést biztosít ehhez a tárolóhoz. Kezelje úgy, mintha egy jelszót vagy bármilyen más titkos kódot kezelne.

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

Hitelesítő adatok létrehozása az SAS-jogkivonat tárolásához

Az Azure SQL Database-ben adatbázis-hatókörű hitelesítő adatok használatával tárolja az SAS-jogkivonatot. A felügyelt Azure SQL-példányban kiszolgálói hatókörű hitelesítő adatokat használ.

Az SAS-jogkivonat tárolása adatbázis-hatókörű hitelesítő adatokban. Egy ügyféleszköz, például az SSMS vagy az ADS használatával nyisson meg egy új lekérdezési ablakot, csatlakozzon ahhoz az adatbázishoz, ahol az esemény munkamenetet hozza létre, és illessze be a következő T-SQL-köteget. Győződjön meg arról, hogy a felhasználói adatbázishoz csatlakozik, és nem az master adatbázishoz.

Megjegyzés:

A következő T-SQL-köteg végrehajtásához az CONTROL adatbázis-engedély szükséges, amelyet az adatbázis tulajdonosa (dbo), az db_owner adatbázis-szerepkör tagjai és a logikai kiszolgáló rendszergazdája tárol.

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

A köteg végrehajtása előtt végezze el a következő módosításokat:

  • Mindhárom esetben https://exampleaccount4xe.blob.core.windows.net/xe-example-containercserélje le exampleaccount4xe a tárfiók nevét, és cserélje le xe-example-container a tároló nevére.
  • Cserélje le a záradékban szereplő SECRET idézőjelek közötti teljes sztringet az előző lépésben másolt SAS-jogkivonatra.

Esemény munkamenet létrehozása, indítása és leállítása

Az SAS-jogkivonattal rendelkező hitelesítő adatok létrehozása után létrehozhatja az esemény-munkamenetet. Az esemény munkamenetének létrehozásához nincs szükség engedélyre CONTROL . Ha a megfelelő SAS-jogkivonattal rendelkező hitelesítő adatok már léteznek, akkor is létrehozhat esemény-munkameneteket, ha korlátozottabb engedélykészlettel rendelkezik. Tekintse meg a szükséges engedélyek engedélyeit .

Ha új esemény munkamenetet szeretne létrehozni az SSMS-ben, bontsa ki a Kiterjesztett események csomópontot . Ez a csomópont az Azure SQL Database adatbázismappájában, a felügyelt Azure SQL-példány Felügyeleti mappájában található. Kattintson a jobb gombbal a Munkamenetek mappára, és válassza az Új munkamenet...lehetőséget. Az Általános lapon adja meg a munkamenet nevét, amely ebben a példában szerepel example-session . Az Események lapon válasszon ki egy vagy több eseményt, amely hozzáadható a munkamenethez. Ebben a példában az eseményt sql_batch_starting választottuk ki.

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

Az Adattároló lapon válassza ki event_file a céltípust, és illessze be a tároló URL-címét a Storage URL-mezőbe. Írjon be egy perjelet (/) az URL-cím végére, majd a fájl (blob) nevét. A példánkban a blob neve, example-session.xela teljes URL-cím pedig .https://exampleaccount4xe.blob.core.windows.net/xe-example-container/example-session.xel

Megjegyzés:

Felügyelt SQL-példány esetén a tároló URL-címének beillesztése helyett használja a Szkript gombot a munkamenet T-SQL-szkriptjének létrehozásához. Adja meg a tároló URL-címét az filename argumentum értékeként az alábbi SQL Managed Instance példához hasonlóan, és hajtsa végre a szkriptet a munkamenet létrehozásához.

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

Most, hogy a munkamenet konfigurálva lett, a Szkript gombra kattintva létrehozhat egy T-SQL-szkriptet a munkamenetből, és mentheti későbbi használatra. A példamunkamenet szkriptje a következő:

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

A munkamenet létrehozásához kattintson az OK gombra .

Az Object Explorerben bontsa ki a Munkamenetek mappát a létrehozott esemény-munkamenet megtekintéséhez. Alapértelmezés szerint a munkamenet létrehozásakor nem indul el. A munkamenet elindításához kattintson a jobb gombbal a munkamenet nevére, és válassza a Munkamenet indítása parancsot. Később a munkamenet futtatása után a Munkamenet leállítása lehetőséget választva is leállíthatja.

Mivel a T-SQL-kötegek végrehajtása ebben az adatbázisban vagy felügyelt példányban történik, a munkamenet eseményeket ír a example-session.xel tároló blobjának xe-example-container .

A munkamenet leállításához kattintson rá a jobb gombbal az Object Explorerben, és válassza a Munkamenet leállítása lehetőséget.

Eseményadatok megtekintése

Az eseményadatokat az SQL Server Management Studio (SSMS) eseménynapló felhasználói felületén tekintheti meg, ahol szűrőkkel és összesítésekkel elemezheti a rögzített adatokat. Az eseménynapló SSMS-ben való használatáról további információt az SSMS eseményadatainak megtekintése című témakörben talál.

xel-fájlok letöltése az Azure Storage-ból

Tipp.

Ha az SSMS 19.2-es vagy újabb verzióját használja, nem kell letöltenie xel a fájlokat az ebben a szakaszban leírtak szerint. Ezekben a verziókban az SSMS közvetlenül az Azure Storage-ból olvassa be az xel egyes munkamenetek fájljait. További információ: Bővített események javítása az Azure SQL-ben blog.

Töltse le a xel munkamenet blobot a tárolóból, és mentse helyi fájlként. Az Azure Portalon keresse meg a használt tárfiókot, válassza a Tárolók lehetőséget az Adattárolás területen, és válassza ki az esemény munkamenetéhez létrehozott tárolót. A munkamenet blobjának neve első része a munkamenet neve, numerikus utótaggal. Jelölje ki a három pontot (...) a blob helyi menüjének megjelenítéséhez, majd válassza a Letöltés lehetőséget.

Az Azure Storage Explorert úgy telepítheti, hogy több xel blobot töltsön le egyetlen műveletben.

xel A fájl letöltése után nyissa meg az SSMS-ben. Az SSMS főmenüjében válassza a Fájl lehetőséget, és válassza a Megnyitás lehetőséget. Ha egyetlen xel fájllal rendelkezik, válassza a Fájl lehetőséget , és keresse meg a letöltött fájlt. Ha ugyanazon esemény munkamenet által létrehozott több xel fájl (más néven rollover fájlok) vannak létrehozva, a Kiterjesztett eseményfájlok egyesítése... párbeszédpanelen megnyithatja az összeset az eseménymegjelenítőben.

Eseményadatok megtekintése a T-SQL használatával

Az esemény-munkamenet adatainak T-SQL használatával való olvasásához használja a sys.fn_xe_file_target_read_file() függvényt. Ha ezt a függvényt olyan adatbázisban vagy felügyelt példányban szeretné használni, amely eltér az esemény-munkamenet létrehozásának helyétől, hozzon létre egy hitelesítő adatot, amely hozzáférést biztosít az adatbázismotornak az eseményblobokkal rendelkező tárolóhoz.

Részletesebb útmutató : Esemény-munkamenet létrehozása az SSMS-ben.