Trasování (hlavní datové služby)

Platí pro:SQL Server v systému Windows Azure SQL Managed Instance

Důležité

Hlavní datové služby (MDS) se odeberou v SQL Serveru 2025 (17.x). MdS nadále podporujeme v SQL Serveru 2022 (16.x) a starších verzích.

Po instalaci služby MDS (Master Data Services) může být funkce protokolování trasování užitečná pro diagnostiku chyb, žádosti o podporu a monitorování využití a výkonu aplikací. Tento článek popisuje postup zapnutí a konfigurace protokolování trasování. Konkrétně tento článek popisuje trasování do textového souboru protokolu. Tento článek také popisuje postup vytvoření souboru protokolu, který může pomoct při řešení potíží se selháními, ke kterým může dojít při vytváření databáze MDS.

Pozadí

Master Data Services se skládá z webové aplikace ASP.NET (Master Data Manager) a služby WCF; obě jsou hostované ve službě IIS i v databázi SQL Serveru. Žádosti Master Data Manageru a externí volání na koncový bod rozhraní API webových služeb jsou zpracovány sdílenou vrstvou služby. Vrstva služby může protokolovat každý požadavek nebo odpověď operace, důležité události a chyby.

Jako správce s přístupem k souborům na webovém serveru IIS můžete protokolování povolit úpravou souboru Web.config MDS.

Ve výchozím nastavení je soubor Web.config v jedné z následujících složek webových aplikací:

  • SQL Server 2008 R2: program_files\Microsoft SQL Server\Master Data Services\WebApplication

  • SQL Server 2012 a novější verze: program_files\Microsoft SQL Server\<nnn>\Master Data Services\WebApplication

Čísla nnn v cestě odpovídají verzi nainstalovaného SQL Serveru. Následující tabulka uvádí verze cest:

Verze nnn
SQL Server 2019 sto padesát
SQL Server 2017 140
SQL Server 2016 130
SQL Server 2014 120
SQL Server 2012 110

Upozornění

Aktualizace Web.config způsobí recyklaci domény aplikace MDS ve službě IIS. Stávající uživatelské relace ztratí informace uložené v mezipaměti a uživatelé můžou zaznamenat chyby relace nebo pomalé načtení stránky. Pokud je to možné, proveďte změny v době mimo špičku.

Protokolování trasování pro webovou aplikaci MDS

SQL Server 2016 a novější verze

Soubor Web.config obsahuje sekci sledování, jak je znázorněno níže. Tato část je představena v SQL Serveru 2016 (13.x) Master Data Services.

<sources>  
     <!-- Adjust the switch value to control the types of messages that should be logged.   
           https://msdn.microsoft.com/library/system.diagnostics.sourcelevels  
           Use a switchValue of Verbose to generate a full log. Please be aware that   
           the trace file can get quite large very quickly. -->  
     <source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="Warning, ActivityTracing">  
          <listeners>  
          <!-- Set a directory path where the service account you chose while setting up Master Data Services has read and write privileges.  
               Default path is Logs in WebApplication folder, for example C:\Program Files\Microsoft SQL Server\130\Master Data Services\WebApplication  
               New log file will be created every day or every 10 mb.  
               When directory size hits the 200 mb limitation, the oldest file will be deleted. -->  
          <add name="FileTraceListener"  
               type="Microsoft.MasterDataServices.Core.Logging.FileTraceListener, Microsoft.MasterDataServices.Core"   
               initializeData="DirectoryPath = Logs; FileSizeInMb = 10; MaxDirectorySizeInMb = 200"/>  
          <remove name="Default"/>  
          </listeners>  
     </source>  
</sources>

Toto je výchozí chování trasování:

  • Trasování je povolené pro zprávy Warning a ActivityTracing.

    Další informace naleznete v tématu SourceLevels – výčet.

  • Protokoly se ukládají do složky Protokoly ve složce WebApplication . Výchozí umístění je C:\Program Files\Microsoft SQL Server\nnn\Master Data Services\WebApplication\Logs.

  • Soubor se vytvoří pro každý den nebo každých 10 MB.

  • Když velikost adresáře dosáhne 200 MB, nejstarší log se odstraní.

  • Formát protokolu je CSV. Následující tabulka popisuje formát protokolu:

    prvek Popis
    Čas Když dojde k záznamu trasování
    ID korelace Každému požadavku je přiřazeno jedno ID korelace. Všechna trasování aktivovaná tímto požadavkem budou sdílet stejné ID korelace.
    Pokud dojde k chybě v uživatelském rozhraní, ID korelace se zobrazí v chybové zprávě.
    Operace Požadovaný název operace. Pokud se jedná o požadavek webového uživatelského rozhraní, název operace je adresa URL. Pokud se jedná o požadavek rozhraní API, název operace je název služby.
    Úroveň Úroveň tohoto záznamu trasování
    Zpráva Text zprávy trasování

SQL Server 2014 a starší verze

Oddíl diagnostiky v původně nainstalovaném souboru Web.config

Následující fragment kódu souboru ukazuje oddíl diagnostiky z původně nainstalovaného souboruWeb.config .

Poznámka:

switchValue je nastavena na Off. Kromě toho jsou ukázkové řádky okomentovány. Tyto řádky jsou příklady pro přidání naslouchacích modulů pro trasování různých typů.

<system.diagnostics>  
     <sources>  
     <!-- Adjust the switch value to control the types of messages that should be logged. -->  
          <source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="Off">  
          <listeners>  
          <!-- Enable and configure listeners as desired to obtain trace messages. -->  
          <!-- <add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsTrace.log" traceOutputOptions="DateTime" /> -->  
          <!-- <add name="EtwListener" type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"  
          initializeData="{F2A341B8-CA5F-49ad-B00C-A82D3FCF948B}"/> -->  
          <!-- <remove name="Default"/> -->  
          </listeners>  
         </source>  
     </sources>  
     <trace autoflush="true"/>  
</system.diagnostics>

Zapnutí trasování souborů protokolu

Pokud chcete povolit protokolování, změňte switchValue hodnotu na All jinou platnou hodnotu, jak je popsáno níže v tabulce 1. Pokud chcete povolit výstup do logu, odkomentujte řádek LogFileListener tak, jak je uvedeno v následující ukázce souboru:

<system.diagnostics>  
     <sources>  
          <!-- Adjust the switch value to control the types of messages that should be logged. -->  
          <source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="All">  
          <listeners>  
          <!-- Enable and configure listeners as desired to obtain trace messages. -->  
          <add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsTrace.log" traceOutputOptions="DateTime"/>  
          <!-- <add name="EtwListener" type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" initializeData="{F2A341B8-CA5F-49ad-B00C-A82D3FCF948B}"/> -->  
          <!-- <remove name="Default"/> -->  
          </listeners>
          </source>  
     </sources>  
     <trace autoflush="true"/>  
</system.diagnostics> 
Tabulka 1 – nastavení SwitchValue pro protokolování
Nastavení Co se protokoluje
Vypnuto nic
Chyba pouze chyby
Výstraha chyby a upozornění
Informace chyby, upozornění, informační zprávy
Zdlouhavý Informace a další informace o trasování a ladění, včetně požadavků rozhraní API a odpovědí ve formátu XML
Sledování aktivity Pouze události spuštění a zastavení
Všechno "Podrobné" a "SledováníAktivit"
Název souboru a cesta

Hodnota initializeData je název souboru protokolu. To může být změněno na jiný název nebo zahrnout požadovanou cestu. Pokud není zadaná cesta, soubor se ve výchozím nastavení nastaví na cestu k adresáři webové aplikace (kde se nacházíWeb.config ).

Důležité

Účet služby pro fond aplikací MDS musí mít práva zapisování do umístění souboru protokolu.

Úroveň protokolování podrobností

Níže uvedená tabulka 2 popisuje kategorie událostí trasování, které mohou být protokolovány nebo řazeny, přičemž nejdůležitější/kritické události jsou nahoře. Tabulka 1 výše uvádí platné nastavení protokolování switchValue. Toto nastavení lze upravit tak, aby vzniklo správné množství podrobností protokolování tak, aby vyhovovalo situaci.

Tabulka 2 – Typy událostí protokolování MDS
Typ události Popis
Kritický Závažná chyba nebo chyba aplikace
Chyba obnovitelná chyba
Výstraha nekritický problém
Informace informační zpráva
Zdlouhavý ladicí trasovací zpráva
Začátek spuštění logické operace
Zastavte zastavení logické operace

Doporučení k nastavení záznamů

  • Pro normální provoz použijte nastavení Off, abyste se vyhnuli protokolování úplně, nebo použijte nastavení Error či Warning, která udrží protokoly malé a zároveň upozorní správce na problémy.
  • All Nastavení použijte pro situace podpory a řešení potíží.
  • Slouží ActivityTracing k měření výkonu nebo monitorování využití.
  • Používejte Information pouze v případě, že jste připraveni pravidelně kontrolovat a vyčistit protokoly. Protokoly můžou být s tímto nastavením zdlouhavé. Toto nastavení je užitečné pro sledování využití a vzorců využití.
  • Nepoužívejte Verbose ani All za normálních provozních podmínek, protože objem zaprotokolovaných dat negativně ovlivní výkon.

Postup vytvoření souboru protokolu pro podporu produktů

V situacích, kdy dojde k neočekávané chybě a vyžaduje se další diagnostika, je užitečné vytvořit soubor protokolu, který sleduje události vedoucí k problému spolu s požadavky a odpověďmi na služby.

Pokud chcete vytvořit stručný a užitečný soubor protokolu, postupujte takto:

Upozornění

Aktualizace Web.config způsobí recyklaci domény aplikace MDS ve službě IIS.

  1. Pokud je to možné, zastavte fond aplikací MDS ve Správci služby IIS.

    Výstraha

    Udělejte to jenom v případě, že je možné aplikaci odpojit.

  2. Pokud je to možné, přesuňte nebo odstraňte aktuální soubor protokolu (pokud už existuje).

  3. Otevřete soubor Web.config pomocí textového editoru.

    Poznámka:

    Ve výchozím nastavení je soubor Web.config v jedné z následujících složek webových aplikací:

    • SQL Server 2008 R2: program_files\Microsoft SQL Server\Master Data Services\WebApplication
    • SQL Server 2012: program_files\Microsoft SQL Server\110\Master Data Services\WebApplication
  4. Najděte system.diagnostics oddíl.

  5. Změňte switchValue na All nebo ActivityTracing a odkomentujte řádek souboru protokolu, jak je znázorněno v části Zapnutí trasování souborů protokolu v tomto článku.

    1. Slouží switchValue="All" k diagnostice chyb.
    2. Slouží switchValue="ActivityTracing" k diagnostice výkonu.
    3. Název souboru MdsTrace.log může mít předponu s cestou, pokud je to požadováno.
  6. Pokud byl fond aplikací dříve zastavený, spusťte fond aplikací MDS ve službě IIS. Nebo jinak počkejte, než se soubor protokolu zobrazí po nějaké době a aktivitě webové aplikace. Webová aplikace bude pravidelně znovu načítat nastavení konfigurace ze souboru (mělo by to být během několika minut).

  7. Reprodukujte problém a proveďte stejné akce nebo požadavky, které vedly k chybě.

  8. Jestliže můžete zastavit fond aplikací:

    1. Zastavte fond aplikací.
    2. Načtěte soubor protokolu (možná budete muset počkat na dokončení procesů. Po zastavení fondu aplikací může dojít ke zpoždění).

    Nebo jinak soubor protokolu otevřete pomocí editoru, který soubor nezamkne (například notepad.exe) a zkopíruje relevantní trasovací zprávy.

  9. Otevřete soubor Web.config pomocí textového editoru a změňte switchValue zpět na Off nebo na předchozí hodnotu.

  10. Pokud je fond aplikací zastavený, spusťte ho.

    Zpracování chyb: Všechny operace služby vrací pole nebo kolekci chyb v OperationResult objektu zprávy odpovědi. Pokud dojde k chybě, pole chyb je také serializováno do XML a zapsáno do souboru protokolu webové aplikace pro určitá switchValue nastavení, jak je popsáno výše.

Příklad chyby odpovědi rozhraní API, která byla zapsána do souboru protokolu:

MDS Error: 0 :
<ArrayOfError xmlns="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
     <Error> 
     <Code>110003</Code> 
          <Context> 
          <FullyQualifiedName>Model1</FullyQualifiedName> 
          <Identifier> 
               <Id>00000000-0000-0000-0000-000000000000</Id> 
               <Name>Model1</Name> <InternalId>0</InternalId> 
          </Identifier> 
          <Type>Model</Type> 
          </Context> 
     <Description>The name already exists. Type a different name.</Description> 
     </Error> 
</ArrayOfError> 
DateTime=2009-12-10T20:48:05.6949548Z error object contents 

Jak je znázorněno v předchozím příkladu, každá chyba obsahuje následující vlastnosti dat:

Vlastnictví Popis
Code Jedinečné číslo chyby identifikující typ chyby
Popis Lokalizovaný text chybové zprávy
Context.FullyQualifiedName Plně kvalifikovaný název objektu zapojeného do chyby. Některé názvy jsou v kontextu jedinečné. Entita by byla kvalifikovaná s předponou názvu modelu, například ModelName: EntityName
Context.Typ Typ objektu zapojeného do chyby
Context.Identifier Identifikátor objektu zapojeného do chyby
Context.Identifier.Id Jedinečný identifikátor GUID objektu, pokud je zadaný nebo dostupný
Context.Identifikátor.Název Název objektu, pokud je zadaný nebo dostupný
Context.Identifier.InternalId Zastaralé – nepoužívejte

Trasování problémů s vytvářením databáze MDS

Pomocí následujícího postupu můžete vytvořit soubor protokolu, který může pomoct při řešení potíží se selháními, ke kterým může dojít při vytváření databáze MDS:

  1. Otevřete soubor MDSConfigTool.exe.config v cestě C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration pomocí notepad.exe.

  2. Odkomentujte následující řádek v souboru odstraněním znaků na konci tohoto řádku.

    <add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsConfigManagerTrace.log" traceOutputOptions="DateTime"/>

  3. Ujistěte se, že nastavení switchValue má hodnotu All.

    <source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="All">

  4. Zkuste databázi vytvořit znovu. Potom otevřete soubor MdsConfigManagerTrace.log , který je uložen do složky C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration a zkontrolujte stejné informace týkající se selhání.

Externí zdroje

Řešení potíží s vylepšením protokolování