Konfigurera distribuerad repris
gäller för: SQL Server 2016 (13.x),
SQL Server 2017 (14.x) och
SQL Server 2019 (15.x)
Viktig
SQL Server Distributed Replay är inte tillgängligt med SQL Server 2022 (16.x).
Konfigurationsinformationen för Microsoft SQL Server Distributed Replay anges i XML-filer på styrenheten Distributed Replay, klienter och där administrationsverktyget är installerat. Dessa filer innehåller följande:
Konfigurationsfil för kontrollant: DReplayController.config
När SQL Server Distributed Replay-kontrollanttjänsten startar läser den in loggningsnivån från konfigurationsfilen för kontrollanten DReplayController.config
. Den här filen finns i mappen där du installerade den distribuerade replay-kontrollanttjänsten:
installationssökväg för <styrenhet>\DReplayController.config
Loggningsnivån som anges av konfigurationsfilen för kontrollanten innehåller följande:
Inställning | XML-element | Beskrivning | Tillåtna värden | Krävs |
---|---|---|---|---|
Loggningsnivå | <LoggingLevel> |
Anger loggningsnivån för kontrollanttjänsten. | INFORMATION | WARNING | CRITICAL |
Nej. Som standard är värdet CRITICAL . |
Exempel
Det här exemplet visar en konfigurationsfil för kontroller som har ändrats för att undertrycka INFORMATION
och WARNING
loggposter.
<?xml version='1.0'?>
<Options>
<LoggingLevel>CRITICAL</LoggingLevel>
</Options>
Klientkonfigurationsfil: DReplayClient.config
När SQL Server Distributed Replay-klienttjänsten startar läser den in konfigurationsinställningar från klientkonfigurationsfilen DReplayClient.config
. Den här filen finns på varje klient i mappen där du installerade klienttjänsten Distributed Replay:
<klientinstallationssökväg>\DReplayClient.config
Inställningarna som anges av klientkonfigurationsfilen innehåller följande:
Inställning | XML-element | Beskrivning | Tillåtna värden | Krävs |
---|---|---|---|---|
Kontrollant | <Controller> |
Anger datornamnet på kontrollanten. Klienten försöker registrera sig i Distributed Replay-miljön genom att kontakta kontrollanten. | Du kan använda "localhost " eller ". " för att referera till den lokala datorn. |
Nej. Som standard försöker klienten registrera sig med kontrollantinstansen som körs lokalt (". "), om den finns. |
Klientarbetskatalog | <WorkingDirectory> |
Är den lokala sökvägen på klienten där sändningsfilerna sparas. Filerna i den här katalogen skrivs över vid nästa repris. |
Ett fullständigt katalognamn som börjar med enhetsbeteckningen. | Nej. Om inget värde anges sparas sändningsfilerna på samma plats som standardklientkonfigurationsfilen. Om ett värde anges och mappen inte finns på klienten startar inte klienttjänsten. |
Klientresultatkatalog | <ResultDirectory> |
Är den lokala sökvägen på klienten där resultatspårningsfilen från uppspelningsaktiviteten (för klienten) sparas. Filerna i den här katalogen skrivs över vid nästa repris. |
Ett fullständigt katalognamn som börjar med enhetsbeteckningen. | Nej. Om inget värde anges sparas resultatspårningsfilen på samma plats som standardklientkonfigurationsfilen. Om ett värde anges och mappen inte finns på klienten startar inte klienttjänsten. |
Loggningsnivå | <LoggingLevel> |
Detta är loggningsnivån för klienttjänsten. | INFORMATION | WARNING | CRITICAL |
Nej. Som standard är värdet CRITICAL . |
Exempel
Det här exemplet visar en klientkonfigurationsfil som har ändrats för att ange att kontrollanttjänsten körs på en annan dator, en dator med namnet Controller1
. Elementen WorkingDirectory
och ResultDirectory
har konfigurerats för att använda mappar c:\ClientWorkingDir
respektive c:\ResultTraceDir
. Loggningsnivån har ändrats från standardvärdet för att förhindra INFORMATION
och WARNING
loggposter.
<?xml version='1.0'?>
<Options>
<Controller>Controller1</Controller>
<WorkingDirectory>c:\ClientWorkingDir</WorkingDirectory>
<ResultDirectory>c:\ResultTraceDir</ResultDirectory>
<LoggingLevel>CRITICAL</LoggingLevel>
</Options>
Förbearbeta konfigurationsfil: DReplay.exe.preprocess.config
När du använder administrationsverktyget för att initiera förbearbetningssteget läser administrationsverktyget in förbearbetningsinställningarna från förbearbetningskonfigurationsfilen DReplay.exe.preprocess.config
.
Använd standardkonfigurationsfilen eller använd administrationsverktyget -c parameter för att ange platsen för en ändrad förbearbetningskonfigurationsfil. Mer information om hur du använder alternativet för förbearbetning i administrationsverktyget finns i avsnitt Förbearbetningsalternativ (Administrationsverktyget för distribuerad uppspelning).
Standardkonfigurationsfilen för förbearbetning finns i mappen där du installerade administrationsverktyget:
installationssökväg för <administrationsverktyg>\DReplayAdmin\DReplay.exe.preprocess.config
Konfigurationsinställningarna för förbearbetning anges i XML-element som är underordnade till <PreprocessModifiers>
-elementet i förbearbetningskonfigurationsfilen. De här inställningarna omfattar följande:
Inställning | XML-element | Beskrivning | Tillåtna värden | Krävs |
---|---|---|---|---|
Inkludera systemsessionsaktiviteter | <IncSystemSession> |
Anger huruvida systemsessionsaktiviteter under inspelningen ska inkluderas under omspelningen. | Yes | No |
Nej. Som standard är värdet No . |
Maximal inaktivitetstid | <MaxIdleTime> |
Begränsar inaktivitetstiden till ett absolut tal (i sekunder). | Ett heltal som är >= -1.-1 anger ingen ändring från det ursprungliga värdet i den ursprungliga spårningsfilen.0 anger att det pågår en viss aktivitet vid en viss tidpunkt. |
Nej. Som standard är värdet -1 . |
Exempel
Standardkonfigurationsfilen för förbearbetning:
<?xml version='1.0'?>
<Options>
<PreprocessModifiers>
<IncSystemSession>No</IncSystemSession>
<MaxIdleTime>-1</MaxIdleTime>
</PreprocessModifiers>
</Options>
Spela upp konfigurationsfil: DReplay.exe.replay.config
När du använder administrationsverktyget för att initiera reproduktionsfasen läser administrationsverktyget in uppspelningsinställningarna från uppspelningskonfigurationsfilen DReplay.exe.replay.config
.
Använd standardkonfigurationsfilen eller använd administrationsverktyget -c parameter för att ange platsen för en ändrad konfigurationsfil för uppspelning. Mer information om hur du använder omspelningsalternativet för administrationsverktyget finns i Replay-alternativet (administrationsverktyget för distribuerad uppspelning).
Standardrepriskonfigurationsfilen finns i mappen där du installerade administrationsverktyget:
installationssökväg för <administrationsverktyg>\DReplayAdmin\DReplay.exe.replay.config
Konfigurationsinställningarna för uppspelning anges i XML-element som är underordnade <ReplayOptions>
och <OutputOptions>
element i konfigurationsfilen för uppspelning.
<ReplayOptions>-element
Inställningarna som anges av konfigurationsfilen för uppspelning i <ReplayOptions>
-elementet innehåller följande:
Inställning | XML-element | Beskrivning | Tillåtna värden | Krävs |
---|---|---|---|---|
Målinstans av SQL Server (testservern) | <Server> |
Anger namnet på servern och instansen av SQL Server som ska anslutas till. |
server_name[\instance_name] Du kan inte använda " localhost " eller ". " för att representera den lokala värddatorn. |
Nej, om servernamnet redan har angetts med hjälp av parametern -sför målserver med alternativet spela upp i administrationsverktyget. |
Sekvenseringsläge | <SequencingMode> |
Anger det läge som används för händelseschemaläggning. | synchronization | stress |
Nej. Som standard är värdet stress . |
Stressskalans granularitet | <StressScaleGranularity> |
Anger om alla anslutningar i tjänstprofilidentifieraren (SPID) ska skalas tillsammans (SPID) eller oberoende (anslutning) under stressläge. | SPID | Samband | Ja. Som standard är värdet SPID . |
Sammanfoga tidsskala | <ConnectTimeScale> |
Används för att skala anslutningstiden i stressläge. | Ett heltal mellan 1 och 100 . |
Nej. Som standard är värdet 100 . |
Tänk tidsskala | <ThinkTimeScale> |
Används för att skala tänk tid i stressläge. | Ett heltal mellan 0 och 100 . |
Nej. Som standard är värdet 100 . |
Använd anslutningspooler | <UseConnectionPooling> |
Anger om anslutningspooler ska aktiveras på varje distribuerad replay-klient. | Ja | Nej | Ja. Som standard är värdet Yes . |
Intervall för hälsoövervakare | <HealthmonInterval> |
Anger hur ofta hälsoövervakaren ska köras (i sekunder). Det här värdet används endast i synkroniseringsläge. |
Heltal >= 1 ( -1 för att inaktivera) |
Nej. Som standard är värdet 60 . |
Tidsgräns för sökfråga | <QueryTimeout> |
Anger tidsgränsvärdet för frågan i sekunder. Det här värdet gäller bara tills den första raden har returnerats. | Heltal >= 1 ( -1 att inaktivera) |
Nej. Som standard är värdet 3600 . |
Trådar per klient | <ThreadsPerClient> |
Anger antalet uppspelningstrådar som ska användas för varje reprisklient. | Ett heltal mellan 1 och 512 . |
Nej. Om det inte anges använder Distributed Replay värdet 255 . |
<OutputOptions>-element
Inställningarna som anges av konfigurationsfilen för uppspelning i <OutputOptions>
-elementet innehåller följande:
Inställning | XML-element | Beskrivning | Tillåtna värden | Krävs |
---|---|---|---|---|
Antal rader i record | <RecordRowCount> |
Anger om radantalet ska registreras för varje resultatuppsättning. | Yes | No |
Nej. Som standard är värdet Yes . |
Registrera resultatuppsättning | <RecordResultSet> |
Anger om innehållet i alla resultatuppsättningar ska registreras. | Yes | No |
Nej. Som standard är värdet No . |
Exempel
Standardkonfigurationsfilen för uppspelning:
<?xml version='1.0'?>
<Options>
<ReplayOptions>
<Server></Server>
<SequencingMode>stress</SequencingMode>
<ConnectTimeScale></ConnectTimeScale>
<ThinkTimeScale></ThinkTimeScale>
<HealthmonInterval>60</HealthmonInterval>
<QueryTimeout>3600</QueryTimeout>
<ThreadsPerClient></ThreadsPerClient>
</ReplayOptions>
<OutputOptions>
<ResultTrace>
<RecordRowCount>Yes</RecordRowCount>
<RecordResultSet>No</RecordResultSet>
</ResultTrace>
</OutputOptions>
</Options>
Möjligt problem vid körning med sekvenseringsläge för synkronisering
Du kan stöta på ett symptom där återspelningsfunktionen verkar "stanna upp" eller spela upp händelser långsamt. Det här fenomenet kan inträffa om spårningen som spelas upp förlitar sig på data och/eller händelser som inte finns i den återställda måldatabasen.
Ett exempel är en insamlad arbetsbelastning som använder WAITFOR, till exempel i Service Brokers WAITFOR RECEIVE-instruktion. När du använder sekvenseringsläget för synkronisering spelas batcharna upp seriellt. Om en INSERT inträffar mot källdatabasen efter databassäkerhetskopian, men innan återspelningsspårningen startas, kan WAITFOR RECEIVE som utfärdades under återspelningen behöva vänta under hela tiden som är specificerad för WAITFOR. Händelser som ska spelas upp igen efter att WAITFOR RECEIVE har stoppats. Detta kan resultera i att prestandaövervakningsräknaren för antal batchförfrågningar per sekund för målet återspelningsdatabas sjunker till noll tills WAITFOR-kommandot har slutförts.
Om du behöver använda synkroniseringsläge och vill undvika det här beteendet måste du göra följande:
Ange de databaser som du ska använda som reprismål.
Tillåt att all väntande aktivitet slutförs.
Säkerhetskopiera databaserna och tillåt att säkerhetskopior slutförs.
Starta den distribuerade återspelningsspårningen och återuppta den normala arbetsbelastningen.