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 远程数据库的 MobiLink 应用程序。

警告

实现脚本式上载时,dbmlsync 不使用事务日志确定上载内容。因此,如果您的脚本未捕获所有更改,远程数据库上的数据将会丢失。基于上述原因,对于大多数应用程序,建议使用基于日志的同步方法。

在大多数 MobiLink 应用程序中,上载由数据库事务日志确定,以同步自上次上载以来对远程数据库所做的更改。对于大多数应用程序来说这种设计很合理,可确保不丢失远程数据库上的数据。

但是,在某些特殊情况下,您可能要忽略事务日志而自己定义上载。使用脚本式上载可以精确定义要上载的数据。进行脚本式上载时,不必为远程数据库维护事务日志。对于小型设备,事务日志所占据的空间可能非常珍贵。但是,事务日志对于数据库备份和恢复非常重要,并能提高数据库性能。

为实现脚本式上载,需要创建特殊类型的发布,此发布指定您所创建的存储过程的名称。这些存储过程通过返回包含要在统一数据库上插入、更新或删除的行的结果集定义上载。

注意:不要将脚本式上载与上载脚本混淆。上载脚本是统一数据库上的 MobiLink 事件脚本,这些脚本由您编写,用来告诉 MobiLink 服务器对于上载要执行什么操作。使用脚本式上载时,您仍需要编写上载脚本(将上载应用于统一数据库)和下载脚本(确定下载什么)。

适用情形

以下是脚本式上载可能有用的一些情形:

  • 远程数据库在存储空间有限的设备上运行,没有足够的存储空间保存事务日志。

  • 要从所有远程数据库上载所有数据,以创建新的统一数据库。

  • 要编写用于确定将哪些更改上载到统一数据库的自定义逻辑。

警告

在实现脚本式上载之前,确保阅读本章全部内容。具体地讲,注意以下要点:

  • 如果未正确设置脚本式上载,会丢失数据。

  • 实现脚本式上载时,必须维护或引用通常可由 dbmlsync 替您处理的内容。这些信息包括数据的前映像和后映像以及同步的进度。

  • 通过脚本式上载进行同步时需要锁定远程数据库上的表。使用基于日志的同步时,则不需要锁定。

  • 使用脚本式上载实现事务性上载极为困难。