Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Managed Instance
Agent czytelnika dziennika replikacji jest plikiem wykonywalnym, który monitoruje dziennik transakcji każdej bazy danych skonfigurowanej do replikacji transakcyjnej i kopiuje transakcje oznaczone do replikacji z dziennika transakcji do bazy danych dystrybucji.
Uwaga / Notatka
Parametry można określić w dowolnej kolejności. Jeśli nie określono opcjonalnych parametrów, używane są wstępnie zdefiniowane wartości na podstawie domyślnego profilu agenta.
Składnia
logread [ -? ]
-Publisher server_name [ \instance_name ]
-PublisherDB publisher_database
[ -Continuous ]
[ -DefinitionFile def_path_and_file_name ]
[ -Distributor server_name[ \instance_name ] ]
[ -DistributorLogin distributor_login ]
[ -DistributorPassword distributor_password ]
[ -DistributorSecurityMode [ 0 | 1 ] ]
[ -EncryptionLevel [ 0 | 1 | 2 | 3 | 4 ] ]
[ -ExtendedEventConfigFile configuration_path_and_file_name ]
[ -HistoryVerboseLevel [ 0 | 1 | 2 ] ]
[ -KeepAliveMessageInterval keep_alive_message_interval_seconds ]
[ -LoginTimeOut login_time_out_seconds ]
[ -LogScanThreshold scan_threshold ]
[ -MaxCmdsInTran number_of_commands ]
[ -MessageInterval message_interval ]
[ -MultiSubnetFailover [ 0 | 1 ] ]
[ -Output output_path_and_file_name ]
[ -OutputVerboseLevel [ 0 | 1 | 2 | 3 | 4 ] ]
[ -PacketSize packet_size ]
[ -PollingInterval polling_interval ]
[ -ProfileName profile_name ]
[ -PublisherFailoverPartner server_name[ \instance_name ] ]
[ -PublisherSecurityMode [ 0 | 1 ] ]
[ -PublisherLogin publisher_login ]
[ -PublisherPassword publisher_password ]
[ -QueryTimeOut query_time_out_seconds ]
[ -ReadBatchSize number_of_transactions ]
[ -ReadBatchThreshold read_batch_threshold ]
[ -RecoverFromDataErrors ]
Argumenty (w programowaniu)
-?
Wyświetla informacje o użyciu.
-Wydawca server_name [ \instance_name ]
Nazwa wydawcy. Określ <server_name> domyślne wystąpienie programu SQL Server na tym serwerze. Określ <server_name>\<instance_name> nazwane wystąpienie programu SQL Server na tym serwerze.
-PublisherDB publisher_database
Nazwa bazy danych programu Publisher.
-Ciągły
Określa, czy agent próbuje stale sondować replikowane transakcje. Jeśli zostanie określony, agent sonduje zreplikowane transakcje ze źródła w interwałach sondowania, nawet jeśli nie ma oczekujących transakcji.
-Plik definicji def_path_and_file_name
Ścieżka pliku definicji agenta. Plik definicji agenta zawiera argumenty wiersza polecenia dla agenta. Zawartość pliku jest analizowana jako plik wykonywalny. Użyj podwójnych cudzysłowów ("), aby określić wartości argumentów, które zawierają dowolne znaki.
-Dystrybutor server_name [ \instance_name ]
Nazwa dystrybutora. Określ <server_name> domyślne wystąpienie programu SQL Server na tym serwerze. Określ <server_name>\<instance_name> nazwane wystąpienie programu SQL Server na tym serwerze.
-DistributorLogin distributor_login
Nazwa logowania dystrybutora.
-Hasło do dystrybutora distributor_password
Hasło dystrybutora.
-DistributorSecurityMode [ 0 | 1 ]
Określa tryb zabezpieczeń dystrybutora. Wartość 0 wskazuje tryb uwierzytelniania programu SQL Server (wartość domyślna) i wartość 1 wskazuje tryb uwierzytelniania systemu Windows.
-EncryptionLevel [ 0 | 1 | 2 | 3 | 4 ]
Poziom protokołu Transport Layer Security (TLS), wcześniej znany jako Secure Sockets Layer (SSL), szyfrowanie używane przez agenta czytnika dzienników podczas nawiązywania połączeń.
| Wartość EncryptionLevel | Opis |
|---|---|
0 |
Określa, że protokół TLS nie jest używany. |
1 |
Określa, że jest używany protokół TLS 1.2, ale agent nie sprawdza, czy certyfikat serwera TLS jest podpisany przez zaufanego wystawcę. |
2 |
Określa, że jest używany protokół TLS 1.2 i czy certyfikat jest weryfikowany. |
3 |
Określa, że w przypadku połączeń z usługi Azure SQL Managed Instance lub programu SQL Server 2025 i nowszych wersji do usługi Azure SQL Managed Instance używany jest protokół TLS 1.3, a certyfikat jest weryfikowany. W przypadku połączeń z programem SQL Server (dowolną obsługiwaną wersją) protokół TLS 1.3 nie jest wymuszany z opcją 3. |
4 |
Określa, że w przypadku połączeń z usługi Azure SQL Managed Instance lub programu SQL Server 2025 i nowszych wersji do usługi Azure SQL Managed Instance używany jest protokół TLS 1.3, a certyfikat jest weryfikowany. W przypadku połączeń z usługi Azure SQL Managed Instance lub programu SQL Server 2025 i nowszych wersji do programu SQL Server (dowolnej obsługiwanej wersji) jest używany protokół TLS 1.3, a certyfikat jest weryfikowany. Wymaga zainstalowania certyfikatu na hostach programu SQL Server, które odbierają połączenia z ustawioną wartością EncryptionLevel4. |
Uwaga / Notatka
W przypadku topologii replikacji z dystrybutorem zdalnym:
Prawidłowy certyfikat TLS/SSL jest zdefiniowany z w pełni kwalifikowaną nazwą domeny programu SQL Server. Aby agent pomyślnie nawiązał połączenie podczas ustawiania -EncryptionLevel2wartości , utwórz alias w lokalnym programie SQL Server. Parametr "Nazwa aliasu" powinien być nazwą serwera, a parametr "Serwer" powinien być ustawiony na w pełni kwalifikowaną nazwę programu SQL Server.
Aby uzyskać więcej informacji, zobacz Wyświetlanie i modyfikowanie ustawień zabezpieczeń replikacji.
-ExtendedEventConfigFile configuration_path_and_file_name
Określa ścieżkę i nazwę pliku dla pliku konfiguracji XML zdarzeń rozszerzonych. Plik konfiguracji zdarzeń rozszerzonych umożliwia konfigurowanie sesji i włączanie zdarzeń na potrzeby śledzenia. Tylko do użytku wewnętrznego.
-HistoryVerboseLevel [ 0 | 1 | 2 ]
Określa ilość historii rejestrowanej podczas operacji czytnika dzienników. Możesz zminimalizować wpływ rejestrowania historii na wydajność, wybierając pozycję 1.
| Wartość HistoryVerboseLevel | Opis |
|---|---|
0 |
Żaden. |
1 (ustawienie domyślne) |
Zawsze aktualizuj poprzedni komunikat historii o tym samym stanie (uruchamianie, postęp, powodzenie itd.). Jeśli nie istnieje żaden poprzedni rekord o tym samym stanie, wstaw nowy rekord. |
2 |
Wstaw nowe rekordy historii, chyba że rekord dotyczy takich elementów jak komunikaty bezczynności lub długotrwałe komunikaty zadań, w takim przypadku zaktualizuj poprzednie rekordy. |
-ZachowajAliveKomunikatInterval keep_alive_message_interval_seconds
Liczba sekund przed sprawdzeniem wątku historii, czy którekolwiek z istniejących połączeń oczekuje na odpowiedź z serwera. Tę wartość można zmniejszyć, aby uniknąć oznaczania agenta sprawdzania agenta czytnika dzienników jako podejrzanego podczas wykonywania długotrwałej partii. Wartość domyślna to 300 sekund.
-LoginTimeOut login_time_out_seconds
Liczba sekund przed upływem limitu czasu logowania. Wartość domyślna to 15 sekund.
-LogScanThreshold scan_threshold
Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
-MaxCmdsInTran number_of_commands
Określa maksymalną liczbę instrukcji pogrupowanych w transakcję, ponieważ czytnik dzienników zapisuje polecenia w bazie danych dystrybucji. Użycie tego parametru umożliwia agentowi czytnika dzienników i agentowi dystrybucji podzielenie dużych transakcji (składających się z wielu poleceń) w programie Publisher na kilka mniejszych transakcji po zastosowaniu do subskrybenta. Określenie tego parametru może zmniejszyć rywalizację w dystrybutorze i zmniejszyć opóźnienie między wydawcą i subskrybentem. Ponieważ oryginalna transakcja jest stosowana w mniejszych jednostkach, subskrybent może uzyskać dostęp do wierszy dużej transakcji logicznej wydawcy przed końcem oryginalnej transakcji, powodując zerwanie ścisłej niepodzielności transakcyjnej. Wartość domyślna to 0, która zachowuje granice transakcji programu Publisher.
Ten parametr jest ignorowany w przypadku publikacji innych niż SQL Server. Aby uzyskać więcej informacji, zobacz Konfigurowanie zadania zestawu transakcji.
MaxCmdsInTran nie została zaprojektowana tak, aby zawsze była włączona. Działa wokół przypadków, w których ktoś przypadkowo wykonał dużą liczbę operacji DML w jednej transakcji. Powoduje to opóźnienie dystrybucji poleceń, dopóki cała transakcja nie znajduje się w bazie danych dystrybucji, blokady są przechowywane itp. Jeśli rutynowo wchodzisz w tę sytuację, przejrzyj aplikacje i znajdź sposoby zmniejszenia rozmiaru transakcji.
Ostrzeżenie
Błędy klucza podstawowego mogą wystąpić, jeśli MaxCmdsInTran parametr zostanie dodany i usunięty podczas replikowania dużej transakcji. Aby usunąć błędy klucza podstawowego w dużych transakcjach, dodaj MaxCmdsInTran parametr z powrotem do momentu replikacji transakcji do bazy danych dystrybucji.
Użycie parametru MaxCmdsInTran w bazie danych z włączoną zarówno zmianą przechwytywania danych (CDC), jak i z włączoną replikacją nie jest obsługiwane i może prowadzić do utraty danych w tabelach zmian CDC.
-MessageInterval message_interval
Interwał czasu używany do rejestrowania historii. Zdarzenie historii jest rejestrowane po MessageInterval osiągnięciu wartości po zarejestrowaniu ostatniego zdarzenia historii.
Jeśli w źródle nie ma zreplikowanej transakcji, agent zgłasza do dystrybutora komunikat bez transakcji. Ta opcja określa, jak długo agent czeka przed raportowaniem innego komunikatu bez transakcji. Agenci zawsze zgłaszają komunikat bez transakcji, gdy wykrywają, że nie ma żadnych transakcji dostępnych w źródle po wcześniejszym przetwarzaniu replikowanych transakcji. Wartość domyślna to 60 sekund.
-MultiSubnetFailover [ 0 | 1 ]
Dotyczy: SQL Server 2019 (15.x) i nowsze wersje.
Określa, czy właściwość MultiSubnetFailover jest włączona, czy nie. Jeśli aplikacja łączy się z zawsze włączoną grupą dostępności w różnych podsieciach, ustawienie parametru MultiSubnetFailover na wartość 1 (true) zapewnia szybsze wykrywanie i nawiązywanie połączenia z (obecnie) aktywnym serwerem.
Podczas konfigurowania transakcyjnej publikacji w ag agent czytnika dzienników tworzy dynamiczny serwer połączony dla odbiornika w celu zweryfikowania metadanych. W programie SQL Server 2022 (16.x) CU 10 lub nowszych wersjach nastąpiła zmiana konfiguracji dynamicznego serwera połączonego. Aby uzyskać więcej informacji, zobacz KB5031778.
-Wyjście output_path_and_file_name
Ścieżka pliku wyjściowego agenta. Jeśli nazwa pliku nie zostanie podana, dane wyjściowe zostaną wysłane do konsoli programu . Jeśli określona nazwa pliku istnieje, dane wyjściowe są dołączane do pliku.
-OutputVerboseLevel [ 0 | 1 | 2 | 3 | 4 ]
Określa, czy dane wyjściowe powinny być pełne.
| Wartość | Opis |
|---|---|
0 |
Drukowane są tylko komunikaty o błędach. |
1 |
Wszystkie komunikaty raportu postępu agenta są drukowane. |
2 (ustawienie domyślne) |
Wszystkie komunikaty o błędach i komunikaty raportów postępu agenta są drukowane. |
3 |
Wydrukowano pierwsze 100 bajtów każdego zreplikowanych poleceń. |
4 |
Wszystkie zreplikowane polecenia są drukowane. |
Wartości 2–4 są przydatne podczas debugowania.
-Rozmiar pakietu packet_size
Rozmiar pakietu w bajtach. Wartość domyślna to 4096 (bajty).
-PollingInterval polling_interval
Jak często w sekundach dziennik jest odpytywane pod kątem replikowanych transakcji. Wartość domyślna to 5 sekund.
-Imię profilu profile_name
Określa profil agenta do użycia dla parametrów agenta. Jeśli ProfileName ma NULLwartość , profil agenta jest wyłączony. Jeśli ProfileName nie zostanie określony, zostanie użyty domyślny profil typu agenta. Aby uzyskać informacje, zobacz Profile agenta replikacji.
-PublisherFailoverPartner server_name [ \instance_name ]
Określa wystąpienie partnera trybu failover programu SQL Server biorące udział w sesji dublowania bazy danych z bazą danych publikacji. Aby uzyskać więcej informacji, zobacz Dublowanie i replikacja bazy danych (SQL Server).
-PublisherSecurityMode [ 0 | 1 ]
Określa tryb zabezpieczeń wydawcy. Wartość 0 wskazuje uwierzytelnianie programu SQL Server (wartość domyślna) i wartość 1 wskazuje tryb uwierzytelniania systemu Windows.
-Logowanie do wydawnictwa publisher_login
Nazwa logowania wydawcy.
-PublisherPassword publisher_password
Hasło wydawcy.
-QueryTimeOut query_time_out_seconds
Liczba sekund przed upływem limitu czasu zapytania. Wartość domyślna to 1800 sekund.
-ReadBatchSize number_of_transactions
Maksymalna liczba transakcji odczytanych z dziennika transakcji bazy danych publikowania na cykl przetwarzania z wartością domyślną 500 i maksymalnie 10000. Agent nadal odczytuje transakcje w partiach, dopóki wszystkie transakcje nie zostaną odczytane z dziennika. Ten parametr nie jest obsługiwany w przypadku programu Oracle Publishers.
-ReadBatchThreshold number_of_commands
Liczba poleceń replikacji do odczytu z dziennika transakcji przed wystawieniem subskrybenta przez agenta dystrybucji. Wartość domyślna to 0. Jeśli ten parametr nie zostanie określony, agent czytnika dzienników odczytuje na końcu dziennika lub do liczby określonej w -ReadBatchSize (liczba transakcji).
-RecoverFromDataErrors
Określa, że agent czytnika dzienników nadal działa, gdy napotka błędy w danych kolumny opublikowanych z programu Publisher innego niż SQL Server. Domyślnie takie błędy powodują niepowodzenie agenta czytnika dzienników. Jeśli używasz -RecoverFromDataErrorsmetody , błędne dane kolumn są replikowane jako NULL lub odpowiednie wartości inne niż null, a komunikaty ostrzegawcze są rejestrowane w tabeli MSlogreader_history . Ten parametr jest obsługiwany tylko w przypadku programu Oracle Publishers.
Uwagi
Jeśli program SQL Server Agent został zainstalowany do uruchamiania na lokalnym koncie systemowym zamiast w ramach konta użytkownika domeny (ustawienie domyślne), usługa będzie mogła uzyskać dostęp tylko do komputera lokalnego. Jeśli agent czytnika dzienników uruchomiony w ramach agenta programu SQL Server jest skonfigurowany do korzystania z trybu uwierzytelniania systemu Windows podczas logowania się do programu SQL Server, agent czytnika dzienników kończy się niepowodzeniem. Ustawieniem domyślnym jest uwierzytelnianie programu SQL Server. Aby uzyskać informacje o zmienianiu kont zabezpieczeń, zobacz Wyświetlanie i modyfikowanie ustawień zabezpieczeń replikacji.
Aby uruchomić agenta czytnika dzienników, wykonaj polecenie logread.exe w wierszu polecenia. Aby uzyskać informacje, zobacz Pojęcia dotyczące plików wykonywalnych agenta replikacji.