Konfigurowanie rozproszonego odtwarzania
Dotyczy: SQL Server 2016 (13.x),
SQL Server 2017 (14.x) i
SQL Server 2019 (15.x)
Ważny
Rozproszone odtwarzanie programu SQL Server nie jest dostępne w programie SQL Server 2022 (16.x).
Szczegóły konfiguracji rozproszonego odtwarzania programu Microsoft SQL Server są określone w plikach XML na kontrolerze rozproszonego odtwarzania, klientach i miejscu instalacji narzędzia administracyjnego. Te pliki obejmują następujące elementy:
Plik konfiguracji kontrolera: DReplayController.config
Po uruchomieniu usługi kontrolera Distributed Replay programu SQL Server, poziom rejestrowania zostaje załadowany z pliku konfiguracji kontrolera DReplayController.config
. Ten plik znajduje się w folderze, w którym zainstalowano usługę kontrolera rozproszonego odtwarzania:
ścieżka instalacji kontrolera <>\DReplayController.config
Poziom rejestrowania określony przez plik konfiguracji kontrolera obejmuje następujące elementy:
Ustawienie | element XML | Opis | Dozwolone wartości | Wymagane |
---|---|---|---|---|
Poziom rejestrowania | <LoggingLevel> |
Określa poziom rejestrowania dla usługi kontrolera. | INFORMATION | WARNING | CRITICAL |
Nie. Domyślnie wartość to CRITICAL . |
Przykład
W tym przykładzie pokazano plik konfiguracji kontrolera, który został zmodyfikowany w celu tłumienia wpisów dziennika INFORMATION
i WARNING
.
<?xml version='1.0'?>
<Options>
<LoggingLevel>CRITICAL</LoggingLevel>
</Options>
Plik konfiguracji klienta: DReplayClient.config
Po uruchomieniu usługi klienta rozproszonego odtwarzania programu SQL Server ładuje ustawienia konfiguracji z pliku konfiguracji klienta, DReplayClient.config
. Ten plik znajduje się na każdym kliencie w folderze, w którym zainstalowano usługę klienta rozproszonego odtwarzania:
ścieżka instalacji klienta <>\DReplayClient.config
Ustawienia określone przez plik konfiguracji klienta obejmują następujące elementy:
Ustawienie | Element XML | Opis | Dozwolone wartości | Wymagane |
---|---|---|---|---|
Kontroler | <Controller> |
Określa nazwę komputera kontrolera. Klient podejmie próbę zarejestrowania się w środowisku rozproszonego odtwarzania, kontaktując się z kontrolerem. | Aby odwołać się do komputera lokalnego, możesz użyć polecenia "localhost " lub ". ". |
Nie. Domyślnie klient próbuje zarejestrować się w wystąpieniu kontrolera, które jest uruchomione lokalnie („. ”), jeśli istnieje. |
Katalog roboczy klienta | <WorkingDirectory> |
To ścieżka lokalna na kliencie, na którym są zapisywane pliki wysyłania. Pliki w tym katalogu są zastępowane podczas następnego odtwarzania. |
Pełna nazwa katalogu, rozpoczynająca się literą dysku. | Nie. Jeśli żadna wartość nie zostanie określona, pliki wysyłania zostaną zapisane w tej samej lokalizacji co domyślny plik konfiguracji klienta. Jeśli określono wartość i ten folder nie istnieje na kliencie, usługa klienta nie zostanie uruchomiona. |
Katalog wyników klienta | <ResultDirectory> |
Ścieżka lokalna na kliencie, gdzie jest zapisywany plik śledzenia wyników z działania odtwarzania (dla klienta). Pliki w tym katalogu są zastępowane podczas następnego odtwarzania. |
Pełna nazwa katalogu, rozpoczynająca się literą dysku. | Nie. Jeśli żadna wartość nie zostanie określona, plik śledzenia wyników zostanie zapisany w tej samej lokalizacji co domyślny plik konfiguracji klienta. Jeśli określono wartość i ten folder nie istnieje na kliencie, usługa klienta nie zostanie uruchomiona. |
Poziom rejestrowania | <LoggingLevel> |
To poziom rejestrowania dla usługi klienta. | INFORMATION | WARNING | CRITICAL |
Nie. Domyślnie wartość to CRITICAL . |
Przykład
W tym przykładzie pokazano plik konfiguracji klienta, który został zmodyfikowany w celu określenia, że usługa kontrolera jest uruchomiona na innym komputerze, komputerze o nazwie Controller1
. Elementy WorkingDirectory
i ResultDirectory
zostały skonfigurowane do używania odpowiednio folderów c:\ClientWorkingDir
i c:\ResultTraceDir
. Poziom rejestrowania został zmieniony z wartości domyślnej w celu pominięcia wpisów dziennika INFORMATION
i WARNING
.
<?xml version='1.0'?>
<Options>
<Controller>Controller1</Controller>
<WorkingDirectory>c:\ClientWorkingDir</WorkingDirectory>
<ResultDirectory>c:\ResultTraceDir</ResultDirectory>
<LoggingLevel>CRITICAL</LoggingLevel>
</Options>
Plik konfiguracji przetwarzania wstępnego: DReplay.exe.preprocess.config
Gdy używasz narzędzia administracyjnego do inicjowania etapu przetwarzania wstępnego, narzędzie administracyjne ładuje ustawienia przetwarzania wstępnego z pliku konfiguracji przetwarzania wstępnego, DReplay.exe.preprocess.config
.
Użyj domyślnego pliku konfiguracji lub użyj narzędzia administracyjnego -c parametru, aby określić lokalizację zmodyfikowanego pliku konfiguracji przetwarzania wstępnego. Aby uzyskać więcej informacji na temat korzystania z opcji wstępnego przetwarzania narzędzia administracyjnego, zobacz rozdział Opcja wstępnego przetwarzania (Narzędzie Administracyjne Rozproszonego Odtwarzania).
Domyślny plik konfiguracji przetwarzania wstępnego znajduje się w folderze, w którym zainstalowano narzędzie administracyjne:
ścieżka instalacji narzędzia administracyjnego <>\DReplayAdmin\DReplay.exe.preprocess.config
Ustawienia konfiguracji przetwarzania wstępnego są określone w elementach XML, które są elementami podrzędnymi elementu <PreprocessModifiers>
w pliku konfiguracji przetwarzania wstępnego. Te ustawienia obejmują następujące ustawienia:
Ustawienie | Element XML | Opis | Dozwolone wartości | Wymagane |
---|---|---|---|---|
Uwzględnij działania sesji systemowej | <IncSystemSession> |
Wskazuje, czy działania sesji systemu podczas przechwytywania zostaną uwzględnione podczas odtwarzania. | Yes | No |
Nie. Domyślnie wartość to No . |
Maksymalny czas bezczynności | <MaxIdleTime> |
Limituje czas bezczynności na liczbę bezwzględną (w sekundach). | Liczba całkowita, która jest >= -1.-1 oznacza brak zmian w stosunku do oryginalnej wartości w oryginalnym pliku śledzenia.0 wskazuje, że w danym momencie następuje pewne działanie. |
Nie. Domyślnie wartość to -1 . |
Przykład
Domyślny plik konfiguracji przetwarzania wstępnego:
<?xml version='1.0'?>
<Options>
<PreprocessModifiers>
<IncSystemSession>No</IncSystemSession>
<MaxIdleTime>-1</MaxIdleTime>
</PreprocessModifiers>
</Options>
Plik konfiguracji odtwarzania: DReplay.exe.replay.config
Gdy używasz narzędzia administracyjnego do inicjowania etapu odtwarzania zdarzenia, narzędzie administracyjne ładuje ustawienia odtwarzania z pliku konfiguracji odtwarzania, DReplay.exe.replay.config
.
Użyj domyślnego pliku konfiguracji lub użyj narzędzia administracyjnego -c parametru, aby określić lokalizację zmodyfikowanego pliku konfiguracji odtwarzania. Aby uzyskać więcej informacji na temat korzystania z opcji odtwarzania narzędzia administracyjnego, zobacz Opcja odtwarzania (Rozproszone narzędzie administracyjne odtwarzania).
Domyślny plik konfiguracji odtwarzania znajduje się w folderze, w którym zainstalowano narzędzie administracyjne:
ścieżka instalacji narzędzia administracyjnego <>\DReplayAdmin\DReplay.exe.replay.config
Ustawienia konfiguracji odtwarzania są określone w elementach XML, które są elementami podrzędnymi elementów <ReplayOptions>
i <OutputOptions>
pliku konfiguracji odtwarzania.
<ReplayOptions, element>
Ustawienia określone przez plik konfiguracji odtwarzania w elemecie <ReplayOptions>
obejmują następujące elementy:
Ustawienie | Element XML | Opis | Dozwolone wartości | Wymagane |
---|---|---|---|---|
Wystąpienie docelowe programu SQL Server (serwer testowy) | <Server> |
Określa nazwę serwera oraz instancję SQL Server, z którymi ma zostać nawiązane połączenie. |
server_name[\instance_name] Nie można użyć " localhost " lub ". " do reprezentowania hosta lokalnego. |
Nie, jeśli nazwa serwera jest już określona przy użyciu -sserwera docelowego parametru z opcją replay narzędzia administracyjnego. |
Tryb sekwencjonowania | <SequencingMode> |
Określa tryb używany do planowania zdarzeń. | synchronization | stress |
Nie. Domyślnie wartość to stress . |
Stopień szczegółowości skali obciążenia | <StressScaleGranularity> |
Określa, czy wszystkie połączenia w identyfikatorze profilu usługi (SPID) powinny być skalowane razem (SPID) lub niezależnie (Połączenie) w trybie przeciążenia. | SPID | Połączenie | Tak. Domyślnie wartość to SPID . |
Łączenie skali czasu | <ConnectTimeScale> |
Służy do skalowania czasu połączenia w trybie stresu. | Liczba całkowita między 1 a 100 . |
Nie. Domyślnie wartość to 100 . |
Pomyśl o skali czasu | <ThinkTimeScale> |
Służy do skalowania czasu myślenia w trybie stresu. | Liczba całkowita między 0 a 100 . |
Nie. Domyślnie wartość to 100 . |
Korzystanie z buforowania połączeń | <UseConnectionPooling> |
Określa, czy buforowanie połączeń będzie włączone na każdym kliencie rozproszonego odtwarzania. | Tak | Nie | Tak. Domyślnie wartość to Yes . |
Interwał monitora kondycji | <HealthmonInterval> |
Wskazuje, jak często należy uruchomić monitor kondycji (w sekundach). Ta wartość jest używana tylko w trybie synchronizacji. |
Integer >= 1 ( -1 aby wyłączyć) |
Nie. Domyślnie wartość to 60 . |
Przekroczenie limitu czasu zapytania | <QueryTimeout> |
Określa wartość limitu czasu zapytania w sekundach. Ta wartość jest skuteczna tylko do momentu zwrócenia pierwszego wiersza. | Liczba całkowita >= 1 ( -1 aby wyłączyć) |
Nie. Domyślnie wartość to 3600 . |
Wątki na klienta | <ThreadsPerClient> |
Określa liczbę wątków odtwarzania do użycia dla każdego klienta odtwarzania. | Liczba całkowita między 1 a 512 . |
Nie. Jeśli nie zostanie określone, Distributed Replay będzie używać wartości 255 . |
<OutputOptions, element>
Ustawienia określone przez plik konfiguracji odtwarzania w elemecie <OutputOptions>
obejmują następujące elementy:
Ustawienie | Element XML | Opis | Dozwolone wartości | Wymagane |
---|---|---|---|---|
Liczba zarejestrowanych wierszy | <RecordRowCount> |
Wskazuje, czy liczba wierszy powinna być rejestrowana dla każdego zestawu wyników. | Yes | No |
Nie. Domyślnie wartość to Yes . |
Zestaw wyników rekordów | <RecordResultSet> |
Wskazuje, czy zawartość wszystkich zestawów wyników powinna być rejestrowana. | Yes | No |
Nie. Domyślnie wartość to No . |
Przykład
Domyślny plik konfiguracji odtwarzania:
<?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>
Możliwy problem podczas uruchamiania z trybem sekwencjonowania synchronizacji
Może wystąpić symptom, w którym to funkcja odtwarzania wydaje się "zawiesić się" lub odtwarzać zdarzenia powoli. To zjawisko może wystąpić, jeśli odtwarzany ślad opiera się na danych i/lub zdarzeniach, które nie istnieją w przywróconej docelowej bazie danych.
Jednym z przykładów jest przechwycone obciążenie, które używa WAITFOR, na przykład w instrukcji WAITFOR RECEIVE usługi Service Broker. W przypadku korzystania z trybu sekwencjonowania synchronizacji partie są odtwarzane szeregowo. Jeśli element INSERT występuje względem źródłowej bazy danych po utworzeniu kopii zapasowej bazy danych, ale przed rozpoczęciem ponownego odtwarzania śledzenia przechwytywania, podczas odtwarzania może być konieczne odczekanie całego czasu trwania funkcji WAITFOR. Zdarzenia, które mają być odtwarzane po WAITFOR RECEIVE, zostaną opóźnione. Może to spowodować, że licznik monitora wydajności żądań/s dla celu bazy danych odtwarzania spada do zera do momentu zakończenia WAITFOR.
Jeśli musisz użyć trybu synchronizacji i chcesz uniknąć tego zachowania, musisz wykonać następujące czynności:
Uspokój bazy danych, których będziesz używać jako cele odtwarzania.
Zezwól na ukończenie wszystkich oczekujących działań.
Utwórz kopię zapasową baz danych i zezwól na wykonywanie kopii zapasowych.
Uruchom rozproszone przechwytywanie śledzenia operacji odtwarzania i wznów normalną pracę.
Zobacz też
- opcje wiersza polecenia narzędzia administracji (narzędzie rozproszonego odtwarzania)
- rozproszonego odtwarzania programu SQL Server
- Używanie Rozproszonego Odtwarzania do Testowania Obciążeniowego SQL Server — Część 2
- Przy użyciu rozproszonego odtwarzania do testów obciążeniowych SQL Servera – część 1