Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » MobiLink - 客户端管理 » 用于 MobiLink 的 SQL Anywhere 客户端 » SQL Anywhere 客户端 » 创建远程数据库

 

进度偏移

进度偏移是一个表示特定时间点的整数值,截至该时间点,预订的所有操作都已上载并确认完毕。dbmlsync 实用程序使用该偏移来决定要上载的数据。在远程数据库上,该偏移存储在 SYS.ISYSSYNC 系统表的 progress 列中。在统一数据库上,该偏移存储在 ml_subscription 表的 progress 列中。

对于每个远程数据库,远程数据库和统一数据库都会为每个预订保留一个偏移。MobiLink 用户进行同步时,将会确认与该 MobiLink 用户关联的所有预订的偏移,即使用户当时并不同步这些预订。这样做是必需的,因为多个发布可能包含相同的数据。唯一的例外情况是,dbmlsync 在尝试进行上载后才会检查预订的进度偏移。

如果远程数据库偏移与统一数据库偏移之间存在任何不一致,缺省行为是使用统一数据库的偏移值更新远程数据库偏移,然后发送一个基于这些偏移的新上载。大多数情况下,此缺省值是适用的。例如,它在以下情况下通常是适用的:使用备份恢复统一数据库而远程事务日志完好无损时,或虽然上载成功但因发生通信故障而使上载确认无法发送时。

大部分偏移不匹配问题都可以使用统一数据库进度值自动解决。在极少数情况下,必须进行干预才能解决进度偏移问题,这时可以使用 dbmlsync -r 选项。

有关详细信息,请参见-r 选项

首次同步始终有效

首次尝试同步新创建的预订时,并不会检查预订的进度偏移是否与统一数据库上的进度偏移相符。此功能使得在重新创建和同步远程数据库时不必删除其状态信息(在统一数据库中维护)。

如果远程数据库系统表 SYS.ISYSSYNC 中的列如下所述,dbmlsync 实用程序就会检测到首次同步:progress 列的值与 created 列的值相同,并且 log_sent 列的值为空。

不过,如果在同一上载中同步两个或更多个预订,且其中一个预订并不是首次进行同步,则会检查所有要同步的预订(包括首次进行同步的预订)的进度偏移。例如,如果为 dbmlsync -n 选项指定了两个发布 (-n pub1,pub2),其中 pub1 进行过同步,而 pub2 未进行过同步,则会检查这两个预订的进度偏移是否与统一数据库中的进度偏移值相符。

有关详细信息,请参见: