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


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

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

Примечание.

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

Синтаксис

  
      distrib [-?]  
-Publisherserver_name[\instance_name]  
-PublisherDBpublisher_database-Subscriberserver_name[\instance_name]  
-SubscriberDBsubscriber_database   
[-AltSnapshotFolderalt_snapshot_folder_path]   
[-BcpBatchSizebcp_batch_size]  
[-CommitBatchSizecommit_batch_size]  
[-CommitBatchThresholdcommit_batch_threshold]  
[-Continuous]  
[-DefinitionFiledef_path_and_file_name]  
[-Distributordistributor]  
[-DistributorLogindistributor_login]  
[-DistributorPassworddistributor_password]  
[-DistributorSecurityMode [0|1]]  
[-EncryptionLevel [0|1|2]]  
[-ErrorFileerror_path_and_file_name]  
[-ExtendedEventConfigFileconfiguration_path_and_file_name]  
[-FileTransferType [0|1]]  
[-FtpAddressftp_address]  
[-FtpPasswordftp_password]   
[-FtpPortftp_port]  
[-FtpUserNameftp_user_name]  
[-HistoryVerboseLevel [0|1|2|3]]  
[-Hostnamehost_name]  
[-KeepAliveMessageIntervalkeep_alive_message_interval_seconds]  
[-LoginTimeOutlogin_time_out_seconds]  
[-MaxBcpThreads]  
[-MaxDeliveredTransactionsnumber_of_transactions]  
[-MessageIntervalmessage_interval]  
[-OledbStreamThresholdoledb_stream_threshold]  
[-Outputoutput_path_and_file_name]  
[-OutputVerboseLevel [0|1|2]]  
[-PacketSizepacket_size]  
[-PollingIntervalpolling_interval]  
[-ProfileNameprofile_name]  
[-Publicationpublication]  
[-QueryTimeOutquery_time_out_seconds]  
[-QuotedIdentifierquoted_identifier]  
[-SkipErrorsnative_error_id [:...n]]  
[-SubscriberDatabasePathsubscriber_path]  
[-SubscriberLoginsubscriber_login]  
[-SubscriberPasswordsubscriber_password]  
[-SubscriberSecurityMode [0|1]]  
[-SubscriberType [0|1|3]]  
[-SubscriptionStreams [1|2|...64]]  
[-SubscriptionTableNamesubscription_table]  
[-SubscriptionType [0|1|2]]  
[-TransactionsPerHistory [0|1|...10000]]  
[-UseDTS]  
[-UseInprocLoader]  
[-UseOledbStreaming]  

Аргументы

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

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

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

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

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

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

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

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

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

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

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

-Distributor распространитель
Имя распространителя. Для принудительного распространения по умолчанию используется имя локального распространителя.

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

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

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

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

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

Примечание.

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

Дополнительные сведения см. в разделе Репликация SQL Server Security.

-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 Description
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 секунд.

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

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

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

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

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

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

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

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

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

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

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

-SubscriberLogin имя_входа_подписчика
Имя входа подписчика. Если подписчикSecurityMode имеет значение 0 (для проверки подлинности SQL Server), этот параметр необходимо указать.

-SubscriberPassword пароль_подписчика
Пароль подписчика. Если подписчикSecurityMode имеет значение 0 (для проверки подлинности SQL Server), этот параметр необходимо указать.

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

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

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

-SubscriptionStreams [0|1|2|...64]
Число соединений на каждого агента распространителя для параллельного применения пакетов изменений на подписчике при сохранении многих характеристик транзакций, имеющихся для однопоточного выполнения. Для издателя SQL Server поддерживается диапазон значений от 1 до 64. Этот параметр поддерживается только в том случае, если издатель и распространитель работают в SQL Server 2005 или более поздних версиях. Этот параметр не поддерживается или должен иметь значение 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|... 10 000]
Указывает интервал транзакций для регистрации журналов. Сообщение записывается в журнал, как только число зафиксированных транзакций после последней записи в журнал превысило значение этого параметра. Значение по умолчанию равно 100. 0 означает бесконечное значение TransactionsPerHistory. См. предыдущий параметр -MessageInterval.

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

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

-UseOledbStreaming
Если этот параметр указан, то разрешает привязку двоичных данных больших объектов в виде потока. Задать размер (в байтах), при превышении которого будет использоваться поток, можно с помощью параметра -OledbStreamThreshold .

Замечания

Внимание

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

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

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

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

См. также

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