Megosztás:


SQLdiag segédprogram

A következőkre vonatkozik:SQL Server

A SQLdiag segédprogram egy általános célú diagnosztikai gyűjtőeszköz, amely futtatható konzolalkalmazásként vagy szolgáltatásként. A SQLdiag használatával naplókat és adatfájlokat gyűjthet a SQL Serverről és más típusú szerverekről, valamint használhatja azt szerverei hosszú távú monitorozására vagy konkrét problémák elhárítására. A SQLdiag célja a diagnosztikai információk összegyűjtésének felgyorsítása és egyszerűsítése, hogy segítséget nyújtson a Microsoft Ügyfélszolgálat számára.

Megjegyzés:

Ez a segédprogram változhat, és a parancssori argumentumaira vagy viselkedésére támaszkodó alkalmazások vagy szkriptek nem működnek megfelelően a jövőbeli kiadásokban.

A SQLdiag az alábbi típusú diagnosztikai információkat gyűjtheti össze:

  • Windows teljesítménynaplók
  • Windows-eseménynaplók
  • SQL Server Profiler nyomkövetések
  • SQL Server blokkolási információk
  • SQL Server konfigurációs információk

A konfigurációs fájl szerkesztésével megadhatja, hogy az SQLdiag.xml milyen típusú információkat gyűjtsön, amelyet a következő szakaszban ismertetünk.

Szemantika

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 }

Érvek

/?

Megjeleníti a használati információkat.

/ konfigurációs_fájl

Beállítja a SQLdiag használatához szükséges konfigurációs fájlt. Alapértelmezés szerint a /ISQLdiag.xmlértékre van állítva.

/O output_folder_path

Az SQLdiag kimenetet a megadott mappába irányítja át. Ha a beállítás nincs megadva, a /Orendszer az SQLdiag-kimenetet az SQLDIAG indítási mappája alatt található almappába írja. Ha a SQLDIAG mappa nem létezik, az SQLdiag megpróbálja létrehozni.

Megjegyzés:

A kimeneti mappa helye a támogatási mappa helyéhez viszonyítva van, amely a következővel /Padható meg: A kimeneti mappa teljesen eltérő helyének beállításához adja meg a teljes könyvtár elérési útját /O.

/P support_folder_path

Beállítja a támogatási mappa útvonalát. Alapértelmezés szerint arra a mappára van beállítva, /P amelyben az SQLdiag végrehajtható fájl található. A támogatási mappa SQLdiag-támogatási fájlokat tartalmaz, például az XML-konfigurációs fájlt, Transact-SQL szkripteket és egyéb fájlokat, amelyeket a segédprogram a diagnosztikai gyűjtemény során használ. Ha ezzel a beállítással alternatív támogatási fájlok elérési útját adja meg, az SQLdiag automatikusan átmásolja a szükséges támogatási fájlokat a megadott mappába, ha még nem léteznek.

Ha az aktuális mappát támogatási útvonalként szeretné beállítani, adja meg %cd% a parancssorban az alábbiak szerint:

sqldiag /P %cd%

/N output_folder_management_option

Beállítja, hogy az SQLdiag indításakor felülírja vagy átnevezze-e a kimeneti mappát. Elérhető lehetőségek:

  • 1 = Felülírja a kimeneti mappát (alapértelmezett)
  • 2 = Amikor az SQLdiag elindul, átnevezi a kimeneti mappát SQLDIAG_00001, SQLDIAG_00002és így tovább. Az aktuális kimeneti mappa átnevezése után az SQLdiag az alapértelmezett kimeneti mappába SQLDIAGírja a kimenetet.

Az SQLdiag nem fűzi hozzá a kimenetet az aktuális kimeneti mappához az indításkor. Csak felülírhatja az alapértelmezett kimeneti mappát (1. lehetőség), vagy átnevezheti a mappát (2. lehetőség), majd a kimenetet az új, alapértelmezett kimeneti mappába SQLDIAGírja.

/M machine1 [ machine2machineN ] | @machinelistfile

Felülírja a konfigurációs fájlban megadott gépeket. Alapértelmezés szerint a konfigurációs fájl a SQLdiag.xml, vagy a /I paraméterrel van beállítva. Amikor több gépet is megad, különítse el minden gép nevét egy szóközzel.

A @machinelistfile beállítás megadja a konfigurációs fájlban tárolni kívánt géplistafájl nevét.

/C fájltömörítés_típusa

Beállítja a fájltömörítés típusát a SQLdiag kimeneti mappa fájlain. Elérhető lehetőségek:

  • 0 = nincs (alapértelmezett)
  • 1 = NTFS tömörítést használ

/B [+]start_time

Megadja a diagnosztikai adatok gyűjtésének megkezdésének dátumát és idejét a következő formátumban: yyyyMMdd_HH:mm:ss

Az idő 24 órás formátumban van megadva. Például 14:00-kor kell megadni a következőt 14:00:00: .

Dátum nélkül (csak óó:mm:ss) az aktuális dátumhoz és időponthoz viszonyított idő megadásához használható + . Ha például megadja /B +02:00:00, az SQLdiag 2 órát vár, mielőtt elkezdi az adatok gyűjtését.

Ne illesszen be szóközt a + és a megadott start_time közé.

Ha egy olyan kezdési időpontot ad meg, amely a múltban van, a SQLdiag kényszeríti a kezdési dátum módosítását, így a kezdési dátum és időpont a jövőben lesz. Ha például megadja /B 01:00:00 , és az aktuális idő 08:00:00, az SQLdiag kényszerítve módosítja a kezdő dátumot, hogy a kezdő dátum a következő nap legyen.

Az SQLdiag a helyi időt használja azon a számítógépen, amelyen a segédprogram fut.

/E [+]stop_time

Megadja a diagnosztikai adatok gyűjtésének leállításának dátumát és idejét a következő formátumban: yyyyMMdd_HH:mm:ss

Az idő 24 órás formátumban van megadva. Például 14:00-kor kell megadni a következőt 14:00:00: .

Dátum nélkül (csak óó:mm:ss) a + dátumhoz és időponthoz viszonyított időpont megadásához használható. Ha például a kezdési és a befejezési időpontot a használatával /B +02:00:00 /E +03:00:00adja meg, az SQLdiag 2 órát vár, mielőtt elkezdi az adatgyűjtést, majd 3 órán keresztül gyűjt adatokat, mielőtt leáll és kilép. Ha /B nincs megadva, az SQLdiag azonnal megkezdi a diagnosztikák gyűjtését, és a megadott /Enapon és időpontban ér véget.

Ne illesszen be szóközt a +és a megadott start_time vagy end_time közé.

Az SQLdiag a helyi időt használja azon a számítógépen, amelyen a segédprogram fut.

/A SQLdiag_application_name

Lehetővé teszi több SQLdiag segédprogram példány egyidejű futtatását ugyanazon SQL Server példányon.

Minden egyes SQLdiag_application_name egy másik SQLdiag példányt azonosít. Nincs kapcsolat a SQLdiag_application_name példány és a SQL Server példánynév között.

A SQLdiag_application_name használható egy adott SQLdiag szolgáltatás példányának elindítására vagy leállítására.

Ebben a példában cserélje le <SQLdiag_application_name> a SQLdiag_application_name megfelelő értékére:

sqldiag START /A <SQLdiag_application_name>

Használható az /R opcióval a SQLdiag adott példányának szolgáltatásként történő regisztrálására is. Ebben a példában cserélje le <SQLdiag_application_name> a SQLdiag_application_name megfelelő értékére:

sqldiag /R /A <SQLdiag_application_name>

Megjegyzés:

Az SQLdiag automatikusan előtagot ad DIAG$a SQLdiag_application_name által megadott példánynévhez. Ez egy ésszerű szolgáltatásnevet biztosít abban az esetben, ha a SQLdiag-ot szolgáltatásként regisztrálja.

/T protokoll

A következő protokollértékek egyikével csatlakozik az SQL Server egy példányához.

Protokoll (és port) Description
tcp [ ,port ] Transmission Control Protocol/Internet Protocol (TCP/IP). Megadhat egy portszámot a kapcsolathoz.
Np Nevesített csövek. Alapértelmezés szerint a SQL Server alapértelmezett példánya egy megnevezett példánhoz a \\.\pipe\sql\query és a \\.\pipe\MSSQL$<instancename>\sql\query nevű csöveken hallgat. Az SQL Server egy példányához nem tud csatlakozni alternatív csatornanév használatával.
Lpc Helyi eljáráshívás. Ez a megosztott memória protokoll elérhető, ha az ügyfél a SQL Server egy példányához csatlakozik ugyanazon a számítógépen.

/Q

Lefuttatja a SQLdiag programot csendes módban. /Q letiltja az összes kérést, például a jelszókéréseket.

/G

Általános módban futtatja az SQLdiag parancsot. Ha /G meg van adva, az indításkor az SQLdiag nem kényszeríti ki az SQL Server kapcsolati ellenőrzését, és nem ellenőrzi, hogy a felhasználó tagja-e a sysadmin rögzített kiszolgálói szerepkörnek. Ehelyett az SQLdiag hagyja a Windowsra meghatározni, hogy a felhasználó rendelkezik-e megfelelő jogosultságokkal az egyes kért diagnosztikai adatok gyűjtéséhez.

Ha /G nincs megadva, az SQLdiag ellenőrzi, hogy a felhasználó tagja-e a Windows Rendszergazdák csoportjának , és nem gyűjti az SQL Server-diagnosztikát, ha a felhasználó nem rendszergazdai csoporttag.

/R

Az SQLdiag szolgáltatást regisztrál. Az SQLdiag szolgáltatásként való regisztrálásakor megadott parancssori argumentumok megmaradnak a szolgáltatás későbbi futtatásaihoz.

Ha az SQLdiag szolgáltatásként van regisztrálva, az alapértelmezett szolgáltatásnév.SQLDIAG A szolgáltatás nevét az argumentum használatával módosíthatja /A .

A szolgáltatás elindításához használja a START parancssori argumentumot:

sqldiag START

A szolgáltatás elindításához a net start parancsot is használhatja:

net start SQLDIAG

/U

Az SQLdiag szolgáltatásként való regisztrációjának megszüntetése.

Akkor is használja az /A argumentumot, ha megszüntet egy nevesített SQLdiag-példány regisztrációját.

/L

Folyamatos módban futtatja az SQLdiag-t, ha a kezdő vagy a záró időpont is meg van adva az /B/E argumentumokkal együtt. SQLdiag automatikusan újraindul, miután a diagnosztikai gyűjtés a tervezett leállás miatt megáll. Például a /E vagy a /X argumentumok használatával.

Megjegyzés:

Az SQLdiag figyelmen kívül hagyja az /L argumentumot, ha a kezdő vagy záró időpont nincs megadva a parancssori és /B a /E parancssori argumentumok használatával.

A /L használata nem jelenti a szervizmódot. A SQLdiag szolgáltatásként való futtatásához adja meg a /L a parancssorban, amikor regisztrálja a szolgáltatást.

/X

Futtatja az SQLdiag-ot pillanatkép módúban. A SQLdiag pillanatképet készít az összes konfigurált diagnosztikáról, majd automatikusan leáll.

START | STOP | STOP_ABORT

Elindítja vagy leállítja a SQLdiag szolgáltatást. STOP_ABORT kényszeríti a szolgáltatást, hogy a lehető leggyorsabban leálljon anélkül, hogy befejezi a jelenleg gyűjtött diagnosztikai adatok gyűjtését.

A szolgáltatásvezérlő argumentumok használata esetén a parancssorban elsőként használt argumentumnak kell lenniük. Például:

sqldiag START

Csak az az /A argumentum használható a SQLdiag egy elnevezett példányának meghatározására, amely együtt dolgozik a START, STOP, vagy STOP_ABORT elemekkel a SQLdiag szolgáltatás konkrét példányának vezérléséhez. Ebben a példában cserélje le <SQLdiag_application_name> a SQLdiag_application_name megfelelő értékére:

sqldiag START /A <SQLdiag_application_name>

Biztonsági követelmények

Hacsak az SQLdiag általános módban nem fut (a /G parancssori argumentum megadásával), az SQLdiag-t futtató felhasználónak a Windows Rendszergazdák csoportjának és az SQL Server sysadmin rögzített kiszolgálói szerepkör tagjának kell lennie. Az SQLdiag alapértelmezés szerint Windows-hitelesítéssel csatlakozik az SQL Serverhez, de támogatja az SQL Server-hitelesítést is.

Teljesítménnyel kapcsolatos szempontok

A SQLdiag futtatásának teljesítményhatásai attól függnek, hogy milyen típusú diagnosztikai adatokat állított be a gyűjtésére. Ha például az SQLdiag-ot úgy konfigurálta, hogy a SQL Server Profiler nyomkövetési információit gyűjtse, akkor minél több eseményosztályt választ ki nyomon követéshez, annál inkább befolyásolja a szerver teljesítményét.

A SQLdiag futtatásának teljesítményhatása hozzávetőlegesen egyenlő a külön-külön beállított diagnosztikák gyűjtésének költségeinek összegével. A nyomkövetés SQLdiag használatával történő gyűjtése például ugyanolyan teljesítményköltséggel jár, mint az SQL Server Profilerrel való gyűjtése. Az SQLdiag használatának teljesítményre gyakorolt hatása elhanyagolható.

Szükséges lemezterület

Mivel az SQLdiag különböző diagnosztikai információkat gyűjthet, az SQLdiag futtatásához szükséges szabad lemezterület változó. A gyűjtött diagnosztikai adatok mennyisége a kiszolgáló által feldolgozott számítási feladat jellegétől és mennyiségétől függ, és néhány megabájttól több gigabájtig terjedhet.

Konfigurációs fájlok

Indításkor a SQLdiag beolvassa a konfigurációs fájlt és a megadott parancssori argumentumokat. A konfigurációs fájlban adja meg azokat a diagnosztikai információtípusokat, amelyeket a SQLdiag gyűjt. Alapértelmezés szerint az SQLdiag a SQLdiag.xml konfigurációs fájlt használja, amely minden alkalommal ki lesz nyerve, amikor az eszköz fut, és az SQLdiag segédprogram indítási mappájában található. A konfigurációs fájl a SQLDiag_schema.xsd XML-sémát használja, amelyet az SQLdiag minden futtatásakor ki is nyer a segédprogram indítási könyvtárába a végrehajtható fájlból.

A konfigurációs fájlok szerkesztése

Másolhatja és szerkesztheti SQLdiag.xml az SQLdiag által gyűjtött diagnosztikai adatok típusait. A konfigurációs fájl szerkesztésekor mindig használjon XML-szerkesztőt, amely érvényesítheti a konfigurációs fájlt az XML-sémán, például a Management Studióban. Nem szabad közvetlenül szerkesztenie SQLdiag.xml. Ehelyett készítsen másolatot SQLdiag.xml róla, és nevezze át egy új fájlnévre ugyanabban a mappában. Ezután szerkessze az új fájlt, és az /I argumentum használatával adja át az SQLdiag-nak.

A konfigurációs fájl szerkesztése, amikor az SQLdiag szolgáltatásként fut

Ha már futtatta az SQLdiag szolgáltatást, és szerkesztenie kell a konfigurációs fájlt, törölje a szolgáltatás regisztrációját a SQLDIAG/U parancssori argumentum megadásával, majd regisztrálja újra a szolgáltatást a /R parancssori argumentum használatával. A szolgáltatás regisztrációjának megszüntetése és újbóli regisztrálása eltávolítja a Windows-beállításjegyzékben gyorsítótárazott régi konfigurációs adatokat.

Kimeneti mappa

Ha nem ad meg kimeneti mappát az argumentummal, az /OSQLdiag létrehoz egy almappát SQLDIAG az SQLdiag indítási mappája alatt. A nagy mennyiségű nyomkövetést (például SQL Server Profiler) tartalmazó diagnosztikai információgyűjtéshez győződjön meg arról, hogy a kimeneti mappa egy helyi meghajtón található, és elegendő hely áll rendelkezésre a kért diagnosztikai kimenet tárolásához.

Az SQLdiag újraindítása felülírja a kimeneti mappa tartalmát. Ennek elkerülése érdekében adja meg /N 2 a parancssort.

Adatgyűjtési folyamat

Az SQLdiag indításakor végrehajtja a megadott diagnosztikai adatok SQLdiag.xmlgyűjtéséhez szükséges inicializálási ellenőrzéseket. Ez a folyamat több másodpercet is igénybe vehet. Miután az SQLdiag megkezdte a diagnosztikai adatok gyűjtését, amikor az konzolalkalmazásként fut, megjelenik egy üzenet, amely tájékoztatja, hogy az SQLdiag-gyűjtemény elindult, és a CTRL+C billentyűkombinációt lenyomva állíthatja le. Ha az SQLdiag szolgáltatásként fut, a rendszer hasonló üzenetet ír a Windows eseménynaplójába.

Ha SQLdiag használatával diagnosztizál egy reprodukálható problémát, várjon, amíg megkapja ezt az üzenetet, mielőtt reprodukálja a problémát a kiszolgálón.

Az SQLdiag a legtöbb diagnosztikai adatot párhuzamosan gyűjti. Az összes diagnosztikai információ úgy kerül összegyűjtésre, hogy csatlakozunk eszközökhöz, mint például a SQL Server sqlcmd segédprogram vagy a Windows parancsvezérlő, kivéve, ha az információ a Windows teljesítménynaplókból és eseménynaplókból kerül gyűjtésre. SQLdiag minden számítógépen egy munkaszálat használ, hogy figyelje az egyéb eszközök diagnosztikai adatgyűjtését, gyakran egyszerre várva, hogy több eszköz is befejezze a folyamatot. A gyűjtési folyamat során az SQLdiag az egyes diagnosztikai eszközök kimenetét az output mappába irányítja.

Adatgyűjtés leállítása

Miután az SQLdiag megkezdte a diagnosztikai adatok gyűjtését, az továbbra is ezt teszi, hacsak nem állítja le manuálisan Ctrl+Ca fájlt, vagy nem hoz létre egy sqldiag.stop fájlt, vagy konfigurálja, hogy egy megadott időpontban leálljon. Az SQLdiag konfigurálható úgy, hogy egy adott időpontban leálljon az /E argumentum használatával vagy az /X argumentum használatával, ami miatt az SQLdiag pillanatkép módban fut.

Amikor az SQLdiag leáll, leállítja az összes általa indított diagnosztikai folyamatot. Például megszünteti a begyűjtött SQL Server Profiler nyomvonalakat, leállítja az éppen futó Transact-SQL szkriptek végrehajtását, és leállít minden, az adatok összegyűjtése során létrehozott alfolyamatot. A diagnosztikai adatok gyűjtésének befejeztével a SQLdiag kilép.

SQLdiag leállítása konzolalkalmazásként való futtatáskor

Ha SQLdiag-t futtat konzolalkalmazásként, nyomja le a CTRL+C billentyűkombinációt abban a konzolablakban, ahol az SQLdiag fut a leállításához. A CTRL+C billentyűkombináció lenyomása után megjelenik egy üzenet a konzolablakban, amely tájékoztatja, hogy az SQLdiag-adatgyűjtés véget ér, és várnia kell, amíg a folyamat leáll, ami több percet is igénybe vehet.

Nyomja meg kétszer a Ctrl+C-t a gyermek diagnosztikai folyamatok megszakításához és az alkalmazás azonnali leállításához.

SQLdiag leállítása szolgáltatásként való futtatáskor

Ha szolgáltatásként futtatja az SQLdiagot, futtassa a SQLdiag indítási mappájában a sqldiag STOP parancsot a leállításához. Vagy leállíthatja az SQLdiag-szolgáltatásokat a Services.msc kisalkalmazásban.

Megjegyzés:

Az SQLdiag szolgáltatás szüneteltetése nem támogatott. Ha megpróbálja szüneteltetni a SQLdiag szolgáltatást, az akkor áll le, amikor befejezi annak a diagnosztikai adatnak a gyűjtését, amelyet a szüneteltetés időpontjában gyűjtött. Ha újraindítja a SQLdiag-ot a leállítása után, az alkalmazás újraindul és felülírja a kimeneti mappát. A kimeneti mappa felülírásának elkerülése érdekében adja meg a /N 2 a parancssorban.

Ha ugyanazon a számítógépen több SQLdiag-példányt is futtat, a szolgáltatás leállításakor az SQLdiag-példány nevét is átadhatja a parancssornak. Például, ha le szeretne állítani egy Instance1 nevű SQLdiag példányt, használja a következő szintaxist:

sqldiag STOP /A Instance1

/A az egyetlen parancssori argumentum, amely a START, STOP vagy STOP_ABORT paranccsal használható. Ha meg kell adnia az SQLdiag egy elnevezett példányát a szolgáltatásvezérlő parancsok egyikével, adja meg /A a parancssor vezérlő igéje után az előző szintaxisbeli példában látható módon. Amikor vezérlő igéket használnak, azoknak az első elemként kell lenniük a parancssorban.

A szolgáltatás lehető leggyorsabb leállításához futtassa sqldiag STOP_ABORT a segédprogram indítási mappájában. Ez a parancs megszakít minden jelenleg végzett diagnosztikai adatgyűjtést anélkül, hogy megvárná azok befejezését.

Megjegyzés:

Használja sqldiag STOP vagy sqldiag STOP_ABORT állítsa le az SQLdiag szolgáltatást. Ne használja a Windows Services-konzolt az SQLdiag vagy más SQL Server-szolgáltatások leállításához.

SQLdiag leállítása sqldiag.stop fájllal

Az SQLdiag automatikusan leáll, amikor megkeres egy, a segédprogram mappájában sqldiag.stop elnevezett \Output fájlt. Ez a beállítás attól függetlenül érvényes, hogy az SQLdiag konzolalkalmazásként vagy szolgáltatásként fut-e. .stop A fájl létrehozása akkor lehet hasznos, ha valamilyen esemény bekövetkezése után programozott módon szeretné leállítani az SQLdiag-t, de az esemény bekövetkezésének időpontját nem tudja előre. A sqldiag.stop fájl tartalma lényegtelen. Az egyik lehetőség, a fájl kézi létrehozása mellett, hogy használjunk egy olyan parancsot, mint a következő, egy kötegelt fájlban a sqldiag.stop létrehozásához:

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

Egy másik lehetőség a PowerShell használata:

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

SQLdiag automatikus indítása és leállítása

A diagnosztikai adatgyűjtés automatikus elindításához és leállításához adott időpontban használja a /B <start_time> és /E <stop_time> argumentumokat 24 órás jelöléssel. Ha például egy körülbelül 02:00:00 időpontban folyamatosan megjelenő problémát hárít el, konfigurálhatja az SQLdiag-t úgy, hogy 01:45-kor automatikusan megkezdje a diagnosztikai adatok gyűjtését, és automatikusan 03:00:00-kor leáll.

A kezdési és a leállítási időpont megadásához használja az /B és /E az argumentumokat. A 24 órás jelöléssel pontos kezdő és leállítási dátumot és időpontot adhat meg az általános yyyyMMdd_HH:mm:ss formátummal. Az alábbi példa 01:45-kor indítja el az adatgyűjtést, és 3:00-kor állítja le.

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

Relatív kezdési vagy leállítási idő megadásához az előtaggal adja meg a kezdési és a leállítási időpontot + , és hagyja ki a dátumrészt (yyyyMMdd_) az alábbi példában látható módon. Ez azt eredményezi, hogy az SQLdiag egy órát vár az információgyűjtés megkezdése előtt, majd két és fél óráig gyűjt adatokat, mielőtt leáll és kilép:

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

Amikor relatív start_time van megadva, a SQLdiag egy időpontban kezdődik, amely a jelenlegi dátumhoz és időhöz viszonyított. Ha meg van adva egy relatív vég_idő, akkor az SQLdiag a megadott kezdő_idő-höz viszonyított időpontban ér véget. Ha a megadott kezdő vagy befejező dátum és időpont a múltban van, a SQLdiag kényszeríti a kezdő dátum megváltoztatását, hogy a kezdő dátum és időpont a jövőben legyen.

Ez fontos következményekkel jár a választott kezdő- és záróidőpontokra. Vegye figyelembe a következő példát:

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

Ha a jelenlegi idő 08:00, a befejezési idő elmúlik, mielőtt a diagnosztikai gyűjtés valójában elkezdődik. Mivel az SQLdiag automatikusan beállítja a múltban lévő dátumokat a következő napra, ebben a példában a diagnosztikai adatgyűjtés ma 9:00-kor kezdődik (a relatív kezdési időpont 1 óra múlva lett megadva a + használatával), és a gyűjtést a következő reggel 08:30-ig folytatja.

Az SQLdiag leállítása és újraindítása a napi diagnosztika gyűjtéséhez

Ha naponta szeretne összegyűjteni egy meghatározott diagnosztikát anélkül, hogy manuálisan kellene elindítania és leállítania az SQLdiag-t, használja az /L argumentumot. Az argumentum hatására az /LSQLdiag folyamatosan fut, és automatikusan újraindul egy ütemezett leállítás után. Ha /L meg van adva, és az SQLdiag leáll, mert elérte az argumentummal /E megadott befejezési időt, vagy leáll, mert pillanatkép módban fut az /X argumentum használatával, az SQLdiag a kilépés helyett újraindul.

Az alábbi példa azt határozza meg, hogy az SQLdiag folyamatos módban fusson, és automatikusan újrainduljon, miután a diagnosztikai adatgyűjtés 03:00:00 és 05:00:00 között történt.

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

Az alábbi példa azt határozza meg, hogy az SQLdiag folyamatos módban fusson, és automatikusan újrainduljon, miután 03:00:00 időpontban készített diagnosztikaiadat-pillanatképet.

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

SQLdiag futtatása szolgáltatásként

Ha hosszú ideig szeretne diagnosztikai adatokat gyűjteni az SQLdiag használatával, amely során előfordulhat, hogy ki kell jelentkeznie a számítógépről, amelyen az SQLdiag fut, futtathatja szolgáltatásként.

SQLdiag regisztrálása szolgáltatásként való futtatáshoz

Felregisztrálhatja az SQLdiag-ot szolgáltatásként, ha megadja a /R argumentumot a parancssorban. Ez regisztrálja a SQLdiag szolgáltatásként való futtatásra. Az SQLdiag szolgáltatás neve .SQLDIAG A parancssorban az SQLdiag szolgáltatásként való regisztrálásakor megadott egyéb argumentumok megmaradnak és újra felhasználhatók a szolgáltatás indításakor.

Az alapértelmezett SQLDIAG szolgáltatásnév módosításához használja a /A parancssori argumentumot egy másik név megadásához. Az SQLdiag automatikusan előtagot ad a DIAG$-nak minden olyan SQLdiag-példánynévhez , amely /A az értelmes szolgáltatásnevek létrehozásához van megadva.

Az SQLDIAG szolgáltatás regisztrációjának törlése

A szolgáltatás regisztrációjának megszüntetéséhez adja meg az argumentumot /U . Egy szolgáltatásként történő törlés a SQLdiag esetében a Windows szolgáltatásának rendszerleíró kulcsait is törli.

Az SQLDIAG szolgáltatás elindítása vagy újraindítása

A SQLDIAG szolgáltatás elindításához vagy újraindításához futtassa a sqldiag START parancsot a parancssorból.

Ha a /A több SQLdiag példányt futtat, a szolgáltatás indításakor a parancssorban is megadhatja a SQLdiag példány nevét. Például ahhoz, hogy elindítson egy SQLdiag példányt Instance1 néven, használja a következő szintaxist:

sqldiag START /A Instance1

A net start parancsot a SQLDIAG szolgáltatás elindításához is használhatja.

Amikor újraindítja a SQLdiag-t, felülírja a tartalmat az aktuális kimeneti mappában. Ennek elkerülése érdekében adja meg /N 2 a parancssorban, hogy a segédprogram indításakor átnevezze a kimeneti mappát.

Az SQLdiag szolgáltatás szüneteltetése nem támogatott.

Az SQLdiag több példányának futtatása

Futtasson több SQLdiag-példányt ugyanazon a számítógépen a parancssori paraméterek megadásával /A <SQLdiag_application_name>. Ez hasznos annak érdekében, hogy különböző diagnosztikai készleteket gyűjtsünk össze egyidejűleg ugyanarról az SQL Server példányról. Például beállíthatja a SQLdiag egy megnevezett példányát, hogy folyamatosan végezzen könnyű adatgyűjtést. Ezután, ha egy adott probléma merül fel az SQL Serveren, futtathatja az alapértelmezett SQLdiag-példányt a probléma diagnosztikáinak gyűjtéséhez, vagy összegyűjthet egy diagnosztikai csoportot, amelyet a Microsoft ügyfélszolgálata arra kér, hogy gyűjtsön össze egy probléma diagnosztizálásához.

Diagnosztikai adatok gyűjtése fürtözött SQL Server-példányokból

SQLdiag támogatja a diagnosztikai adatok gyűjtését fürtözött SQL Server példányokból. Ha fürtözött SQL Server-példányok diagnosztikáját szeretné gyűjteni, győződjön meg arról, hogy a konfigurációs fájl SQLdiag.xml eleménél a name attribútum jóvá van hagyva a "." értékkel, és ne adja meg az /G argumentumot a parancssorban. Alapértelmezés szerint a "." a konfigurációs fájlban van megadva az name attribútumhoz, és az /G argumentum ki van kapcsolva. A fürtözött SQL Server-példányok gyűjtésekor általában nem kell szerkesztenie a konfigurációs fájlt, és nem kell módosítania a parancssori argumentumokat.

Ha "." a gép neveként van megadva, az SQLdiag észleli, hogy egy fürtön fut, és egyidejűleg lekéri a diagnosztikai adatokat a fürtre telepített SQL Server összes virtuális példányáról. Ha csak egy virtuális SQL Server példányból szeretne diagnosztikai adatokat gyűjteni, amely a számítógépen fut, adja meg azt a virtuális SQL Servert az name elem <Machine> attribútumában SQLdiag.xml-ban/ben.

Megjegyzés:

A SQL Server Profiler nyomkövetési információinak gyűjtéséhez a fürtözött SQL Server példányokról, a rendszergazdai megosztásoknak (ADMIN$) engedélyezve kell lenniük a fürtön.