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

SQL Anywhere 11.0.1 (中文) » UltraLite - 数据库管理和参考 » UltraLite 用作 MobiLink 客户端 » UltraLite 客户端

 

自定义 UltraLite 客户端同步行为

将自定义同步支持添加到 UltraLite 最多涉及三个任务:

  • 在包含多个远程客户端的同步模型中维护主键唯一性   必需。在同步系统中,主键是标识不同数据库(远程数据库和统一数据库)中相同行的唯一方式,也是检测冲突的唯一方式。因此,多个客户端必须遵守以下规则:

    • 每个要同步的表都必须有一个主键。
    • 绝不要更新主键的值。
    • 主键在所有已同步的数据库中都必须是唯一的。

    请参见维护唯一主键UltraLite 中的主键唯一性

  • 确保设置了日期列,使小数数据不会丢失   对于 SQL Anywhere 统一数据库,这通常不是问题。但对于诸如 Oracle 的数据库,可能就需要考虑兼容性问题。例如,UltraLite 和 Oracle 数据库必须共享相同的时间戳精度。另外,还应该向 Oracle 数据库添加 TIMESTAMP,以避免 UltraLite 远程数据库向统一数据库上载数据时丢失小数秒数据。请参见Oracle 统一数据库UltraLite 精度创建参数

  • 说明要上载到统一数据库的数据子集   可选。只有在不想按缺省设置同步所有数据的情况下,才需要执行此任务。要定向要同步的数据,可使用一个或多个子集技术。请参见设计 UltraLite 中的同步

    例如,您可能想要为高优先级数据创建一个发布。用户可通过高速无线网络同步此类数据。由于无线网络可产生较高的使用开销,因此,您可能想将这些使用费投资于业务关键数据。可在以后再同步底座中不太紧急的数据。

  • 从 UltraLite 应用程序初始化同步和提供描述会话的参数   必需。编程同步包括两部分:描述会话,然后初始化同步操作。

    描述会话主要涉及选择同步通信流(也称为网络协议)及其参数、设置同步脚本的版本和指派 MobiLink 用户。但也可以配置其它参数:例如,使用 upload_only 和 download_only 参数将缺省的双向同步更改为仅单向同步。请参见向 UltraLite 应用程序添加同步

所有其它重要的同步行为是通过 MobiLink 同步脚本控制的。您需要多个脚本,因为每个 MobiLink 远程数据库都可以包含统一数据库中的另一个数据子集。

其中包括:

  • 哪些数据作为更新下载到 UltraLite 远程数据库中的表。

  • 对从远程数据库上载的更改需要进行哪些处理。

这意味着您可以编写自己的同步脚本,以便以适合的方式在各远程数据库间进行数据分区。

另请参见