允许您指定消息日志文件中记录的信息和同步窗口中显示的信息。
mlsrv11 -c "connection-string" -v[ levels ] ...
当使用 dbmlsync 事务级上载时,此选项特别有用。
该选项控制写入消息日志文件的消息类型。
如果仅指定 -v 选项,则 MobiLink 服务器记录有关每次同步的最小信息量。
高详细程度反而会影响性能,应该仅在开发期间使用。
levels 的值如下所示。一次可以使用一个或多个选项,例如 -vnrsu。
+ 打开所有增加详细程度的日志选项。
c 在每个同步脚本被调用时显示其内容。该级别隐含 s。
e 显示系统事件脚本。这些系统事件脚本用于维护 MobiLink 系统表及控制上载的 SQL 脚本。
f 显示第一次读取的错误。这将记录以下情况下引发的错误:负载平衡设备通过建立不发送任何数据的连接检查服务器活动性,并会导致同步失败。
对于 TCP/IP 连接,使用 TCP/IP 选项 ignore 可能会更好。有关详细信息,请参见-x 选项。
h 显示同步过程中上载的远程模式。
i 显示上载的每行的列值。请使用此选项而不是 -vr,-vr 选项将显示上载和下载的每行的列值来降低正在记录的数据量。通过 -vq 指定 -vi 与指定 -vr 相同。
m 每当同步完成后将每个同步的持续时间以及每个同步阶段的持续时间打印到日志中。同步阶段如下所示。它们与显示在 MobiLink 监控器中的阶段相同。所有时间均以微秒 (ms) 为单位显示。
同步请求 从建立远程数据库与 MobiLink 服务器之间的网络连接直至接收到上载流的第一批字节为止所花费的时间。当同步数大于由 -sm 指定的最大活动同步数时,除非您已将 -sm 设为一个比 -nc 更小的值(在此情况下,此时间包含同步暂停的时间),否则该时间是没有意义的。
接收上载 从 MobiLink 服务器接收到上载流的第一批字节开始直至完全接收到远程数据库的上载流为止所花费的时间。上载流包含表定义和正在上载的远程数据库行,所以即使对于仅下载同步,该时间也是有意义的。该时间取决于上载流的大小以及网络传输的带宽。
获取 DB 工作 获得空闲数据库工作线程所需的时间。
连接 在需要新数据库连接时数据库工作线程建立数据库连接所需的时间。例如,出现错误或脚本版本变更的情况下会需要建立新连接。
验证用户 验证用户所需的时间。
开始同步 begin_synchronization 事件(即使已定义)所需的时间,加上为每个预订读取 last_upload_time 的时间(使用共享的 MobiLink 管理连接)。
应用上载 上载数据应用到统一数据库所需的时间。
准备下载 prepare_for_download 事件所需的时间。
读取下载 为创建下载流而读取从统一数据库下载的行所需的时间。
结束同步 end_synchronization 事件所需的时间,在该时间后将释放数据库工作线程。如果使用阻塞下载确认,则此阶段出现在 [等待下载肯定应答] 阶段之后。否则,它会出现在下载流被送到远程数据库之前。
发送下载 将下载流发送到远程数据库所需的时间。该时间取决于下载流的大小以及网络传输的带宽。对于仅上载同步,下载流只是上载确认。
等待下载肯定应答 等待将下载应用到远程数据库以及远程数据库发送下载确认所花费的时间。此阶段只有在远程数据库启用了下载确认的情况下才会出现。
获取下载肯定应答的 DB 工作 收到下载确认后,等待空闲数据库工作线程所花费的时间。此阶段只有在远程数据库启用了下载确认并且 MobiLink 服务器正在使用非阻塞下载确认的情况下才会出现。
为下载肯定应答连接 在需要新数据库连接时数据库工作线程建立数据库连接所需的时间。此阶段只有在远程数据库启用了下载确认并且 MobiLink 服务器正在使用非阻塞下载确认的情况下才会出现。
非阻塞下载肯定应答 publication_nonblocking_download_ack 和 nonblocking_download_ack 连接事件所需的时间。此阶段只有在远程数据库启用了下载确认并且 MobiLink 服务器正在使用非阻塞下载确认的情况下才会出现。
每个值都以 "PHASE:" 作为前缀来帮助搜索和打印值。
以下示例为显示各种同步阶段的持续时间的示例输出:
I. 2008-06-05 14:48:36. <1> PHASE: start_time: 2008-06-05 14:48:36.048 I. 2008-06-05 14:48:36. <1> PHASE: duration: 175 I. 2008-06-05 14:48:36. <1> PHASE: sync_request: 0 I. 2008-06-05 14:48:36. <1> PHASE: receive_upload: 19 I. 2008-06-05 14:48:36. <1> PHASE: get_db_worker: 0 I. 2008-06-05 14:48:36. <1> PHASE: connect: 18 I. 2008-06-05 14:48:36. <1> PHASE: authenticate_user: 51 I. 2008-06-05 14:48:36. <1> PHASE: begin_sync: 69 I. 2008-06-05 14:48:36. <1> PHASE: apply_upload: 0 I. 2008-06-05 14:48:36. <1> PHASE: prepare_for_download: 1 I. 2008-06-05 14:48:36. <1> PHASE: fetch_download: 4 I. 2008-06-05 14:48:36. <1> PHASE: wait_for_download_ack: 0 I. 2008-06-05 14:48:36. <1> PHASE: end_sync: 0 I. 2008-06-05 14:48:36. <1> PHASE: send_download: 10 I. 2008-06-05 14:48:36. <1> PHASE: get_db_worker_for_download_ack: 0 I. 2008-06-05 14:48:36. <1> PHASE: connect_for_download_ack: 0 I. 2008-06-05 14:48:36. <1> PHASE: nonblocking_download_ack: 0 |
n 显示汇总行计数。
o 显示 SQL 直通活动。
p 显示进程偏移。
q 显示下载的每行的列值。请使用此选项而不是 -vr,-vr 选项将显示上载和下载的每行的列值来降低正在记录的数据量。通过 -vq 指定 -vi 与指定 -vr 相同。
r 显示上载或下载的每行的列值。要仅记录上载的每行的列值,请使用 -vi。要仅记录下载的每行的列值,请使用 -vq。
s 在每个同步脚本被调用时显示其名称。
t 显示经过转换的 SQL,这些 SQL 由使用 ODBC 规范格式编写的脚本生成。该级别隐含 c。以下示例显示针对 SQL Anywhere 的语句的自动转换。
I. 02/11 11:02:14. [102]: begin_upload synch2 { call SynchLogLine( ?, ?, 'begin_upload' ) } I. 02/11 11:02:14. [102]: Translated SQL: call SynchLogLine( ?, ?, 'begin_upload' ) |
以下示例显示针对 Microsoft SQL Server 相同语句的转换。
I. 02/11 11:03:21. [102]: begin_upload synch2 { call SynchLogLine( ?, ?, 'begin_upload' ) } I. 02/11 11:03:21. [102]: Translated SQL: EXEC SynchLogLine ?, ?, 'begin_upload' |
u 显示未定义的表脚本。这也许能帮助新用户了解同步过程。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |