Агент распространения репликации

Область применения: SQL Server (все поддерживаемые версии) База данных SQL Azure

Агент распространения репликации перемещает моментальный снимок (для репликации моментальных снимков или транзакций) и транзакции, находящиеся в таблицах базы данных распространителя (для репликации транзакций), в целевые таблицы на подписчиках.

Примечание

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

Синтаксис

  
distrib [-?]  
-Publisher server_name[\instance_name]  
-PublisherDB publisher_database  
-Subscriber server_name[\instance_name]  
-SubscriberDB subscriber_database   
[-AltSnapshotFolder alt_snapshot_folder_path]   
[-BcpBatchSize bcp_batch_size]  
[-CommitBatchSize commit_batch_size]  
[-CommitBatchThreshold commit_batch_threshold]  
[-Continuous]  
[-DefinitionFile def_path_and_file_name]  
[-Distributor distributor]  
[-DistributorLogin distributor_login]  
[-DistributorPassword distributor_password]  
[-DistributorSecurityMode [0|1]]  
[-EncryptionLevel [0|1|2]]  
[-ErrorFile error_path_and_file_name]  
[-ExtendedEventConfigFile configuration_path_and_file_name]  
[-FileTransferType [0|1]]  
[-FtpAddress ftp_address]  
[-FtpPassword ftp_password]   
[-FtpPort ftp_port]  
[-FtpUserName ftp_user_name]  
[-HistoryVerboseLevel [0|1|2|3]]  
[-Hostname host_name]  
[-KeepAliveMessageInterval keep_alive_message_interval_seconds]  
[-LoginTimeOut login_time_out_seconds]  
[-MaxBcpThreads]  
[-MaxDeliveredTransactions number_of_transactions]  
[-MessageInterval message_interval]  
[-MultiSubnetFailover [0|1]]
[-OledbStreamThreshold oledb_stream_threshold]  
[-Output output_path_and_file_name]  
[-OutputVerboseLevel [0|1|2]]  
[-PacketSize packet_size]  
[-PollingInterval polling_interval]  
[-ProfileName profile_name]  
[-Publication publication]  
[-QueryTimeOut query_time_out_seconds]  
[-QuotedIdentifier quoted_identifier]  
[-SkipErrors native_error_id [:...n]]  
[-SubscriberDatabasePath subscriber_path]  
[-SubscriberLogin subscriber_login]  
[-SubscriberPassword subscriber_password]  
[-SubscriberSecurityMode [0|1]]  
[-SubscriberType [0|1|3]]  
[-SubscriptionStreams [1|2|...64]]  
[-SubscriptionTableName subscription_table]  
[-SubscriptionType [0|1|2]]  
[-TransactionsPerHistory [0|1|...10000]]  
[-UseDTS]  
[-UseInprocLoader]  
[-UseOledbStreaming]  

Аргументы

-?
Выводит список всех доступных параметров.

-Publisherserver_name[\instance_name]
Имя издателя. Укажите имя_сервера, чтобы использовать экземпляр сервера Microsoft SQL Server по умолчанию. Укажите имя_сервера\имя_экземпляра для именованного экземпляра SQL Server по умолчанию на этом сервере. Если ваша база данных издателя находится в группе доступности Always On, она по-прежнему будет отражать исходное имя основного сервера издателя из-за sp_redirect_publisher. Она не будет отражать имя прослушивателя группы доступности.

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

-Server_name подписчика[\instance_name]
Имя подписчика. Укажите server_name , чтобы использовать экземпляр сервера SQL Server по умолчанию. Укажите имя_сервера\имя_экземпляра для именованного экземпляра SQL Server по умолчанию на этом сервере. Если база данных подписчика находится в группе доступности Always On, она должна отражать имя прослушивателя группы доступности.

-SubscriberDBбаза_данных_подписчика
Имя базы данных подписчика.

-AltSnapshotFolderальтернативный_путь_папки_снимка
Путь к папке, где хранится исходный моментальный снимок для подписки.

-BcpBatchSizeразмер_пакета_bcp
Число строк для отправки при операции массового копирования. При выполнении операции bcp in размер пакета равен числу строк для отправки на сервер в одной транзакции, а также числу строк, которые необходимо отправить до того, как агент распространителя зарегистрирует сообщение о ходе выполнения от программы bcp . При выполнении операции bcp out используются пакеты фиксированного размера ( 1000 ).

-CommitBatchSizeразмер_пакета_фиксации
Число транзакций, отправляемых подписчику перед выполнением инструкции COMMIT. Значение по умолчанию равно 100, а максимальное — 10 000. Этот параметр игнорируется, когда моментальный снимок применяется к подписчику агент распространения.

-CommitBatchThresholdпорог_пакета_фиксации
Число команд репликации, отправляемых подписчику перед выполнением инструкции COMMIT. Значение по умолчанию равно 1000, а максимальное — 10 000. Этот параметр игнорируется, когда моментальный снимок применяется к подписчику агент распространения.

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

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

-Distributorраспространитель
Имя распространителя. Для принудительного распространения по умолчанию используется имя локального распространителя. Если база данных распространителя находится в группе доступности Always On, она должна отражать имя прослушивателя группы доступности.

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

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

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

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

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

Примечание

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

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

-ErrorFileпуть_и_имя_файла_ошибок
Путь и имя файла ошибок, создаваемого агентом распространителя. Этот файл создается в любой момент, когда происходит ошибка при применении транзакций репликации на подписчике; ошибки, возникающие на издателе или распространителе, в этом файле не регистрируются. Этот файл содержит транзакции репликации, завершившиеся ошибкой, и соответствующие сообщения об ошибках. Если параметр не указан, файл ошибок создается в текущем каталоге агента распространителя. Его именем будет имя агента распространителя с расширением ERR. Если файл с указанным именем уже существует, то сообщения об ошибках будут добавляться в существующий файл. Длина параметра не должна превышать 256 символов Юникода.

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

-FileTransferType [ 0| 1]
Определяет тип передачи файла. 0 означает UNC (формат соглашения об универсальных именах), а 1 означает FTP (протокол передачи файлов).

-FtpAddressадрес_ftp
Сетевой адрес службы FTP распространителя. Если он не указан, то используется параметр DistributorAddress . Если не указан параметр DistributorAddress , то используется параметр Distributor .

-FtpPasswordпароль_ftp
Пароль пользователя, используемый для подключения к службе FTP.

-FtpPortпорт_ftp
Номер порта службы FTP распространителя. Если не указан, используется порт службы FTP по умолчанию (21).

-FtpUserNameимя_пользователя_ftp
Имя пользователя для соединения со службой FTP. Если не указано, то будет использовано имя anonymous .

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

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

-Hostnameимя_узла
Имя узла, используемое при соединении с издателем. Длина параметра не должна превышать 128 символов Юникода.

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

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

-MaxBcpThreadsчисло_потоков
Указывает число операций массового копирования, которые можно проводить параллельно. Максимальное число потоков и соединений ODBC, которые существуют одновременно, равно меньшему из MaxBcpThreads и числа запросов на массовое копирование, которые появляются в транзакции синхронизации в базе данных распространителя. ЗначениеMaxBcpThreads должно быть больше 0 и не имеет жестко запрограммированного максимума. Значение по умолчанию равно числу процессоров, умноженному на 2 . Максимальное значение равно 8. Применение моментального снимка, созданного в издателе в режиме одновременного моментального снимка, производится в один поток, независимо от значения, указанного в параметре MaxBcpThreads.

-MaxDeliveredTransactionsчисло_транзакций
Определяет максимальное число транзакций по запросу и принудительных транзакций, применяемых к подписчикам за одну синхронизацию. Значение 0 говорит о том, что максимальное число транзакций неограниченно. Другие значения могут использоваться подписчиками для сокращения длительности процесса синхронизации, запущенного с издателя.

Примечание

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

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

  • Значение TransactionsPerHistory достигается после записи последнего события в журнал.

  • Значение MessageInterval достигается после записи последнего события в журнал.

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

-MultiSubnetFailover Определяет, включено ли свойство MultiSubnetFailover. Если приложение подключается к группе доступности Always On в разных подсетях, установка параметра MultiSubnetFailover=true обеспечивает более быстрое обнаружение активного сервера и подключение к нему.
Применимо к: SQL Server (начиная с SQL Server 2019 (15.x)).

-OledbStreamThresholdпорог_потока_oledb
Указывает минимальный размер (в байтах) данных больших двоичных объектов, ниже которого их привязка будет выполняться в виде потока. Для использования этого параметра необходимо указать значение -UseOledbStreaming. Значение может находиться в диапазоне от 400 до 1048576, значение по умолчанию — 16384.

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

-OutputVerboseLevel [ 0| 1| 2]
Указывает, должны ли выводимые данные быть подробными. Если уровень подробностей равен 0, выводятся только сообщения об ошибках. Если уровень подробностей равен 1, выводятся все сообщения отчета о состоянии. Если уровень подробностей равен 2 (по умолчанию), выводятся и сообщения об ошибках, и сообщения отчета о состоянии, что удобно для отладки.

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

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

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

-Publicationпубликация
Имя публикации. Этот параметр допустим только в том случае, если в данной публикации моментальный снимок всегда доступен для новых или повторно инициализированных подписок.

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

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

-SkipErrorsид_ошибки [:... n]
Список с разделителями-двоеточиями, перечисляющий коды ошибок, которые этот агент должен пропускать. Этот параметр игнорируется, когда моментальный снимок применяется к подписчику агент распространения.

-SubscriberDatabasePathпуть_базы_данных_подписчика
Путь к базе данных Jet (MDB-файл) при значении SubscriberType равном 2 (позволяет соединиться с базой данных Jet без указания имени источника данных ODBC (DSN)).

-SubscriberLoginимя_входа_подписчика
Имя входа подписчика. Данный параметр должен быть указан, если значение SubscriberSecurityMode равно 0 (при проверке подлинности SQL Server Authentication).

-SubscriberPasswordпароль_подписчика
Пароль подписчика. Данный параметр должен быть указан, если значение SubscriberSecurityMode равно 0 (при проверке подлинности SQL Server Authentication).

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

-SubscriberType [ 0| 1| 3]
Указывает тип соединения с подписчиком, используемый агентом распространителя.

Значение SubscriberType Описание
0 SQL Server
1 Источник данных ODBC
3 OLE DB, источник данных

-SubscriptionStreams [0|1|2|...64]
Число соединений на каждого агента распространителя для параллельного применения пакетов изменений на подписчике при сохранении многих характеристик транзакций, имеющихся для однопоточного выполнения. Для издателя SQL Server поддерживается диапазон значений от 1 до 64. Этот параметр поддерживается только тогда, когда издатель и распространитель выполняются на SQL Server 2005 (9.x) и более поздних версиях. Этот параметр не поддерживается или должен быть равен 0 для подписчиков, отличных от SQL Server, и одноранговых подписок. Этот параметр игнорируется, когда моментальный снимок применяется к подписчику агент распространения.

Примечание

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

Важно!

При указании в параметре -SubscriptionStreamsзначения 2 и более порядок получения транзакций у подписчика может отличаться от порядка, в котором они были выполнены у издателя. Если это приводит к нарушениям ограничений при синхронизации, то следует параметром NOT FOR REPLICATION отключить принудительное выполнение ограничений во время синхронизации. Дополнительные сведения см. в статье Управление поведением триггеров и ограничений во время синхронизации (программирование репликации на языке Transact-SQL).

Примечание

Потоки подписок не работают для статей, настроенных для доставки Transact-SQL. Для использования потоков подписки настройте в статьях доставку вызовов хранимых процедур.

-SubscriptionTableNameтаблица_подписки
Имя таблицы подписки, созданной или используемой в заданном подписчике. Если этот параметр не указан, используется таблица MSreplication_subscriptions (Transact-SQL). Этот параметр следует использовать СУБД, не поддерживающих длинные имена файлов.

-SubscriptionType [ 0| 1| 2]
Определяет тип подписки для распространения. Значение 0 указывает на подписку по запросу, значение 1 — на принудительную подписку, а значение 2 — на анонимную подписку.

-TransactionsPerHistory [ 0| 1|... 10000]
Указывает интервал транзакций для регистрации журналов. Сообщение записывается в журнал, как только число зафиксированных транзакций после последней записи в журнал превысило значение этого параметра. Значение по умолчанию — 100. 0 означает бесконечное значение TransactionsPerHistory. See the preceding –MessageIntervalparameter.

-UseDTS
Должен быть указан в качестве параметра для публикации, для которой разрешено преобразование данных.

-UseInprocLoader
Повышает производительность исходного моментального снимка, заставляя агент распространителя использовать команду BULK INSERT при применении файлов моментальных снимков к подписчику. Это устаревший параметр, несовместимый с типом данных XML. Этот параметр может использоваться, если не выполняется репликация XML-данных. Этот параметр нельзя использовать с моментальными снимками в символьном формате или для подписчиков, отличных от SQL Server. При использовании этого параметра учетная запись службы SQL Server на подписчике должна иметь разрешение на чтение каталога, в котором находятся BCP-файлы данных моментальных снимков. Если этот параметр не указан, то агент (для подписчиков, отличных от SQL Server) или драйвер ODBC, загружаемый агентом (для подписчиков SQL Server), считывает его из файлов, поэтому контекст безопасности учетной записи службы SQL Server не используется.

-UseOledbStreaming
Если этот параметр указан, то разрешает привязку двоичных данных больших объектов в виде потока. Задать размер (в байтах), при превышении которого будет использоваться поток, можно с помощью параметра -OledbStreamThreshold . ПараметрUseOledbStreaming включен по умолчанию. UseOledbStreaming записывает данные в папку C:\Program Files\Microsoft SQL Server\<version>\COM.

Комментарии

Важно!

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

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

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

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

См. также:

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