脚本式上载仅适用于使用 SQL Anywhere 远程数据库的 MobiLink 应用程序。
实现脚本式上载时,dbmlsync 不使用事务日志确定上载内容。因此,如果您的脚本未捕获所有更改,远程数据库上的数据将会丢失。基于上述原因,对于大多数应用程序,建议使用基于日志的同步方法。
在大多数 MobiLink 应用程序中,上载由数据库事务日志确定,以同步自上次上载以来对远程数据库所做的更改。对于大多数应用程序来说这种设计很合理,可确保不丢失远程数据库上的数据。
但是,在某些特殊情况下,您可能要忽略事务日志而自己定义上载。使用脚本式上载可以精确定义要上载的数据。进行脚本式上载时,不必为远程数据库维护事务日志。对于小型设备,事务日志所占据的空间可能非常珍贵。但是,事务日志对于数据库备份和恢复非常重要,并能提高数据库性能。
为实现脚本式上载,需要创建特殊类型的发布,此发布指定您所创建的存储过程的名称。这些存储过程通过返回包含要在统一数据库上插入、更新或删除的行的结果集定义上载。
注意:不要将脚本式上载与上载脚本混淆。上载脚本是统一数据库上的 MobiLink 事件脚本,这些脚本由您编写,用来告诉 MobiLink 服务器对于上载要执行什么操作。使用脚本式上载时,您仍需要编写上载脚本(将上载应用于统一数据库)和下载脚本(确定下载什么)。
以下是脚本式上载可能有用的一些情形:
远程数据库在存储空间有限的设备上运行,没有足够的存储空间保存事务日志。
要从所有远程数据库上载所有数据,以创建新的统一数据库。
要编写用于确定将哪些更改上载到统一数据库的自定义逻辑。
在实现脚本式上载之前,确保阅读本章全部内容。具体地讲,注意以下要点:
如果未正确设置脚本式上载,会丢失数据。
实现脚本式上载时,必须维护或引用通常可由 dbmlsync 替您处理的内容。这些信息包括数据的前映像和后映像以及同步的进度。
通过脚本式上载进行同步时需要锁定远程数据库上的表。使用基于日志的同步时,则不需要锁定。
使用脚本式上载实现事务性上载极为困难。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |