复制日志读取器代理

复制日志读取器代理是一个可执行文件,用于监视为事务复制配置的每一数据库的事务日志以及将标记为进行复制的事务从事务日志复制到分发数据库中。

注意注意

可以按任意顺序指定参数。如果没有指定可选参数,会使用基于默认代理配置文件的预定义值。

语法

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

参数

  • -?
    显示使用信息。

  • -Publisherserver_name[**\instance_name]
    发布服务器名。为该服务器上的 MicrosoftSQL Server 默认实例指定 server_name。为该服务器上的 SQL Server 命名实例指定 server_name
    \**instance_name。

  • -PublisherDBpublisher_database
    发布服务器数据库的名称。

  • -Continuous
    指定代理是否尝试持续轮询所复制的事务。如果指定了该参数,即使没有事务挂起,代理轮询也将在轮询间隔期间轮询来自源的已复制事务。

  • -DefinitionFiledef_path_and_file_name
    代理定义文件的路径。代理定义文件中包含代理的命令提示符参数。文件的内容被当作可执行文件进行分析。使用双引号 (") 指定包含任意字符的参数值。

  • -Distributorserver_name[**\instance_name]
    分发服务器名称。为该服务器上的 SQL Server 默认实例指定 server_name。为该服务器上的 SQL Server 命名实例指定 server_name
    \**instance_name。

  • -DistributorLogindistributor_login
    分发服务器登录名。

  • -DistributorPassworddistributor_password
    分发服务器密码。

  • -DistributorSecurityMode [ 0| 1]
    指定分发服务器的安全模式。值为 0,表示为 SQL Server 身份验证模式(默认值),值为 1,表示为 Microsoft Windows 身份验证模式。

  • -EncryptionLevel [ 0 | 1 | 2 ]
    日志读取器代理建立连接时使用的安全套接字层 (SSL) 加密级别。

    EncryptionLevel 值

    说明

    0

    指定不使用 SSL。

    1

    指定使用 SSL,但是代理不验证 SSL 服务器证书是否已由可信的颁发者进行签名。

    2

    指定使用 SSL,并验证证书。

    有关详细信息,请参阅安全性概述(复制)

  • -HistoryVerboseLevel [ 0| 1| 2]
    指定在日志读取器运行期间记录的历史记录数量。选择 1 可将历史日志记录对性能的影响减小到最低限度。

    HistoryVerboseLevel 值

    说明

    0

     

    1

    默认值。总是更新具有相同状态(启动、进行中、成功等)的上一历史记录消息。如果不存在状态相同的上一记录,将插入新记录。

    2

    除非记录为空闲消息或长时间运行的作业消息等信息(此时将更新上一记录),否则插入新的历史记录。

  • -KeepAliveMessageIntervalkeep_alive_message_interval_seconds
    在历史记录线程检查目前是否有连接在等待服务器响应之前等待的秒数。在执行长时间运行的批处理时,减小该值可避免检查代理将日志读取器代理标记为可疑。默认值为 300 秒。

  • -LoginTimeOutlogin_time_out_seconds
    登录超时前等待的秒数。默认值为 15 秒。

  • -LogScanThresholdscan_threshold
    仅供内部使用。

  • -MaxCmdsInTrannumber_of_commands
    指定在日志读取器将命令写入到分发数据库时可分组到一个事务中的语句的最大数目。如果使用此参数,在发布服务器上的大事务(包含许多命令)应用于订阅服务器时,日志读取器代理和分发代理可将这些大事务拆分为若干个较小的事务。指定此参数可以减少分发服务器的争用问题并缩短发布服务器与订阅服务器之间的滞后时间。由于初始事务是以较小的单元应用的,订阅服务器可以在初始事务结束之前访问一个较大的逻辑发布服务器事务的行,因而会破坏事务的原子性。默认值为 0,这将保持发布服务器的事务边界。

    注意注意

    对于非 SQL Server 发布,会忽略此参数。有关详细信息,请参阅 Oracle 发布服务器性能优化的“配置事务集作业”部分。

  • -MessageIntervalmessage_interval
    用于历史日志记录的时间间隔。记录完上一个历史事件后,如达到 MessageInterval 值,会开始记录新的历史事件。

    如果源上没有可用的已复制事务,代理将向分发服务器报告无事务消息。此选项可指定代理在报告另一条无事务消息前将等待多长时间。在上次处理已复制事务后,如果代理在源上没有检测到任何可用的事务,则总是会报告一条无事务消息。默认值为 60 秒。

  • -Outputoutput_path_and_file_name
    代理输出文件的路径。如果未提供文件名,则向控制台发送该输出。如果指定的文件名已存在,会将输出追加到该文件。

  • -OutputVerboseLevel [ 0| 1| 2 | 3 | 4 ]
    指定输出是否应提供详细内容。

    说明

    0

    仅输出错误消息。

    1

    输出所有代理进度报告消息。

    2(默认值)

    输出所有错误消息和代理进度报告消息。

    3

    输出每个复制的命令的前 100 个字节。

    4

    输出所有复制的命令。

    进行调试时,值 2-4 颇为有用。

  • -PacketSizepacket_size
    数据包大小(按字节计)。默认值为 4096(字节)。

  • -PollingIntervalpolling_interval
    对日志进行已复制事务查询的频率(以秒计)。默认值为 5 秒。

  • -ProfileNameprofile_name
    指定用于代理参数的代理配置文件。如果 ProfileName 为 NULL,则将禁用代理配置文件。如果未指定 ProfileName,则使用该代理类型的默认配置文件。有关信息,请参阅复制代理配置文件

  • -PublisherFailoverPartnerserver_name[**\**instance_name]
    指定参加与发布数据库进行的数据库镜像会话的 SQL Server 故障转移伙伴实例。有关详细信息,请参阅复制和数据库镜像

  • -PublisherSecurityMode [ 0| 1]
    指定发布服务器的安全模式。值 0 指示 SQL Server 身份验证(默认值),值 1 指示 Windows 身份验证模式。

  • -PublisherLoginpublisher_login
    发布服务器登录名。

  • -PublisherPasswordpublisher_password
    发布服务器密码。

  • -QueryTimeOutquery_time_out_seconds
    查询超时前等待的秒数。默认值为 1800 秒。

  • -ReadBatchSizenumber_of_transactions
    每个处理周期可从发布数据库的事务日志读取出的事务的最大数目,默认值为 500。代理会不断读取批中的事务,直到从该日志读取出所有事务为止。Oracle 发布服务器不支持该参数。

  • -ReadBatchThresholdnumber_of_commands
    在复制命令由分发代理发送给订阅服务器之前,从事务日志读取的复制命令的数目。默认值为 0。如果此参数未指定,日志读取器代理会将此日志读取完毕或者读到 -ReadBatchSize 中指定的数字(事务数)为止。

  • -RecoverFromDataErrors
    指定日志读取器代理在从非 SQL Server 发布服务器发布的列数据中遇到错误时应继续运行。默认情况下,这类错误可导致日志读取器代理失败。在使用 -RecoverFromDataErrors 后,出错的列数据将复制为 NULL 或者适当的非 Null 值,并在 MSlogreader_history 表中记录警告消息。仅 Oracle 发布服务器支持此参数。

注释

重要说明重要提示

如果您安装的 SQL Server 代理是通过本地系统帐户而不是域用户帐户(默认值)运行,则该服务仅可访问本地计算机。如果以 SQL Server 代理身份运行的日志读取器代理已配置为在登录到 SQL Server 时使用 Windows 身份验证模式,则日志读取器代理将失败。默认设置为 SQL Server 身份验证。有关更改安全帐户的信息,请参阅如何查看和修改复制的安全设置(复制 Transact-SQL 编程)

若要启动日志读取器代理,请从命令提示符下执行 logread.exe。有关信息,请参阅复制代理可执行文件概念

请参阅

概念