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 [ \instance_name ]
Имя издателя. Укажите <server_name>
для экземпляра SQL Server по умолчанию на этом сервере. Укажите <server_name>\<instance_name>
именованный экземпляр SQL Server на этом сервере.
-PublisherDB publisher_database
Имя базы данных издателя.
-Continuous
Указывает, производит ли агент непрерывный опрос транзакций для репликации. Если да, то он с заданным интервалом производит запрос из источника транзакций, даже если транзакции отсутствуют.
-DefinitionFile def_path_and_file_name
Путь к файлу определения агента. Файл определения агента содержит параметры командной строки для агента. Содержимое файла анализируется как для исполняемого файла. Используйте двойные кавычки ("
) для указания значений аргументов, содержащих произвольные символы.
-Распространитель server_name [ \instance_name ]
Имя распространителя. Укажите <server_name>
для экземпляра SQL Server по умолчанию на этом сервере. Укажите <server_name>\<instance_name>
именованный экземпляр SQL Server на этом сервере.
-DistributorLogin distributor_login
Имя входа распространителя.
-DistributorPassword distributor_password
Пароль распространителя.
-DistributorSecurityMode [ 0 | 1 ]
Указывает режим безопасности распространителя. Значение 0
указывает режим проверки подлинности SQL Server (по умолчанию) и значение 1
режима проверки подлинности Windows.
-EncryptionLevel [ 0 | 1 | 2 ]
Уровень безопасности транспортного уровня (TLS), ранее известный как протокол SSL, шифрование, используемое агентом чтения журналов при подключении.
Значение EncryptionLevel | Description |
---|---|
0 |
Указывает, что TLS не используется. |
1 |
Указывает, что используется TLS, но агент не проверяет, подписан ли сертификат сервера TLS доверенным издателем. |
2 |
Указывает, что TLS используется и сертификат подтвержден. |
Примечание.
Допустимый TLS/SSL-сертификат задается с полным доменным именем SQL Server. Чтобы агент успешно подключился при настройке, -EncryptionLevel
2
создайте псевдоним на локальном сервере SQL Server. Для параметра Alias Name (Имя псевдонима) должно быть указано имя сервера, а для параметра Server (Сервер) — полное доменное имя SQL Server.
Дополнительные сведения см. в статье View and Modify Replication Security Settings.
-ExtendedEventConfigFile configuration_path_and_file_name
Задает путь и имя файла для XML-файла конфигурации расширенных событий. Файл конфигурации расширенных событий позволяет настраивать сеансы и включать события для трассировки. Только для внутреннего применения.
-HistoryVerboseLevel [ 0 | 1 | 2 ]
Указывает объем данных, заносимых в журнал во время операции чтения журнала. Вы можете свести к минимуму влияние журнала журнала, выбрав 1
.
Значение HistoryVerboseLevel | Description |
---|---|
0 |
Нет. |
1 (по умолчанию) |
Всегда обновлять предыдущее сообщение журнала с таким же состоянием (запуск, выполнение, успех и т. д.). Если предыдущих сообщений с таким состоянием нет, то вставить новую запись. |
2 |
Если есть сообщения о таких событиях, как состояние простоя или долго выполняемое задание, то обновить предыдущие записи, в противном случае вставить новые записи журнала. |
-KeepAliveMessageInterval keep_alive_message_interval_seconds
Количество секунд до того, как поток журнала проверяет, ожидает ли какой-либо из существующих подключений ответ от сервера. Это значение можно уменьшить, чтобы агент проверки не помечал агент чтения журнала как подозрительный при выполнении долго выполняющегося пакета. Значение по умолчанию — 300 секунд.
-LoginTimeOut login_time_out_seconds
Количество секунд до истечения времени ожидания входа. Значение по умолчанию — 15 секунд.
-LogScanThreshold scan_threshold
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
-MaxCmdsInTran number_of_commands
Задает максимальное количество инструкций, группируемых в транзакцию, когда агент чтения журнала записывает команды в базу данных распространителя. Использование этого параметра позволяет агенту чтения журнала и агенту распространителя разделять большие транзакции (состоящие из множества команд) на издателе на несколько меньших транзакций при применении команд на подписчике. Задание этого параметра может снизить вероятность состязаний на распространителе и уменьшить задержку при передаче данных между издателем и подписчиком. Так как исходная транзакция применяется в небольших единицах, подписчик может получить доступ к строкам большой логической транзакции издателя до конца исходной транзакции, нарушая строгую атомарность транзакций. Значением по умолчанию является 0
сохранение границ транзакций издателя.
Этот параметр игнорируется для публикаций, отличных от SQL Server. Дополнительные сведения см. в разделе "Настройка задания набора транзакций".
MaxCmdsInTran
не был разработан, чтобы всегда включаться. Это работает в тех случаях, когда кто-то случайно выполнил большое количество операций DML в одной транзакции. Это приводит к задержке в распределении команд, пока вся транзакция не находится в базе данных распространителя, удерживается блокировка и т. д. Если вы обычно попадаете в эту ситуацию, просмотрите приложения и найдите способы уменьшения размера транзакции.
Предупреждение
Ошибки первичного ключа могут возникать, если MaxCmdsInTran
параметр добавляется и удаляется при репликации большой транзакции. Чтобы устранить ошибки первичного ключа для больших транзакций, добавьте MaxCmdsInTran
параметр обратно, пока транзакция не будет реплицирована в базу данных распространителя.
MaxCmdsInTran
Использование параметра в базе данных, включающей запись измененных данных (CDC) и репликацию, не поддерживается и может привести к потере данных в таблицах изменений CDC.
-MessageInterval message_interval
Интервал времени, используемый для ведения журнала. Событие журнала регистрируется при MessageInterval
достижении значения после последнего события журнала.
Если в источнике реплицированная транзакция отсутствует, агент сообщает о отсутствии транзакций распространителю. Данный параметр определяет период ожидания агента до передачи следующего сообщения об отсутствии транзакции. Агенты всегда передают сообщение об отсутствии транзакции, если на источнике после ранее обработанных реплицируемых транзакций не обнаруживается доступных транзакций. Значение по умолчанию ― 60 секунд.
-MultiSubnetFailover [ 0 | 1 ]
Область применения: SQL Server 2019 (15.x) и более поздних версий.
Указывает, включено ли свойство MultiSubnetFailover. Если приложение подключается к группе доступности AlwaysOn в разных подсетях, установка MultiSubnetFailover на 1 (true) обеспечивает быстрое обнаружение и подключение к активному серверу (в настоящее время).
При настройке публикации транзакций в группе доступности агент чтения журналов создает динамический связанный сервер для прослушивателя, чтобы проверить метаданные. В SQL Server 2022 (16.x) CU 10 и более поздних версий существует изменение конфигурации динамического связанного сервера. Дополнительные сведения см. в KB5031778.
-Output output_path_and_file_name
Путь к выходному файлу агента. Если имя файла не указано, выходные данные отправляются в консоль. Если указанный файл существует, то выходные данные добавляются в конец файла.
-OutputVerboseLevel [ 0 | 1 | 2 | 3 | 4 ]
Указывает, должны ли выводимые данные быть подробными.
значение | Описание |
---|---|
0 |
Выводятся только сообщения об ошибках. |
1 |
Выводятся все сообщения о ходе выполнения агента. |
2 (по умолчанию) |
Выводятся все сообщения об ошибках и о ходе выполнения агента. |
3 |
Выводятся первые 100 байт для каждой реплицируемой команды. |
4 |
Выводятся все реплицируемые команды. |
Значения 2-4 могут оказаться полезными при отладке.
-PacketSize packet_size
Размер пакета в байтах. Значение по умолчанию равно 4 096 байт.
-PollingInterval polling_interval
Как часто в секундах журнал запрашивается для реплицированных транзакций. Значение по умолчанию — 5 секунд.
-ProfileName profile_name
Указывает профиль агента, из которого берутся параметры агента. Если ProfileName
это NULL
так, профиль агента отключен. Если ProfileName
это не указано, используется профиль по умолчанию для типа агента. Дополнительные сведения см. в статье Профили агента репликации.
-PublisherFailoverPartner server_name [ \instance_name ]
Указывает экземпляр партнера по отработке отказа SQL Server, участвующий в сеансе зеркального отображения базы данных с базой данных публикации. Дополнительные сведения см. в статье Зеркальное отображение и репликация баз данных (SQL Server).
-PublisherSecurityMode [ 0 | 1 ]
Указывает режим безопасности издателя. Значение 0
указывает проверку подлинности SQL Server (по умолчанию) и значение 1
, указывающее режим проверки подлинности Windows.
-PublisherLogin publisher_login
Имя входа издателя.
-PublisherPassword publisher_password
Пароль издателя.
-QueryTimeOut query_time_out_seconds
Количество секунд до истечения времени ожидания запроса. Значение по умолчанию — 1800 секунд.
-ReadBatchSize number_of_transactions
Максимальное количество транзакций, считываемых из журнала транзакций базы данных публикации на цикл обработки, с значением по умолчанию 500 и максимальным значением 10000. Агент продолжает считывать транзакции в пакетах, пока все транзакции не будут считываться из журнала. Этот параметр не поддерживается для издателей Oracle.
-ReadBatchThreshold number_of_commands
Количество команд репликации, считываемых из журнала транзакций перед выдачой подписчику агент распространения. По умолчанию установлено значение 0. Если этот параметр не указан, агент чтения журналов считывает в конец журнала или номер, указанный в -ReadBatchSize
(число транзакций).
-RecoverFromDataErrors
Указывает, что агент чтения журнала должен продолжить работу после возникновения ошибок данных в столбце, опубликованном издателем, отличным от SQL Server. По умолчанию такие ошибки приводят к завершению работы агента чтения журнала. При использовании -RecoverFromDataErrors
ошибочные данные столбца реплицируются как NULL
или соответствующее значение, отличное от NULL, и предупреждения регистрируются в таблицу MSlogreader_history . Этот параметр поддерживается только для издателей Oracle.
Замечания
Если вы установили агент SQL Server для запуска под локальной системной учетной записью вместо учетной записи пользователя домена (по умолчанию), служба может получить доступ только к локальному компьютеру. Если агент чтения журналов, работающий в агент SQL Server, настроен для использования режима проверки подлинности Windows при входе в SQL Server, агент чтения журналов завершается сбоем. По умолчанию используется проверка подлинности SQL Server. Дополнительные сведения об изменении учетных записей безопасности см. в разделе View and Modify Replication Security Settings.
Чтобы запустить агент чтения журналов, выполните команду logread.exe
из командной строки. Дополнительные сведения см. в статье Основные понятия исполняемых файлов агента репликации.