Udostępnij przez


NARZĘDZIE SQLdiag

Dotyczy:programu SQL Server

Narzędzie SQLdiag to uniwersalne narzędzie do zbierania danych diagnostycznych, które może być uruchamiane jako aplikacja konsolowa lub jako usługa. Możesz użyć SQLdiag do zbierania dzienników i plików danych z serwera SQL oraz innych typów serwerów. Możesz go użyć, aby monitorować swoje serwery w czasie lub rozwiązywać specyficzne problemy z serwerami. SQLdiag ma na celu przyspieszenie i uproszczenie zbierania informacji diagnostycznych dla usług wsparcia technicznego Microsoftu.

Uwaga

To narzędzie może zostać zmienione, a aplikacje lub skrypty, które opierają się na argumentach wiersza polecenia lub zachowaniu, mogą nie działać poprawnie w przyszłych wersjach.

SQLdiag może zbierać następujące typy informacji diagnostycznych:

  • Windows dzienniki wydajności
  • Dzienniki zdarzeń systemu Windows
  • Śledzenia SQL Server Profiler
  • Informacje o blokowaniu w SQL Server
  • Informacje o konfiguracji serwera SQL

Możesz określić typy informacji, które mają być zbierane przez SQLdiag , edytując plik SQLdiag.xmlkonfiguracji , który został opisany w poniższej sekcji.

Syntax

sqldiag
    { [ /? ] }
    |
    {
      [ /I configuration_file ]
      [ /O output_folder_path ]
      [ /P support_folder_path ]
      [ /N output_folder_management_option ]
      [ /M machine1 [ machine2 machineN ] | @machinelistfile ]
      [ /C file_compression_type ]
      [ /B [+]start_time ]
      [ /E [+]stop_time ]
      [ /A SQLdiag_application_name ]
      [ /T { tcp [ ,port ] | np | lpc } ]
      [ /Q ] [ /G ] [ /R ] [ /U ] [ /L ] [ /X ]
    }
    |
    { [ START | STOP | STOP_ABORT ] }
    |
    { [ START | STOP | STOP_ABORT ] /A SQLdiag_application_name }

Arguments

/?

Wyświetla informacje o użyciu.

/I plik_konfiguracyjny

Ustawia plik konfiguracyjny do użycia przez SQLdiag. Domyślnie /I jest ustawiona na wartość SQLdiag.xml.

/O output_folder_path

Przekierowuje dane wyjściowe SQLdiag do określonego folderu. /O Jeśli nie określono opcji, dane wyjściowe SQLdiag są zapisywane w podfolderze o nazwie SQLDIAG w folderze startowym SQLdiag. SQLDIAG Jeśli folder nie istnieje, SQLdiag próbuje go utworzyć.

Uwaga

Lokalizacja folderu wyjściowego jest określona względem lokalizacji folderu obsługi, którą można określić za pomocą polecenia /P. Aby ustawić zupełnie inną lokalizację folderu wyjściowego, określ pełną ścieżkę katalogu dla elementu /O.

/P support_folder_path

Ustawia ścieżkę do folderu wsparcia. Domyślnie /P jest ustawiana na folder, w którym znajduje się plik wykonywalny SQLdiag . Folder pomocy technicznej zawiera pliki obsługi SQLdiag , takie jak plik konfiguracji XML, skrypty Transact-SQL i inne pliki używane przez narzędzie podczas zbierania danych diagnostycznych. Jeśli używasz tej opcji do określenia alternatywnej ścieżki plików obsługi, SQLdiag automatycznie kopiuje pliki pomocy technicznej wymagane do określonego folderu, jeśli jeszcze nie istnieją.

Aby ustawić bieżący folder jako ścieżkę obsługi, określ %cd% w wierszu polecenia w następujący sposób:

sqldiag /P %cd%

/N output_folder_management_option

Ustawia, czy SQLdiag nadpisuje lub zmienia nazwę folderu wynikowego podczas uruchamiania. Dostępne opcje:

  • 1 = Zastępuje folder wyjściowy (ustawienie domyślne)
  • 2 = Po uruchomieniu sqLdiag zmienia nazwę folderu wyjściowego na SQLDIAG_00001, SQLDIAG_00002itd. Po zmianie nazwy bieżącego folderu wyjściowego SQLdiag zapisuje dane wyjściowe w domyślnym folderze SQLDIAGwyjściowym .

SqLdiag nie dołącza danych wyjściowych do bieżącego folderu wyjściowego podczas uruchamiania. Może on zastąpić domyślny folder wyjściowy (opcja 1) lub zmienić nazwę folderu (opcja 2), a następnie zapisuje dane wyjściowe w nowym domyślnym folderze wyjściowym o nazwie SQLDIAG.

/M machine1 [ machine2machineN ] | @machinelistfile

Nadpisuje maszyny określone w pliku konfiguracyjnym. Domyślnie plik konfiguracji to SQLdiag.xml, lub jest ustawiony z parametrem /I . Podając więcej niż jedną maszynę, oddziel każdą nazwę maszyny spacją.

Opcja @machinelistfile określa nazwę pliku listy maszyn, który ma być przechowywany w pliku konfiguracji.

/C typ_kompresji_pliku

Ustawia typ kompresji plików wykorzystywany w folderze wynikowym SQLdiag. Dostępne opcje:

  • 0 = brak (domyślnie)
  • 1 = używa kompresji NTFS

/B [+]start_time

Określa datę i godzinę rozpoczęcia zbierania danych diagnostycznych w następującym formacie: yyyyMMdd_HH:mm:ss

Czas jest podawany w formacie 24-godzinnym. Na przykład 14:00 należy określić jako 14:00:00.

Użyj + bez daty (tylko HH:mm:ss), aby określić godzinę względną dla bieżącej daty i godziny. Jeśli na przykład określisz /B +02:00:00, SQLdiag będzie czekać 2 godziny przed rozpoczęciem zbierania informacji.

Nie wstawiaj spacji między + a określonym start_time.

Jeśli określisz czas rozpoczęcia, który już minął, SQLdiag wymusza zmianę daty rozpoczęcia, aby data i godzina były w przyszłości. Jeśli na przykład określisz /B 01:00:00 , a bieżąca godzina to 08:00:00, narzędzie SQLdiag wymusza zmianę daty rozpoczęcia, tak aby data rozpoczęcia przypadała następnego dnia.

SQLdiag używa czasu lokalnego na komputerze, na którym jest uruchomione narzędzie.

/E [+]stop_time

Określa datę i godzinę zatrzymania zbierania danych diagnostycznych w następującym formacie: yyyyMMdd_HH:mm:ss

Czas jest podawany w formacie 24-godzinnym. Na przykład 2:00 P.M. należy określić jako 14:00:00.

Użyj + bez daty (tylko HH:mm:ss), aby określić godzinę względem daty i godziny rozpoczęcia. Jeśli na przykład określisz godzinę rozpoczęcia i godzinę zakończenia przy użyciu polecenia /B +02:00:00 /E +03:00:00, SQLdiag czeka 2 godziny przed rozpoczęciem zbierania informacji, zbiera informacje przez 3 godziny przed zatrzymaniem i zamknięciem. Jeśli /B nie zostanie określony, sqLdiag rozpoczyna zbieranie diagnostyki natychmiast i kończy się w dniu i o godzinie określonej przez /E.

Nie wstawiaj spacji między + a określonym start_time lub end_time.

SQLdiag używa czasu lokalnego na komputerze, na którym jest uruchomione narzędzie.

/A SQLdiag_application_name

Umożliwia uruchamianie wielu instancji narzędzia SQLdiag na tej samej instancji SQL Server.

Każda SQLdiag_application_name identyfikuje inną instancję SQLdiag. Nie istnieje żadna relacja między instancją SQLdiag_application_name a nazwą instancji SQL Server.

SQLdiag_application_name może być używane do uruchomienia lub zatrzymania konkretnej instancji usługi SQLdiag.

W tym przykładzie zastąp <SQLdiag_application_name> odpowiednią wartością dla SQLdiag_application_name:

sqldiag START /A <SQLdiag_application_name>

Można go również użyć z opcją /R do rejestrowania określonego wystąpienia SQLdiag jako usługi. W tym przykładzie zastąp <SQLdiag_application_name> odpowiednią wartością dla SQLdiag_application_name:

sqldiag /R /A <SQLdiag_application_name>

Uwaga

SQLdiag automatycznie dodaje prefiks DIAG$ do określonej nazwy instancji dla SQLdiag_application_name. To zapewnia sensowną nazwę usługi, jeśli zarejestrujesz SQLdiag jako usługę.

/T protokoł

Nawiązuje połączenie z wystąpieniem programu SQL Server przy użyciu jednej z następujących wartości protokołu.

Protokół i port Description
tcp [ ,port ] Transmission Control Protocol/Internet Protocol (TCP/IP). Możesz opcjonalnie podać numer portu dla połączenia.
np Nazwane potoki. Domyślna instancja programu SQL Server domyślnie nasłuchuje na nazwanym potoku \\.\pipe\sql\query oraz \\.\pipe\MSSQL$<instancename>\sql\query dla nazwanej instancji. Nie można połączyć się z instancją SQL Server używając alternatywnej nazwy dla potoku.
Lpc Lokalne wywołanie procedury. Ten protokół pamięci współdzielonej jest dostępny, jeśli klient łączy się z instancją serwera SQL na tym samym komputerze.

/Q

Uruchamia SQLdiag w trybie cichym. /Q Pomija wszystkie monity, takie jak monity o hasło.

/G

Uruchamia SQLdiag w trybie ogólnym. Po zdefiniowaniu /G przy uruchamianiu SQLdiag nie wymusza testów połączenia z SQL Server ani nie sprawdza, czy użytkownik jest członkiem stałej roli serwera sysadmin. Zamiast tego SQLdiag przekazuje kontrolę Windows, aby określić, czy użytkownik ma odpowiednie prawa do zebrania każdych wymaganych danych diagnostycznych.

Jeśli /G nie zostanie określony, narzędzie SQLdiag sprawdza, czy użytkownik jest członkiem grupy Administratorzy systemu Windows i nie zbiera diagnostyki programu SQL Server, jeśli użytkownik nie jest członkiem grupy Administratorzy .

/R

Rejestruje SQLdiag jako usługę. Wszystkie argumenty wiersza poleceń, które są określone podczas rejestrowania SQLdiag jako usługi, są zachowywane dla przyszłych uruchomień tej usługi.

Gdy sqLdiag jest zarejestrowany jako usługa, domyślna nazwa usługi to SQLDIAG. Nazwę usługi można zmienić przy użyciu argumentu /A .

Użyj argumentu START wiersza polecenia, aby uruchomić usługę:

sqldiag START

Możesz również użyć net start polecenia , aby uruchomić usługę:

net start SQLDIAG

/U

Wyrejestrowuje SQLdiag jako usługę.

Użyj argumentu /A również w przypadku wyrejestrowania nazwanego wystąpienia SQLdiag .

/L

Uruchamia SQLdiag w trybie ciągłym, gdy wspomniana jest godzina rozpoczęcia lub godzina zakończenia /B lub /E odpowiednio. Narzędzie SQLdiag automatycznie uruchamia się ponownie po zatrzymaniu zbierania danych diagnostycznych z powodu zaplanowanego zamknięcia. Na przykład, używając argumentów /E lub /X.

Uwaga

SQLdiag ignoruje /L argument, jeśli godzina rozpoczęcia lub godzina zakończenia nie jest określona przy użyciu /B argumentów wiersza polecenia i /E .

Użycie /L nie oznacza trybu usługi. Aby użyć /L podczas uruchamiania SQLdiag jako usługa, określ go w wierszu polecenia podczas rejestrowania usługi.

/X

Uruchamia narzędzie SQLdiag w trybie migawki. SQLdiag tworzy migawkę wszystkich skonfigurowanych diagnostyk, a następnie zamyka się automatycznie.

START | STOP | STOP_ABORT

Uruchamia lub zatrzymuje usługę SQLdiag. STOP_ABORT wymusza zamknięcie usługi tak szybko, jak to możliwe bez kończenia zbierania danych diagnostycznych, które są obecnie zbierane.

Gdy są używane argumenty kontroli usługi, muszą być pierwszym argumentem używanym w wierszu polecenia. Na przykład:

sqldiag START

/A Tylko argument, który określa nazwane wystąpienie SQLdiag, może być używany z START, STOPlub STOP_ABORT do kontrolowania określonego wystąpienia usługi SQLdiag. W tym przykładzie zastąp <SQLdiag_application_name> odpowiednią wartością dla SQLdiag_application_name:

sqldiag START /A <SQLdiag_application_name>

Wymagania dotyczące zabezpieczeń

Chyba że SQLdiag jest uruchamiany w trybie ogólnym (przez określenie argumentu /G wiersza polecenia), użytkownik, który uruchamia SQLdiag, musi być członkiem grupy Administratorzy systemu Windows i członkiem stałej roli serwera sysadmin programu SQL Server. Domyślnie SQLdiag łączy się z SQL Server, używając uwierzytelniania Windows, ale obsługuje także uwierzytelnianie SQL Server.

Zagadnienia dotyczące wydajności

Wpływ na wydajność uruchamiania narzędzia SQLdiag zależy od typu danych diagnostycznych, które zostały skonfigurowane do zbierania. Na przykład, jeśli skonfigurowałeś SQLdiag do zbierania informacji o śledzeniu przy użyciu SQL Server Profiler, im więcej klas zdarzeń wybierzesz do śledzenia, tym bardziej wpłynie to na wydajność serwera.

Wpływ wydajności uruchamiania sqldiag jest w przybliżeniu odpowiednikiem sumy kosztów zbierania skonfigurowanej diagnostyki oddzielnie. Na przykład uzyskiwanie śladu za pomocą SQLdiag wiąże się z takim samym kosztem wydajności jak korzystanie z SQL Server Profiler. Wpływ na wydajność korzystania z narzędzia SQLdiag jest niewielki.

Wymagane miejsce na dysku

Ponieważ SQLdiag może zbierać różne typy informacji diagnostycznych, wolne miejsce na dysku wymagane do uruchomienia SQLdiag różni się. Ilość zebranych informacji diagnostycznych zależy od charakteru i ilości obciążenia, które jest przetwarzane przez serwer i może wahać się od kilku megabajtów do kilku gigabajtów.

Pliki konfiguracji

Podczas uruchamiania SQLdiag odczytuje plik konfiguracyjny oraz określone argumenty wiersza poleceń. Określasz rodzaje informacji diagnostycznych, które SQLdiag zbiera w pliku konfiguracyjnym. Domyślnie SQLdiag używa SQLdiag.xml pliku konfiguracji, który jest wyodrębniany za każdym razem, gdy narzędzie jest uruchamiane i znajduje się w folderze uruchamiania narzędzia SQLdiag . Plik konfiguracji używa schematu XML, SQLDiag_schema.xsd, który jest również wyodrębniany do katalogu startowego narzędzia z pliku wykonywalnego za każdym razem, gdy SQLdiag jest uruchamiany.

Edytowanie plików konfiguracji

Możesz skopiować i edytować SQLdiag.xml , aby zmienić typy danych diagnostycznych zbieranych przez SQLdiag . Podczas edycji pliku konfiguracyjnego zawsze używaj edytora XML, który może sprawdzić poprawność pliku konfiguracyjnego względem jego schematu XML, na przykład Management Studio. Nie należy edytować SQLdiag.xml bezpośrednio. Zamiast tego utwórz kopię SQLdiag.xml pliku i zmień jej nazwę na nową nazwę pliku w tym samym folderze. Następnie zmodyfikuj nowy plik i użyj argumentu /I , aby przekazać go do narzędzia SQLdiag.

Edytowanie pliku konfiguracji, gdy sqLdiag działa jako usługa

Jeśli uruchomiono już narzędzie SQLdiag jako usługę i musisz edytować plik konfiguracji, wyrejestruj SQLDIAG usługę, określając /U argument wiersza polecenia, a następnie ponownie zarejestruj usługę przy użyciu argumentu /R wiersza polecenia. Wyrejestrowanie i ponowne zarejestrowanie usługi usuwa stare informacje konfiguracyjne, które zostały zapisane w pamięci podręcznej rejestru Windows.

Folder wyjściowy

Jeśli nie określisz folderu wyjściowego z argumentem /O , SQLdiag utworzy podfolder o nazwie SQLDIAG w folderze startowym SQLdiag . W przypadku zbierania informacji diagnostycznych obejmujących śledzenie dużych woluminów, takich jak SQL Server Profiler, upewnij się, że folder wyjściowy znajduje się na dysku lokalnym z wystarczającą ilością miejsca do przechowywania żądanych danych wyjściowych diagnostycznych.

Po ponownym uruchomieniu sqLdiag zastępuje zawartość folderu wyjściowego. Aby tego uniknąć, określ /N 2 w wierszu polecenia.

Proces zbierania danych

Po uruchomieniu narzędzia SQLdiag wykonuje kontrole inicjowania niezbędne do zbierania danych diagnostycznych określonych w elemecie SQLdiag.xml. Ten proces może potrwać kilka sekund. Po uruchomieniu aplikacji konsolowej i rozpoczęciu zbierania danych diagnostycznych przez SQLdiag, wyświetli się komunikat informujący, że kolekcja SQLdiag została rozpoczęta oraz że możesz nacisnąć CTRL+C, aby ją zatrzymać. Gdy narzędzie SQLdiag jest uruchamiane jako usługa, podobny komunikat jest zapisywany w dzienniku zdarzeń systemu Windows.

Jeśli używasz narzędzia SQLdiag do diagnozowania problemu, który można odtworzyć, zaczekaj na wyświetlenie tego komunikatu przed odtworzeniem problemu na serwerze.

SQLdiag zbiera większość danych diagnostycznych równolegle. Wszystkie informacje diagnostyczne są zbierane poprzez połączenie z narzędziami, takimi jak narzędzie SQL Server sqlcmd lub procesor poleceń Windows, z wyjątkiem sytuacji, gdy informacje są zbierane z dzienników wydajności Windows i dzienników zdarzeń. SQLdiag używa jednego wątku roboczego na każdy komputer do monitorowania zbierania danych diagnostycznych tych innych narzędzi, często równocześnie czekając na zakończenie pracy kilku narzędzi. Podczas procesu zbierania SQLdiag kieruje dane wyjściowe z każdej diagnostyki do folderu wyjściowego.

Zatrzymywanie zbierania danych

Po rozpoczęciu zbierania danych diagnostycznych sqLdiag kontynuuje to działanie, chyba że zatrzymasz go ręcznie za pomocą Ctrl+Cmetody lub utworzysz sqldiag.stop plik albo skonfigurujesz go tak, aby zatrzymał się w określonym czasie. Narzędzie SQLdiag można skonfigurować tak, aby zatrzymywało się w określonym czasie przy użyciu argumentu /E lub przy użyciu argumentu /X , co powoduje uruchamianie narzędzia SQLdiag w trybie migawki.

Po zatrzymaniu narzędzia SQLdiag zatrzymuje całą diagnostykę, która została uruchomiona. Na przykład zatrzymuje ślady narzędzia SQL Server Profiler, które zbierał, zatrzymuje wykonywanie skryptów Transact-SQL, które były uruchomione, i zatrzymuje wszystkie procesy podrzędne, które zostały uruchomione podczas zbierania danych. Po zakończeniu zbierania danych diagnostycznych, SQLdiag zamyka się.

Zatrzymaj SQLdiag podczas uruchamiania jako aplikacja konsolowa

Jeśli używasz narzędzia SQLdiag jako aplikacji konsolowej, naciśnij CTRL+C w oknie konsoli, w którym uruchomiono narzędzie SQLdiag , aby go zatrzymać. Po naciśnięciu CTRL+C w oknie konsoli zostanie wyświetlony komunikat informujący o zakończeniu zbierania danych SQLdiag i poczekaj na zamknięcie procesu, co może potrwać kilka minut.

Naciśnij dwukrotnie Ctrl+C, aby zakończyć wszystkie podrzędne procesy diagnostyczne i natychmiast zakończyć działanie aplikacji.

Zatrzymywanie narzędzia SQLdiag podczas uruchamiania jako usługi

Jeśli używasz narzędzia SQLdiag jako usługi, uruchom polecenie sqldiag STOP w folderze startowym SQLdiag , aby go zatrzymać. Możesz też zatrzymać usługi SQLdiag w apletu Services.msc .

Uwaga

Wstrzymanie usługi SQLdiag nie jest obsługiwane. Jeśli spróbujesz wstrzymać usługę SQLdiag , zostanie zatrzymana po zakończeniu zbierania danych diagnostycznych, które zbierała po jej wstrzymaniu. Jeśli ponownie uruchomisz SQLdiag po jego zatrzymaniu, aplikacja zostanie ponownie uruchomiona i nadpisze folder wyjściowy. Aby uniknąć zastępowania folderu wyjściowego, określ /N 2 w wierszu polecenia.

Jeśli używasz wielu wystąpień SQLdiag na tym samym komputerze, możesz również przekazać nazwę wystąpienia SQLdiag w wierszu poleceń, gdy zatrzymujesz usługę. Na przykład, aby zatrzymać instancję SQLdiag o nazwie Instance1, użyj następującej składni:

sqldiag STOP /A Instance1

/A jest jedynym argumentem wiersza polecenia, który może być używany z START, STOPlub STOP_ABORT. Jeśli musisz określić nazwane wystąpienie SQLdiag z jednym z czasowników sterujących usługi, określ /A po czasowniku sterowania w wierszu polecenia, jak pokazano w poprzednim przykładzie składni. Gdy używane są czasowniki kontrolne, muszą być pierwszym argumentem w wierszu poleceń.

Aby jak najszybciej zatrzymać usługę, uruchom polecenie sqldiag STOP_ABORT w folderze uruchamiania narzędzia. To polecenie przerywa zbieranie danych diagnostycznych wykonywane obecnie, bez czekania na ich zakończenie.

Uwaga

Użyj sqldiag STOP lub sqldiag STOP_ABORT aby zatrzymać usługę SQLdiag. Nie używaj konsoli usług systemu Windows, aby zatrzymać sqldiag lub inne usługi programu SQL Server.

Zatrzymaj narzędzie SQLdiag używając pliku sqldiag.stop

SqLdiag zamyka się również automatycznie po znalezieniu pliku o nazwie sqldiag.stop w folderze narzędzia \Output . Ta opcja ma zastosowanie niezależnie od tego, czy SQLdiag działa jako aplikacja konsolowa, czy jako usługa. .stop Utworzenie pliku może być przydatne, gdy chcesz programowo zamknąć sqLdiag po wystąpieniu jakiegoś zdarzenia, ale nie wiesz z wyprzedzeniem czasu wystąpienia tego zdarzenia. Zawartość pliku sqldiag.stop jest nieistotna. Jedną z opcji, oprócz ręcznego tworzenia pliku, jest użycie polecenia jak poniżej w pliku wsadowym do utworzenia sqldiag.stop:

ECHO stop > F:\PSSDIAG\Output\sqldiag.stop

Inną opcją jest użycie programu PowerShell:

Set-Content -Value "stop" -Path "F:\PSSDIAG\Output\sqldiag.stop"

Automatyczne uruchamianie i zatrzymywanie sqldiag

Aby automatycznie uruchomić i zatrzymać zbieranie danych diagnostycznych w wyznaczonym czasie, użyj argumentów /B <start_time> i /E <stop_time>, używając notacji 24-godzinnej. Jeśli na przykład rozwiązujesz problem, który stale pojawia się o około 02:00:00, możesz skonfigurować narzędzie SQLdiag , aby automatycznie rozpocząć zbieranie danych diagnostycznych o godzinie 01:45 i automatycznie zatrzymać się o godzinie 03:00:00.

Użyj argumentów /B oraz /E, aby określić czas rozpoczęcia i zatrzymania. Użyj notacji 24-godzinnej, aby określić dokładną datę i godzinę rozpoczęcia oraz zakończenia w ogólnym formacie yyyyMMdd_HH:mm:ss. Poniższy przykład rozpoczyna zbieranie danych o godzinie 01:45 i zatrzymuje go o godzinie 3:00.

sqldiag /B 01:45:00 /E 03:00:00

Aby określić względny czas rozpoczęcia lub zatrzymania, poprzedź czasy rozpoczęcia i zatrzymania przy użyciu + i pomiń część daty (yyyyMMdd_), jak pokazano w poniższym przykładzie. Powoduje to, że SQLdiag czeka godzinę przed rozpoczęciem zbierania informacji, a następnie zbiera informacje przez dwie i pół godziny, zanim się zatrzyma i zakończy działanie.

sqldiag /B +01:00:00 /E +02:30:00

Gdy określony jest względny start_time, SQLdiag rozpoczyna działanie w czasie względnym do bieżącej daty i godziny. Gdy określony jest względny end_time, SQLdiag kończy się w czasie, który jest względny do określonego start_time. Jeśli określona przez Ciebie data i godzina rozpoczęcia lub zakończenia znajduje się w przeszłości, SQLdiag wymusza zmianę daty rozpoczęcia tak, aby data i godzina rozpoczęcia były w przyszłości.

To ma ważne konsekwencje dla wybranych przez Ciebie dat rozpoczęcia i zakończenia. Rozważmy następujący przykład:

sqldiag /B +01:00:00 /E 08:30:00

Jeśli obecny czas to 08:00, czas zakończenia minie, zanim zbieranie danych diagnostycznych faktycznie się rozpocznie. Ponieważ SQLdiag automatycznie dostosowuje daty rozpoczęcia i zakończenia do następnego dnia, gdy wypadają w przeszłości, w tym przykładzie zbieranie danych diagnostycznych rozpoczyna się dzisiaj o 09:00 (względny czas rozpoczęcia został ustawiony na 1 godzinę od teraz za pomocą +) i trwa do 08:30 następnego ranka.

Zatrzymywanie i ponowne uruchamianie narzędzia SQLdiag w celu zbierania codziennej diagnostyki

Aby zebrać określony zestaw diagnostyki codziennie bez konieczności ręcznego uruchamiania i zatrzymywania sqldiag, użyj argumentu /L . Argument /L powoduje ciągłe uruchamianie narzędzia SQLdiag przez automatyczne ponowne uruchomienie po zaplanowanym zamknięciu. Po określeniu /L, gdy SQLdiag się zatrzymuje, ponieważ osiągnął czas zakończenia określony argumentem /E, lub gdy zatrzymuje się, ponieważ jest uruchamiany w trybie migawki przy użyciu argumentu /X, SQLdiag uruchamia się ponownie zamiast się zamykać.

Następujący przykład określa, że SQLdiag działa w trybie ciągłym, aby automatycznie uruchomić się ponownie po zebraniu danych diagnostycznych, które odbywa się między 03:00:00 a 05:00:00.

sqldiag /B 03:00:00 /E 05:00:00 /L

W poniższym przykładzie określono, że narzędzie SQLdiag działa w trybie ciągłym w celu automatycznego ponownego startu po utworzeniu zrzutu danych diagnostycznych o godzinie 03:00:00.

sqldiag /B 03:00:00 /X /L

Uruchamianie narzędzia SQLdiag jako usługi

Jeśli chcesz użyć narzędzia SQLdiag do zbierania danych diagnostycznych przez długi czas, w którym może być konieczne wylogowanie się z komputera, na którym jest uruchomiona sqldiag , możesz uruchomić je jako usługę.

Rejestrowanie narzędzia SQLdiag w celu uruchomienia jako usługi

Narzędzie SQLdiag można zarejestrować, aby uruchomić jako usługę, określając /R argument w wierszu polecenia. Rejestruje to SQLdiag do uruchomienia jako usługa. Nazwa usługi SQLdiag to SQLDIAG. Wszystkie inne argumenty określone w wierszu polecenia podczas rejestrowania SQLdiag jako usługi są zachowywane i ponownie używane podczas uruchamiania usługi.

Aby zmienić domyślną SQLDIAG nazwę usługi, użyj argumentu /A wiersza polecenia, aby określić inną nazwę. SQLdiag automatycznie prefiksuje DIAG$ do dowolnej nazwy wystąpienia SQLdiag określonej za pomocą /A dla utworzenia rozsądnych nazw usług.

Wyrejestrowywanie usługi SQLDIAG

Aby wyrejestrować usługę, określ argument /U. Odrejestrowanie SQLdiag jako usługi również usuwa klucze rejestru Windows dla tej usługi.

Uruchamianie lub ponowne uruchamianie usługi SQLDIAG

Aby uruchomić lub ponownie uruchomić usługę SQLDIAG , uruchom polecenie sqldiag START z poziomu wiersza polecenia.

Jeśli używasz wielu wystąpień SQLdiag przy użyciu argumentu /A , możesz również przekazać nazwę wystąpienia SQLdiag w wierszu polecenia po uruchomieniu usługi. Aby na przykład uruchomić wystąpienie SQLdiag o nazwie Instance1, użyj następującej składni:

sqldiag START /A Instance1

Możesz również użyć net start polecenia , aby uruchomić usługę SQLDIAG .

Kiedy ponownie uruchomisz SQLdiag, nadpisze zawartość w obecnym folderze wynikowym. Aby tego uniknąć, określ /N 2 w wierszu polecenia, aby zmienić nazwę folderu wyjściowego podczas uruchamiania narzędzia.

Wstrzymanie usługi SQLdiag nie jest obsługiwane.

Uruchamianie wielu wystąpień SQLdiag

Uruchom wiele wystąpień sqldiag na tym samym komputerze, określając /A <SQLdiag_application_name> w wierszu polecenia. Jest to przydatne do jednoczesnego zbierania różnych zestawów diagnostycznych z tej samej instancji serwera SQL. Na przykład, możesz skonfigurować nazwany instancję SQLdiag do ciągłego przeprowadzania lekkiego zbierania danych. Następnie, jeśli wystąpi konkretny problem na SQL Server, możesz uruchomić domyślne wystąpienie SQLdiag, aby zebrać diagnostykę tego problemu lub zebrać zestaw diagnostyczny, który usługi obsługi klienta firmy Microsoft proszą cię o zebranie w celu zdiagnozowania problemu.

Zbieranie danych diagnostycznych z klastrowanych wystąpień programu SQL Server

SQLdiag obsługuje zbieranie danych diagnostycznych z klastrowych instancji SQL Server. Aby zebrać diagnostykę z klastrowanych wystąpień programu SQL Server, upewnij się, że dla atrybutu name elementu <Machine> określono "." w pliku konfiguracji SQLdiag.xml i nie określaj argumentu /G w wierszu poleceń. Domyślnie "." jest określony dla atrybutu name w pliku konfiguracji, a /G argument jest wyłączony. Zazwyczaj nie trzeba edytować pliku konfiguracji ani zmieniać argumentów wiersza polecenia podczas zbierania z klastrowanego wystąpienia programu SQL Server.

Gdy "." jest określona jako nazwa maszyny, SQLdiag wykrywa, że działa w klastrze, a jednocześnie pobiera informacje diagnostyczne ze wszystkich wystąpień wirtualnych programu SQL Server zainstalowanych w klastrze. Jeśli chcesz zebrać informacje diagnostyczne tylko z jednego wirtualnego wystąpienia SQL Server uruchomionego na komputerze, określ to wirtualne wystąpienie SQL Server dla atrybutu name elementu <Machine> w SQLdiag.xml.

Uwaga

Aby zebrać informacje śledzenia programu SQL Server Profiler z klastrowanych wystąpień programu SQL Server, należy włączyć udziały administracyjne (ADMIN$) w klastrze.