Поделиться через


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
Указывает, производит ли агент непрерывный опрос транзакций для репликации. Если да, то он с заданным интервалом производит запрос из источника транзакций, даже если транзакции отсутствуют.

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

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

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

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

-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.

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

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

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

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

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

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

-LogScanThreshold порог_сканирования
Только для внутреннего применения.

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-PublisherPassword пароль_на_издателе
Пароль издателя.

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

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

-ReadBatchThreshold число_команд
Определяет число команд репликации, которые считываются из журнала транзакций перед отправкой подписчику агентом распространителя. По умолчанию установлено значение 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.

См. также

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