同步 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 : string
sync-profile-name 要为此同步使用的同步配置文件的名称。
MERGE 子句 此子句用于添加或替换同步配置文件选项。
USING 子句 此子句用于在未使用同步配置文件时指定同步配置文件选项。
sync-option
一个或多个同步配置文件选项值对的字符串用分号分隔。例如,'option1=value1;option2=value2'
。
VERBOSITY 子句 此子句可控制同步期间添加到 synchronize_results 和 synchronize_parameters 共享全局临时表的信息量。
以下是每个 VERBOSITY 选项返回的客户端 API 事件列表。
选项 | 返回值 |
---|---|
LOW |
|
NORMAL(缺省) |
|
HIGH |
|
请注意,不要将 SYNCHRONIZE 语句的 VERBOSITY 子句与可在同步配置文件中指定的 VERBOSITY 选项相混淆。SYNCHRONIZE 语句的 VERBOSITY 子句用于控制在 synchronize_results 表和 synchronize_parameters 表中记录的事件类型。同步配置文件中的 VERBOSITY 选项用于控制在同步过程中生成的 DBSC_EVENTTYPE_INFO_MSG 事件的数量。
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 权限。缺省情况下,同步时应使用用来执行 SYNCHRONIZE 语句的数据库连接的用户 ID。
START 子句 启动在服务器模式下运行的 dbmlsync 实用程序并使其保持运行状态。此过程不会执行同步。在短时间内执行多个同步时,可通过使用此子句显式启动 dbmlsync 服务器、执行同步,然后使用 STOP 子句显式停止 dbmlsync 服务器来改善性能。
STOP 子句 使用 START 子句停止先前启动的 dbmlsync 服务器。此过程不会执行同步。
只有在安装了包括 Dbmlsync C++ API 在内的 SQL Anywhere 的 MobiLink 客户端时,才能使用此语句。
SQL Anywhere 的 MobiLink 客户端并不是在所有可以运行数据库服务器的平台上都可用。有关支持平台的列表,请参见 http://www.sybase.com/detail?id=1061806。
完成同步后,可在 synchronize_results 和 synchronize_parameters 共享全局临时表中查看同步结果。synchronize_results 表和 synchronize_parameters 表存储自启动数据库服务器后使用 SYNCHRONIZE 语句执行的所有同步结果。每次数据库服务器关闭时,都会截断 synchronize_results 表和 synchronize_parameters 表。
synchronize_results 表包含以下各列:
列名 | 数据类型 | 说明 |
---|---|---|
row_id | UNSIGNED BIGINT | 表的主键,用于确定行插入表的顺序。 |
conn_id | UNSIGNED INT | 执行了生成此事件的 SYNCHRONIZE 语句的连接的连接 ID 号。 |
result_time | TIMESTAMP | 事件添加到 synchronize_results 表的时间。 |
result_type | CHAR(128) | 事件类型。 |
synchronize_results 表中显示的每个事件都具有与之关联的 0 个或多个参数,这些参数包含该事件的其它相关信息。这些参数存储在 synchronize_parameters 表中,该表包含以下各列:
列名 | 数据类型 | 说明 |
---|---|---|
row_id | UNSIGNED BIGINT | synchronize_results 表中 row_id 列的外键。使用此值来将每个参数匹配回其所属的事件。 |
parm_id | UNSIGNED INT | 包含参数的数字 ID。对于参数多于一个的事件,使用此值来定位所需的特定参数。 |
parm_name | LONG VARCHAR | 与参数关联的值。 |
要查看有关过去或当前同步的信息,可以使用 sp_get_last_synchronize_result 系统过程代替直接查询 synchronize_results 表和 synchronize_parameters 表。
或者,可以使用以下语句查看自数据库服务器启动以来进行的所有同步的结果。
SELECT * FROM synchronize_results sr KEY JOIN synchronize_parameters sp ORDER BY sr.row_id , sp.parm_id |
可以使用 synchronize_results 表和 synchronize_parameters 表监视不同于当前连接的连接同步进度。要监视不同连接的同步进度:
执行 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讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |