Udostępnij przez


Śledzenie (Master Data Services)

Dotyczy:SQL Server na systemie Windows Azure SQL Managed Instance

Ważne

Usługi master Data Services (MDS) są usuwane w programie SQL Server 2025 (17.x). Nadal obsługujemy usługi MDS w programie SQL Server 2022 (16.x) i starszych wersjach.

Po zainstalowaniu usługi Master Data Services (MDS) możesz znaleźć funkcję rejestrowania śledzenia przydatną dla diagnostyki błędów, żądań pomocy technicznej i monitorowania użycia i wydajności aplikacji. W tym artykule opisano kroki włączania i konfigurowania rejestrowania śledzenia. W szczególności w tym artykule opisano śledzenie pliku dziennika tekstowego. W tym artykule omówiono również procedurę tworzenia pliku dziennika, który może pomóc w rozwiązywaniu problemów z błędami, które mogą wystąpić podczas tworzenia bazy danych MDS.

Kontekst

Master Data Services składa się z aplikacji internetowej ASP.NET (Master Data Manager) i usługi WCF; oba są hostowane w usługach IIS i bazie danych programu SQL Server. Żądania głównego menedżera danych i wywołania zewnętrzne do punktu końcowego interfejsu API usług internetowych są obsługiwane przez wspólną warstwę usługi. Warstwa usługi może rejestrować każde żądanie/odpowiedź operacji, ważne zdarzenia i błędy.

Jako administrator z dostępem do plików na serwerze internetowym usług IIS możesz włączyć rejestrowanie, modyfikując plik Web.config MDS.

Domyślnie plik Web.config znajduje się w jednym z następujących folderów aplikacji internetowych:

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

  • SQL Server 2012 i nowsze wersje: program_files\Microsoft SQL Server\<nnn>\Master Data Services\WebApplication

Liczby nnn w ścieżce odpowiadają instalowanej wersji programu SQL Server. W poniższej tabeli przedstawiono wersje ścieżek:

wersja nnn
SQL Server 2019 150
SQL Server 2017 140
SQL Server 2016 130
SQL Server 2014 120
SQL Server 2012 110

Ostrzeżenie

Aktualizacja Web.config spowoduje ponowne uruchomienie domeny aplikacji MDS w IIS. Istniejące sesje użytkownika utracą buforowane informacje, a użytkownicy mogą napotkać błędy sesji lub wolne ładowanie stron. W miarę możliwości przeprowadź zmiany poza godzinami szczytu.

Śledzenie logów dla aplikacji internetowej MDS

SQL Server 2016 i nowsze wersje

Plik Web.config zawiera sekcję śledzenia, jak pokazano poniżej. Ta sekcja została wprowadzona w usługach sql Server 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>

Poniżej przedstawiono domyślne zachowanie śledzenia:

  • Śledzenie jest włączone dla komunikatów Warning i ActivityTracing.

    Aby uzyskać więcej informacji, zobacz SourceLevels Enumeration.

  • Dzienniki są zapisywane w folderze Logs w folderze WebApplication . Domyślną lokalizacją jest C:\Program Files\Microsoft SQL Server\nnn\Master Data Services\WebApplication\Logs.

  • Plik jest tworzony dla każdego dnia lub co 10 MB.

  • Gdy rozmiar katalogu osiągnie 200 MB, najstarszy dziennik zostanie usunięty.

  • Format dziennika to CSV. W poniższej tabeli opisano format dziennika:

    Składnik Opis
    Czas Gdy następuje wpis do dziennika śledzenia
    Identyfikator korelacji Jeden identyfikator korelacji jest przypisywany dla każdego żądania. Wszystkie ślady wyzwalane przez to żądanie będą współdzielić ten sam identyfikator korelacji.
    Gdy w interfejsie użytkownika wystąpi błąd, identyfikator korelacji pojawia się w komunikacie o błędzie
    Operacja Nazwa operacji żądania. Jeśli żądanie jest żądaniem internetowego interfejsu użytkownika, nazwa operacji to adres URL. Jeśli żądanie jest żądaniem interfejsu API, nazwa operacji to nazwa usługi
    poziom Poziom tego zapisu śledzenia
    Komunikat Treść komunikatu śledzenia

SQL Server 2014 i starsze wersje

Sekcja diagnostyczna z pliku Web.config pierwotnie zainstalowanego

Poniższy fragment kodu pliku przedstawia sekcję diagnostyki z pierwotnie zainstalowanego pliku Web.config .

Uwaga / Notatka

switchValue jest ustawiony na Off. Ponadto przykładowe wiersze są komentowane. Te wiersze to przykłady dodawania odbiorników śledzenia różnych typów.

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

Włączanie śledzenia plików dziennika

Aby włączyć rejestrowanie, zmień switchValue wartość na All lub inną prawidłową wartość, jak opisano poniżej w tabeli 1. Aby włączyć dane wyjściowe do pliku dziennika, usuń oznaczenie komentarza z wiersza LogFileListener, jak pokazano w poniższym fragmencie pliku:

<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> 
Tabela 1 — ustawienia SwitchValue na potrzeby rejestrowania
Ustawienia Co jest rejestrowane
Wyłączony nic
Błąd tylko błędy
Ostrzeżenie błędy i ostrzeżenia
Informacja błędy, ostrzeżenia, komunikaty informacyjne
Pełne informacje "Informacje" i inne informacje dotyczące śledzenia debugowania, w tym żądania interfejsu API i odpowiedzi w formacie XML
Śledzenie Aktywności uruchamianie i zatrzymywanie tylko zdarzeń
Wszystko "Pełne" i "ActivityTracing"
Nazwa i ścieżka pliku

Wartość initializeData jest nazwą pliku dziennika. Można go zmodyfikować na inną nazwę lub dołączyć żądaną ścieżkę. Jeśli ścieżka nie zostanie określona, plik zostanie domyślnie ustawiony na ścieżkę katalogu aplikacji internetowej (gdzie znajduje sięWeb.config ).

Ważne

Konto usługi dla puli aplikacji MDS musi mieć uprawnienia do zapisu w lokalizacji pliku dziennika.

Poziom szczegółowości rejestrowania

W poniższej tabeli 2 opisano kategorie zdarzeń śledzenia, które mogą być rejestrowane lub sortowane przy użyciu najważniejszych/krytycznych zdarzeń u góry. W powyższej tabeli 1 wymieniono prawidłowe ustawienia rejestrowania switchValue. To ustawienie można dostosować, aby utworzyć odpowiednią ilość szczegółów rejestrowania, aby dopasować je do sytuacji.

Tabela 2 — typy zdarzeń rejestrowania usługi MDS
Typ zdarzenia Opis
Krytyczny błąd krytyczny lub awaria aplikacji
Błąd błąd możliwy do odzyskania
Ostrzeżenie niekrytyczny problem
Informacja komunikat informacyjny
Pełne informacje komunikat śledzenia błędów
Rozpocznij rozpoczynanie operacji logicznej
Zatrzymaj zatrzymywanie operacji logicznej

Zalecenia dotyczące ustawień dziennika

  • Dla normalnej pracy użyj ustawienia Off , aby całkowicie uniknąć rejestrowania lub użyj ustawienia Error lub Warning , które utrzymają mały rozmiar dziennika, jednocześnie informując administratorów o problemach.
  • Użyj ustawienia All w sytuacjach pomocy technicznej/rozwiązywania problemów.
  • Służy ActivityTracing do pomiaru wydajności lub monitorowania użycia.
  • Użyj Information tylko wtedy, gdy jest przygotowany do okresowego sprawdzania i czyszczenia dzienników. Dzienniki mogą być długie z tym ustawieniem. To ustawienie jest przydatne do śledzenia użycia i wzorców korzystania.
  • Nie używaj Verbose ani All w normalnych warunkach operacyjnych, ponieważ ilość zarejestrowanych danych negatywnie wpłynie na wydajność.

Kroki tworzenia pliku dziennika na potrzeby pomocy technicznej dotyczącej produktu

W sytuacjach, gdy wystąpi nieoczekiwany błąd i wymagana jest dalsza diagnostyka, warto utworzyć plik dziennika, który śledzi zdarzenia prowadzące do problemu wraz z żądaniami obsługi i odpowiedziami.

Aby utworzyć zwięzły i przydatny plik dziennika, wykonaj następujące kroki:

Ostrzeżenie

Aktualizacja Web.config spowoduje ponowne uruchomienie domeny aplikacji MDS w IIS.

  1. Jeśli to możliwe, zatrzymaj pulę aplikacji MDS w Menedżerze usług IIS.

    Ostrzeżenie

    Zrób to tylko wtedy, gdy aplikacja może zostać wyłączona.

  2. Jeśli to możliwe, przenieś lub usuń bieżący plik dziennika (jeśli już istnieje).

  3. Otwórz plik Web.config przy użyciu edytora tekstów.

    Uwaga / Notatka

    Domyślnie plik Web.config znajduje się w jednym z następujących folderów aplikacji internetowych:

    • 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. Znajdź sekcję system.diagnostics .

  5. switchValue Zmień wartość na All lub ActivityTracing i usuń komentarz w wierszu pliku dziennika, jak pokazano w sekcji Włączanie śledzenia plików dziennika w tym artykule.

    1. Użyj switchValue="All" do diagnostyki błędów.
    2. Użyj switchValue="ActivityTracing" do diagnostyki wydajności.
    3. W razie potrzeby nazwę pliku MdsTrace.log można prefiksować ścieżką.
  6. Jeśli pula aplikacji została wcześniej zatrzymana, uruchom pulę aplikacji MDS w usługach IIS. Możesz też poczekać, aż plik dziennika pojawi się po pewnym czasie i aktywności aplikacji internetowej. Aplikacja internetowa okresowo ponownie ładuje ustawienia konfiguracji z pliku (powinno to potrwać w ciągu kilku minut).

  7. Odtwórz problem i wykonaj te same akcje lub żądania, które doprowadziły do błędu.

  8. Jeśli możesz zatrzymać pulę aplikacji:

    1. Zatrzymaj pulę aplikacji.
    2. Pobierz plik dziennika (może być konieczne oczekiwanie na zakończenie procesów; może wystąpić opóźnienie po zatrzymaniu puli aplikacji).

    Możesz też otworzyć plik dziennika przy użyciu edytora, który nie blokuje pliku (na przykład notepad.exe) i skopiuj odpowiednie komunikaty śledzenia.

  9. Otwórz plik Web.config przy użyciu edytora tekstów i zmień go switchValue z powrotem na Off lub poprzednią wartość.

  10. Ponownie uruchom pulę aplikacji, jeśli została zatrzymana.

    Obsługa błędów: Wszystkie operacje usługi zwracają tablicę lub kolekcję błędów w OperationResult obiekcie komunikatu odpowiedzi. W przypadku wystąpienia błędu tablica błędów jest również serializowana w formacie XML i zapisywana w pliku dziennika aplikacji internetowej dla niektórych switchValue ustawień, zgodnie z powyższym opisem.

Przykład błędu odpowiedzi interfejsu API, który został zapisany w pliku dziennika:

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 pokazano w powyższym przykładzie, każdy błąd zawiera następujące właściwości danych:

Majątek Opis
Code Unikatowy numer błędu identyfikujący typ błędu
Opis Zlokalizowany tekst komunikatu o błędzie
Context.FullyQualifiedName W pełni kwalifikowana nazwa obiektu biorącego udział w błędzie. Niektóre nazwy są unikatowe tylko w ich kontekście. Obiekt będzie kwalifikowany prefiksem nazwy modelu, takim jak ModelName: EntityName
Kontekst.Typ Typ obiektu biorącego udział w błędzie
Kontekst.Identyfikator Identyfikator obiektu biorącego udział w błędzie
Context.Identifier.Id Unikatowy identyfikator GUID obiektu, jeśli jest określony lub dostępny
Context.Identifier.Name Nazwa obiektu, jeśli jest określona lub dostępna
Context.Identifier.InternalId Przestarzałe — nie używaj

Śledzenie problemów z tworzeniem bazy danych MDS

Poniższa procedura umożliwia utworzenie pliku dziennika, który może pomóc w rozwiązywaniu problemów z błędami, które mogą wystąpić podczas tworzenia bazy danych MDS:

  1. Otwórz plik MDSConfigTool.exe.config w ścieżce C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration przy użyciu notepad.exe.

  2. Usuń komentarz z następującego wiersza w pliku, usuwając znaki sufiksu w tym wierszu:

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

  3. Upewnij się, że parametr switchValue jest ustawiony na wartość All.

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

  4. Spróbuj ponownie utworzyć bazę danych. Następnie otwórz plik MdsConfigManagerTrace.log zapisany w folderze C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration i przejrzyj te same informacje dotyczące błędu.

Zasoby zewnętrzne

Ulepszenie rozwiązywania problemów z rejestrowaniem