Replication Log Reader Agent

Применимо к:SQL Server Управляемый экземпляр SQL Azure

Агент чтения журнала репликации производит мониторинг журналов транзакций для всех баз данных, включенных в репликацию транзакций, и копирует помеченные для репликации транзакции из журнала транзакций в базу данных распространителя.

Примечание.

Параметры можно указывать в любом порядке. Если необязательные параметры не указаны, используются стандартные значения из профиля агента по умолчанию.

Синтаксис

  
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]]  
[-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]  

Аргументы

-?
Отображает сведения об использовании.

-Publisherимя_сервера[\имя_экземпляра]
Имя издателя. Укажите server_name для экземпляра Microsoft SQL Server по умолчанию на этом сервере. Укажите server_name instance_name\ для именованного экземпляра SQL Server на этом сервере.

-PublisherDBбаза_данных_издателя
Имя базы данных издателя.

-Continuous
Указывает, производит ли агент непрерывный опрос транзакций для репликации. Если да, то он с заданным интервалом производит запрос из источника транзакций, даже если транзакции отсутствуют.

-DefinitionFiledef_path_and_file_name
Путь к файлу определения агента. Файл определения агента содержит параметры командной строки для агента. Содержимое файла анализируется как для исполняемого файла. Значения аргумента, содержащие произвольные символы, следует заключать в двойные кавычки (").

-Distributorserver_name[\instance_name]
Имя распространителя. Укажите server_name для экземпляра SQL Server по умолчанию на этом сервере. Укажите server_name instance_name\ для именованного экземпляра SQL Server на этом сервере.

-DistributorLoginимя_входа_распространителя
Имя входа распространителя.

-DistributorPassworddistributor_password
Пароль распространителя.

-DistributorSecurityMode [ 0| 1]
Указывает режим безопасности распространителя. Значение 0 указывает режим проверки подлинности SQL Server (по умолчанию), а значение 1 указывает режим проверки подлинности Microsoft Windows.

-EncryptionLevel [ 0 | 1 | 2 ]
Уровень шифрования по протоколу TLS (ранее — SSL), который используется агентом чтения журнала при установлении соединений.

Значение EncryptionLevel Description
0 Указывает, что TLS не используется.
1 Указывает, что TLS используется, но агент не проверяет, подписан ли сертификат сервера TLS/SSL надежным издателем.
2 Указывает, что TLS используется и сертификат подтвержден.

Примечание.

Допустимый TLS/SSL-сертификат задается с полным доменным именем SQL Server. Если параметр -EncryptionLevel имеет значение 2, то для подключения агента создайте псевдоним на локальном сервере SQL Server. Для параметра Alias Name (Имя псевдонима) должно быть указано имя сервера, а для параметра Server (Сервер) — полное доменное имя SQL Server.

Дополнительные сведения см. в статье Просмотр и изменение параметров безопасности репликации.

-ExtendedEventConfigFileconfiguration_path_and_file_name
Задает путь и имя файла для XML-файла конфигурации расширенных событий. Файл конфигурации расширенных событий позволяет настраивать сеансы и включать события для трассировки.
Только для внутреннего применения.

-HistoryVerboseLevel [ 0| 1| 2]
Указывает объем данных, заносимых в журнал во время операции чтения журнала. Влияние на производительность, оказываемое ведением журнала, можно максимально уменьшить, выбрав значение 1.

Значение HistoryVerboseLevel Description
0
1 По умолчанию. Всегда обновлять предыдущее сообщение журнала с таким же состоянием (запуск, выполнение, успех и т. д.). Если предыдущих сообщений с таким состоянием нет, то вставить новую запись.
2 Если есть сообщения о таких событиях, как состояние простоя или долго выполняемое задание, то обновить предыдущие записи, в противном случае вставить новые записи журнала.

-KeepAliveMessageIntervalkeep_alive_message_interval_seconds
Количество секунд до того, как поток журнала проверяет наличие соединений, ожидающих ответа от сервера. Это значение можно уменьшить, чтобы агент проверки не помечал агент чтения журнала как подозрительный при выполнении долго выполняющегося пакета. Значение по умолчанию — 300 секунд.

-LoginTimeOutвремя_ожидания_входа_в_сек
Количество секунд до истечения времени ожидания входа. Значение по умолчанию — 15 секунд.

-LogScanThresholdscan_threshold
Только для внутреннего применения.

-MaxCmdsInTrannumber_of_commands
Задает максимальное количество инструкций, группируемых в транзакцию, когда агент чтения журнала записывает команды в базу данных распространителя. Использование этого параметра позволяет агенту чтения журнала и агенту распространителя разделять большие транзакции (состоящие из множества команд) на издателе на несколько меньших транзакций при применении команд на подписчике. Задание этого параметра может снизить вероятность состязаний на распространителе и уменьшить задержку при передаче данных между издателем и подписчиком. Поскольку исходная транзакция применяется меньшими по размеру блоками, подписчик может получить доступ к строкам большой логической транзакции издателя до завершения исходной транзакции, разбивая строгую атомарность транзакции. По умолчанию установлено значение 0, сохраняющее границы транзакции издателя.

Примечание.

Этот параметр игнорируется для публикаций, отличных от SQL Server. Дополнительные сведения см. в подразделе «Настройка задания наборов транзакций» раздела Performance Tuning for Oracle Publishers.

Предупреждение

ПараметрMaxCmdsInTran не предназначен для постоянного использования. Он существует для обхода случаев, когда кто-то случайно выполнял большое количество операций DML в одной транзакции (что приводит к задержке в распределении команд до тех пор, пока вся транзакция не находится в базе данных распространителя, блокировки удерживаются и т. д.). Если такая ситуация возникает регулярно, изучите приложение и уменьшите размер транзакций.

Предупреждение

MaxCmdsInTran не поддерживается, если указанная база данных публикации включена как для отслеживания измененных данных, так и для реплика. Использование MaxCmdsInTran в этой конфигурации может привести к потере данных в таблицах изменений CDC. Это также может привести к ошибкам PK, если параметр MaxCmdsInTran добавляется и удаляется при реплика больших транзакций.

-MessageIntervalmessage_interval
Интервал времени, использующийся для ведения журнала. Событие регистрируется в журнале, когда после регистрации последнего события достигнуто значение MessageInterval .

При отсутствии реплицируемой транзакции на источнике агент передает распространителю сообщение об отсутствии транзакции. Данный параметр определяет период ожидания агента до передачи следующего сообщения об отсутствии транзакции. Агенты всегда передают сообщение об отсутствии транзакции, если на источнике после ранее обработанных реплицируемых транзакций не обнаруживается доступных транзакций. Значение по умолчанию ― 60 секунд.

-MultiSubnetFailover [0|1] Определяет, включено ли свойство MultiSubnetFailover. Если приложение подключается к группе доступности AlwaysOn в разных подсетях, установка MultiSubnetFailover на 1 (true) обеспечивает быстрое обнаружение и подключение к активному серверу (в настоящее время).

При настройке публикации транзакций в группе доступности агент чтения журналов создает динамический связанный сервер для прослушивателя, чтобы проверить метаданные. Начиная с SQL Server 2022 CU10, существует изменение конфигурации динамического связанного сервера. Дополнительные сведения см. в КБ5031778.

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)).

-Outputoutput_path_and_file_name
Путь к выходному файлу агента. Если имя файла не указано, данные выводятся на консоль. Если указанный файл существует, то выходные данные добавляются в конец файла.

-OutputVerboseLevel [ 0| 1| 2 | 3 | 4 ]
Указывает, должны ли выводимые данные быть подробными.

значение Описание
0 Выводятся только сообщения об ошибках.
1 Выводятся все сообщения о ходе выполнения агента.
2 (по умолчанию) Выводятся все сообщения об ошибках и о ходе выполнения агента.
3 Выводятся первые 100 байт для каждой реплицируемой команды.
4 Выводятся все реплицируемые команды.

Значения 2-4 могут оказаться полезными при отладке.

-PacketSizepacket_size
Размер пакета в байтах. Значение по умолчанию равно 4 096 байт.

-PollingIntervalpolling_interval
Определяет частоту (в секундах) опроса журнала о реплицируемых транзакциях. Значение по умолчанию — 5 секунд.

-ProfileNameprofile_name
Указывает профиль агента, из которого берутся параметры агента. Если ProfileName имеет значение NULL, профиль агента отключен. Если значение ProfileName не указано, используется профиль по умолчанию для агентов этого типа. Дополнительные сведения см. в статье Профили агента репликации.

-PublisherFailoverPartnerserver_name[\instance_name]
Указывает экземпляр партнера по отработке отказа SQL Server, участвующий в сеансе зеркало обработки базы данных с базой данных публикации. Дополнительные сведения см. в статье Зеркальное отображение и репликация баз данных (SQL Server).

-PublisherSecurityMode [ 0| 1]
Указывает режим безопасности издателя. Значение 0 указывает на проверку подлинности SQL Server (по умолчанию), а значение 1 указывает режим проверки подлинности Windows.

-PublisherLoginимя_входа_на_издателе
Имя входа издателя.

-PublisherPasswordpublisher_password
Пароль издателя.

-QueryTimeOutquery_time_out_seconds
Количество секунд до истечения времени ожидания запроса. Значение по умолчанию — 1800 секунд.

-ReadBatchSizenumber_of_transactions
Определяет максимальное число транзакций, которые считываются из журнала транзакций публикуемой базы данных за один цикл обработки (значение по умолчанию — 500, максимальное значение — 10 000). Агент будет продолжать считывать транзакции пакетами, пока все они не будут считаны из журнала. Этот параметр не поддерживается для издателей Oracle.

-ReadBatchThresholdnumber_of_commands
Определяет число команд репликации, которые считываются из журнала транзакций перед отправкой подписчику агентом распространителя. По умолчанию установлено значение 0. Если этот параметр не указан, то агент чтения журнала произведет считывание до конца журнала или до числа транзакций, указанного в параметре -ReadBatchSize .

-RecoverFromDataErrors
Указывает, что агент чтения журнала должен продолжить работу после возникновения ошибок данных в столбце, опубликованном издателем, отличным от SQL Server. По умолчанию такие ошибки приводят к завершению работы агента чтения журнала. Если указан параметр -RecoverFromDataErrors, то производится репликация ошибочных данных либо значениями NULL, либо другими соответствующими значениями, а предупреждающие сообщения записываются в таблицу MSlogreader_history . Этот параметр поддерживается только для издателей Oracle.

Замечания

Важно!

Если вы установили агент SQL Server для запуска под локальной системной учетной записью вместо учетной записи пользователя домена (по умолчанию), служба может получить доступ только к локальному компьютеру. Если агент чтения журналов, работающий в агент SQL Server, настроен для использования режима проверки подлинности Windows при входе в SQL Server, агент чтения журналов завершается сбоем. По умолчанию используется проверка подлинности SQL Server. Дополнительные сведения об изменении учетных записей безопасности см. в разделе View and Modify Replication Security Settings.

Чтобы запустить агент чтения журнала, выполните из командной строки программу logread.exe . Дополнительные сведения см. в статье Основные понятия исполняемых файлов агента репликации.

Журнал изменений

Обновленное содержимое
Добавлен параметр -ExtendedEventConfigFile .
Добавлен параметр -MultiSubnetFailover.

См. также

Администрирование агента репликации