发送和应用 SQL Remote 消息并维护消息跟踪系统以确保消息的传送。
dbremote [ options ] [ directory ]
选项 | 说明 | ||||||
---|---|---|---|---|---|---|---|
@data |
此选项用于从指定的环境变量或配置文件中读入选项。如果存在具有相同名称的环境变量和配置文件,则使用环境变量。请参见使用配置文件。 如果要保护口令或配置文件中的其它信息,可以使用文件隐藏实用程序对配置文件的内容进行模糊处理。请参见文件隐藏实用程序 (dbfhide)。 环境变量可以包含任何一组选项。例如,以下两条语句的第一句设置一个环境变量,该变量包含了一组 SQL Remote 进程选项,该进程启动时高速缓存大小为 4 MB,只接收消息,并且连接到名为 myserver 的数据库服务器上的名为 field 的数据库。SET 语句应全部在一行上输入:
配置文件包含换行符,并且可以包含任何一组选项。例如,以下命令文件包含了消息代理的一组选项,该消息代理在启动时高速缓存大小为 4 MB,仅发送消息,并连接到名为 myserver 的数据库服务器上的名为 field 的数据库:
如果此配置文件保存为 c:\config.txt,则在命令中可按如下方式使用:
|
||||||
-a |
处理收到的消息(收件箱中的那些消息),但不将这些消息应用于数据库。此选项与 -v(用于详细输出)和 -p(不清除消息)一起使用,可以帮助找出与进来的消息有关的问题。如果不与 -p 一起使用,此选项会清除收件箱且不应用消息,这在重新开始预订的情况下可能会非常有用。 |
||||||
-b |
在批处理模式下运行。在此模式下,消息代理处理进来的消息,扫描一次事务日志并处理外发的消息,然后停止。 |
||||||
-c "keyword=value; ..." |
指定连接参数。如果未指定此选项,则使用环境变量 SQLCONNECT。 例如,以下语句在位于 c:\mydata.db 中的数据库文件中运行 dbremote,并使用用户 ID DBA 和口令 sql 进行连接:
消息代理必须由具有 REMOTE DBA 权限或 DBA 权限的用户运行。请参见授予 REMOTE DBA 权限。 消息代理支持全部的 SQL Anywhere 连接参数。请参见连接参数。 |
||||||
-dl |
在消息代理窗口中或命令提示符处显示消息;如果指定,还在日志文件中显示消息。 |
||||||
-ek key |
指定需要在命令提示符处被系统提示输入加密密钥以用于高度加密的数据库。如果您有一个高度加密的数据库,则必须提供加密密钥,才能使用数据库或事务日志,包括脱机事务日志。对于高度加密数据库,必须指定 -ek 或 -ep,但不要同时指定这两者。如果不为高度加密的数据库指定密钥,该命令将失败。 |
||||||
-ep |
指定需要系统提示输入加密密钥。使用此选项将显示一个窗口,可以在其中输入加密密钥。这样,加密密钥从不以明文显示,提供了额外的安全保证。对于高度加密数据库,必须指定 -ek 或 -ep,但不要同时指定这两者。如果不为高度加密的数据库指定密钥,该命令将失败。 |
||||||
-g n |
指示消息代理将所含操作少于 n 的事务与后面的事务组合在一起。缺省值是 20 个操作。增加 n 的值可以通过执行较少的提交来加快进来的消息的处理。但是,增大事务也会导致死锁和阻塞。 |
||||||
-l length |
指定要发送的每条消息的最大长度(以字节为单位)。较长的事务被拆分成多个消息。缺省值是 50000 个字节,最小长度是 10000。 小心在安装中,最大消息长度必须在所有站点都是相同的。 对于具有有限内存分配的平台,该值必须小于操作系统的最大内存分配。 |
||||||
-m size |
指定可供消息代理生成消息以及将进来的消息存入高速缓存之用的最大内存量。可将允许的大小指定为 n(以字节为单位)、nK 或 nM。缺省值为 2048 KB (2 MB)。 当所有远程数据库接收的是所复制操作的唯一子集时,将同时为每一远程数据库分别生成不同的消息。为接收相同操作的一组远程用户只生成一个消息。如果所使用的内存超出 -m 值,则消息会在达到其最大大小(由 -l 选项指定)前发送出去。 在消息到达后,这些消息会在应用前由消息代理存储在内存中。将消息存入高速缓存中可以防止重新从消息系统读取顺序不对的消息,以免在大型系统中降低性能。超过了 -m 选项指定的内存使用量后,将按使用频率由低到高的顺序刷新消息。 |
||||||
-ml directory |
指定脱机事务日志镜像文件的位置。此选项使 dbremote 能够在出现以下两种情形中的任意一种时,删除旧的事务日志镜像文件:
在典型设置中,活动事务日志镜像与重命名的事务日志镜像位于同一目录中,并且 dbremote 与远程数据库在同一台计算机上运行,因此不需要此选项,旧的事务日志镜像文件也会被自动删除。只有在将 delete_old_logs 数据库选项设置为 Off 之外的其它值时,此目录中的事务日志才会受到影响。 |
||||||
-o file |
将消息打印输出到输出日志文件。缺省情况下这些消息将输出到屏幕。 |
||||||
-os size |
指定用于记录输出消息的最大文件大小。允许的大小可以指定为 n(字节)、nK (KB) 或 nM (MB)。缺省情况下,没有上限,而最小限制为 10000 个字节。 在 SQL Remote 将输出消息记录到输出日志文件之前,它会首先检查当前文件大小。如果日志消息使文件大小超出了指定大小,则 SQL Remote 会将输出文件重命名为 yymmddxx.dbr,其中 xx 是从 AA 到 ZZ 的顺序字符,yymmdd 表示当前的年月日。 如果消息代理长期在连续模式下运行,则可以通过该选项手动删除旧的输出日志文件并释放磁盘空间。 |
||||||
-ot file |
截断输出日志文件,然后将输出消息追加到该文件。缺省情况下这些消息将输出到屏幕。 |
||||||
-p |
不清除消息。 |
||||||
-q |
以最小化窗口启动消息代理。此选项仅适用于 Windows 操作系统。 |
||||||
-qc |
完成时关闭 SQL Remote 窗口。 |
||||||
-r |
接收消息。如果 -r 和 -s 均未指定,消息代理将执行全部两个阶段。否则,将仅执行指定的阶段。 如果用 -r 选项运行消息代理,消息代理将在连续模式下运行。要使消息代理在收到消息后关闭,请同时使用 -b 选项和 -r 选项。 |
||||||
-rd minutes |
指定对进来的消息的轮询频率。缺省情况下,消息代理每分钟轮询进来的消息。通过此选项(rd 代表 receive delay)可配置轮询频率,这在轮询开销非常大时会很有用。 您可以在数字后面加上 s 后缀来指示秒数,如果要频繁进行轮询,这会十分有用。例如,以下命令每三十秒轮询一次。
-rd 选项常与 -rp 选项一起使用,-rp 选项用于设置消息代理请求重发丢失的消息前所等待的轮询数。 请参见在接收消息时提高性能。 |
||||||
-ro filename |
将远程输出记录到文件。此选项用在统一站点。当远程数据库被配置为向统一数据库发送输出日志信息时,该选项将这些信息写入一个文件中。此选项可以帮助管理员解决远程站点中的问题。 请参见从远程数据库收集错误。 |
||||||
-rp number |
指定在认为消息丢失之前接收的轮询数目。在以连续模式运行时,消息代理按指定的时间间隔轮询消息。在轮询指定次数后(缺省情况下是一次),如果发现缺少某一消息,则消息代理假设该消息已丢失并请求重新发送该消息。在较慢的消息系统上,该行为可能会导致许多不必要的重新发送请求。可以使用此选项来设置在发出重新发送请求之前的轮询次数,以将重新发送请求数降至最低。 有关配置此选项的详细信息,请参见在接收消息时提高性能。 -rp 选项常与用于设置进来消息轮询频率的 -rd 选项一起使用。 |
||||||
-rt filename |
启动时截断输出日志文件,然后将日志输出从远程数据库追加到该文件。此选项用在统一站点。除了文件会在启动时被截断以外,它与 -ro 选项相同。 |
||||||
-ru time |
指定收到重新发送请求后等待重新扫描日志的时间。 控制 resend urgency。这是检测到重新发送请求和消息代理开始实现该请求之间的时间。使用此选项可以帮助消息代理在重新扫描日志前收集来自多个用户的重新发送请求。时间单位可以是 s(秒)、m(分钟)、h(小时)或 d(天)。 |
||||||
-s |
发送消息。如果 -r 和 -s 均未指定,消息代理将执行全部两个阶段。否则,将仅执行指定的阶段。 |
||||||
-sd time |
控制数据库事务日志各轮询间的延迟。只有在连续模式下运行时,才会使用 -sd 选项。 控制 send delay,即对于要发送的更多事务日志数据而进行的各轮询之间的间隔时间。 |
||||||
-t |
复制所有触发器。如果使用此选项,必须确保在远程数据库中触发器操作不会执行两次(一次由在远程站点被触发的触发器执行,一次由从统一数据库复制操作的显式应用执行)。 要确保触发操作不会执行两次,可以使用 IF CURRENT REMOTE USER IS NULL ...END IF 语句包裹触发器正文。 使用 CURRENT REMOTE USER 特殊常量. |
||||||
-u |
仅处理脱机事务日志中的事务。该选项防止消息代理处理最后一次备份之后的事务。使用此选项后,如果脱机事务日志中没有外发的事务以及进来事务的确认,就不能将它们发送出去。 这意味着只处理来自重命名日志的事务。 |
||||||
-ud |
在 Unix 平台上,将消息代理作为守护程序运行。如果将消息代理作为守护程序运行,则还必须提供 -o 或 -ot 选项,以记录输出信息。 如果将消息代理作为守护程序运行并正在使用 FTP 或 SMTP 消息链接,则必须将消息链接参数存储到数据库中,因为消息代理在作为守护程序运行时不会提示用户提供这些选项。 有关消息链接参数的信息,请参见设置远程消息类型控制参数。 |
||||||
-ux |
在 Solaris 和 Linux 上,打开 SQL Remote 消息窗口。 当指定 -ux 时,dbremote 必须能够找到一个可用显示。如果找不到(例如,因为未设置 DISPLAY 环境变量或 X 窗口服务器未运行),则 dbremote 将无法启动。在 Windows 上,SQL Remote 消息窗口会自动显示。 |
||||||
-v |
显示详细输出。此选项会将消息中包含的 SQL 语句显示到消息窗口;此外,如果使用了 -o 或 -ot 选项,则还将这些 SQL 语句输出到日志文件中。 |
||||||
-w n |
指定要应用进来的消息的数据库工作线程数。在 Windows Mobile 中不支持此选项。 缺省值为零,这意味着所有消息都由(并且仅由)主线程应用。如果该值为 1,将有一个用于从消息系统接收消息的线程和一个用于将消息应用于数据库的线程。数据库工作线程数上限为 50。 利用 -w 选项,能够通过硬件升级来增加进来的消息的吞吐量。通过将统一数据库放置到可以执行多个并发操作的设备上(分条的逻辑驱动器的 RAID 阵列),可以提高进来的消息的吞吐量。如果在运行消息代理的计算机中使用多个处理器,也可以提高进来的消息的吞吐量。 对于不能执行多个并发操作的硬件,-w 选项不会显著改进性能。 进来的来自一个远程数据库的消息永远也不会应用于多个线程上。来自一个远程数据库的消息将始终以正确的顺序依次加以应用。 |
||||||
-x [ size ] |
在扫描事务日志寻找外传消息后,重命名并重新启动该事务日志。在某些情况下,将数据复制到统一数据库可以取代备份远程数据库,或者取代在数据库服务器关闭后重命名事务日志。 如果提供可选的 size 限定符,则仅当事务日志超过指定的大小后才将其重命名。可将允许的大小指定为 n(以字节为单位),nK 或 nM。缺省值为 0。 |
||||||
Directory |
指定保留旧事务日志的目录。 directory 参数是可选的,用于指定保存旧事务日志的目录,以便消息代理能够在启动当前日志前有权访问事件。 |
消息代理发送和应用用于 SQL Remote 复制的消息,并且维护消息跟踪系统以确保消息的传送。
消息代理可执行文件的名称为 dbremote。
您还可以通过调用 DBTools 库,从您自己的应用程序运行消息代理。有关详细信息,请参见位于 SQL Remote 安装目录的 h 子目录中的 dbrmt.h 文件。
消息代理命令中的用户 ID 必须具有 REMOTE DBA 或 DBA 权限。
消息代理使用多个数据库连接。请参见消息代理 (dbremote)。
有关 REMOTE DBA 权限的信息,请参见授予 REMOTE DBA 权限。
SQL Remote 使用若干注册表设置来控制消息链接行为的各方面。
消息链接控制参数存储在以下位置:
Windows 存储在注册表的以下位置中:
\\HKEY_CURRENT_USER \Software \Sybase \SQL Remote |
有关注册表设置的列表,请参见SQL Remote 消息系统中与各消息系统相对应的部分。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |