此语句用于使 SQL Anywhere 数据库与 MobiLink 服务器同步。可在语句自身中指定同步选项。
SYNCHRONIZE { PROFILE sync-profile-name [ MERGE sync-option [ ;... ] ] | USING sync-option [ ;... ] | START | STOP }
[ PORT port-number ] [ VERBOSITY { LOW | NORMAL | HIGH } ] [ TIMEOUT timeout ] [ USER user-name IDENTIFIED BY password ]
sync-option-value : string
sync-profile-name 要为此同步使用的同步配置文件的名称。
MERGE 子句 此子句用于添加或替换同步配置文件选项。
USING 子句 此子句用于在未使用同步配置文件时指定同步配置文件选项。
sync-option
一个或多个同步配置文件选项值对的字符串用分号分隔。例如,'option1=value1;option2=value2'
。
请参见MobiLink 同步配置文件。
VERBOSITY 子句 此子句控制同步期间添加到 synchronize_results 共享全局临时表中的信息量。
以下是每个 VERBOSITY 选项返回的客户端 API 事件列表。有关这些选项的说明,请参见DBSC_Event 结构。
选项 | 返回值 |
---|---|
LOW |
|
NORMAL(缺省) |
|
HIGH |
|
可选 VERBOSITY 参数不会更改同步配置文件中的详细程度设置。和 SYNCHRONIZE 语句一起使用时,VERBOSITY 参数可指定添加到 synchronize_results 共享全局临时表中的信息量。同步配置文件中的详细程度设置用于定义添加到 dbmlsync 日志中的 DBSC_EVENTTYPE_INFO_MSG 的详细程度。如果修改同步配置文件或使用 MERGE 选项将同步配置文件的详细程度从 "BASIC" 更改为 "BASIC,ROW_DATA",则放置在 synchronize_results 共享全局临时表中的行数会增加。例如,以下两个语句会导致不同数据添加到 synchronize_results 共享全局临时表中:
SYNCHRONIZE PROFILE SalesData VERBOSITY NORMAL; |
SYNCHRONIZE PROFILE SalesData MERGE 'Verbosity=BASIC,ROW_DATA' VERBOSITY NORMAL; |
TIMEOUT 子句 此子句指定在尝试取消同步之前,数据库服务器等待同步完成的时间(以秒为单位)。缺省值为 240 秒。
USER/IDENTIFIED BY 子句 此子句用于指定 dbmlsync 实用程序用于同步数据库的数据库用户 ID 和口令。指定的用户 ID 必须具有 REMOTE DBA 权限或 DBA 权限。缺省情况下,同步时使用该用户 ID 进行发出 SYNCHRONIZE 命令的数据库连接。
START 子句 启动在服务器模式下运行的 dbmlsync 实用程序并使其保持运行状态。此过程不会执行同步。如果要在短期内执行超过一次同步,则可以使用此子句显式启动服务器,执行同步,然后使用 STOP 子句显式停止服务器,以改善性能。
STOP 子句 停止之前使用 START 子句启动的、在服务器模式下运行的 dbmlsync 实用程序。此过程不会执行同步。
完成同步后,可在 synchronize_results 共享全局临时表中查看同步结果。synchronize_results 共享全局临时表存储启动数据库服务器后已使用 SYNCHRONIZE 语句执行的所有同步结果。每次数据库服务器关闭时,都会截断 synchronize_results 共享全局临时表。
可以使用 synchronize_results 共享全局临时表监视不同于当前连接的连接同步进度。要监视不同连接的同步进度:
执行 SELECT CONNECTION_PROPERTY 语句以确定当前连接的连接 ID。
执行 SYNCHRONIZE 语句以启动同步。
在一个单独的连接上,使用 sp_get_last_synchronize_results 系统过程检索使用 上面确定的连接 ID 的结果。
要查看特定连接的已完成或者进行中的同步结果,可以使用 sp_get_last_synchronize_results 系统过程。
SYNCHRONIZE 语句和 UltraLite SYNCHRONIZE 语句类似。但是,SQL Anywhere SYNCHRONIZE 语句以服务器模式启动 dbmlsync 实用程序以执行同步。UltraLite SYNCHRONIZE 语句使用 UltraLite 运行时。
数据库服务器起着 dbmlsync API 客户端的作用,并且使用 TCP/IP 与 dbmlsync 服务器通信。缺省情况下,此通信发生在端口 4433 上。使用 PORT 子句可以指定其他端口。
使用 SYNCHRONIZE PROFILE 和 SYNCHRONIZE USING 语句执行同步。使用 SYNCHRONIZE START 和 SYNCHRONIZE STOP 启动或停止 dbmlsync 服务器。执行 SYNCHRONIZE PROFILE 或 SYNCHRONIZE USING 语句时,数据库服务器尝试连接到已在运行的 dbmlsync 服务器。如果找不到已在运行的 dbmlsync 服务器,则将启动一个 dbmlsync 服务器。完成同步后,数据库服务器会关闭由它启动的 dbmlsync 服务器。如果该语句所连接的 dbmlsync 服务器已在运行中,则 dbmlsync 服务器不会关闭。如果正在执行多个同步并且不想为每个同步启动和停止 dbmlsync 服务器,则可能需要执行 SYNCHRONIZE START 语句,其后跟随几个 SYNCHRONIZE PROFILE 或 SYNCHRONIZE USING 语句,并且使用 SYNCHRONIZE STOP 语句结束。
REMOTE DBA 或 DBA 特权
无
SQL/2008 服务商扩充。
以下示例显示了同步名为 Test1 的同步配置文件的语法:
SYNCHRONIZE PROFILE Test1; |
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |