MobiLink 支持用于 Linux、Unix 和 Windows 的 IBM DB2 LUW。
运行安装脚本之前,您应了解以下要求:
运行安装脚本的数据库用户预期为同步过程中将更新 MobiLink 系统表的同一用户。必须使用此用户启动 MobiLink 服务器和配置 MobiLink 应用程序。请参见所需权限。
MobiLink 服务器用于连接统一数据库的 RDBMS 用户必须能够使用 MobiLink 系统表、过程等,但不能使用任何限定符(例如,SELECT * from ml_user)。请参见MobiLink 服务器系统表。
要设置 IBM DB2 用作 MobiLink 统一数据库,必须运行设置过程,此过程将添加 MobiLink 同步所需的 MobiLink 系统表、存储过程、触发器和视图。可通过多种方法实现这一点:
运行 syncdb2.sql 安装脚本,它位于 install-dir\MobiLink\setup 中。运行此文件前,必须将其复制到其它位置并且进行修改。说明如下。
在 Sybase Central 的 MobiLink 12 插件中,从 [视图] 菜单选择 [文件夹]。打开 MobiLink 项目并展开 [统一数据库]。右击数据库名,选择 [检查 MobiLink 系统设置]。如果需要对您的数据库进行设置,系统将提示您继续。请注意,您必须执行以下过程的第 1 步。
使用 [创建同步模型向导] 或 [部署同步模型向导] 时,将在连接到统一数据库时检查系统设置。如果需要对您的数据库进行设置,系统将提示您继续。请注意,您必须执行以下过程的第 1 步。
要使用安装脚本安装 MobiLink 系统表,目标 IBM DB2 LUW 表空间必须使用至少 8 KB 页。如果表空间不使用 8 KB 页,请完成以下步骤:
验证是否至少存在一个具有 8 KB 页的缓冲池。否则,创建一个具有 8 KB 页的缓冲池。
创建一个使用 8 KB 页缓冲池的新的表空间和临时表空间。
有关详细信息,请参见 IBM DB2 LUW 文档。
使用连接信息自定义 syncdb2.sql:
将 syncdb2.sql 复制到可以修改并存储它的新位置。
syncdb2.sql 脚本包含一个缺省连接语句 [connect to DB2Database
]。将此行变更为连接到您的 IBM DB2 数据库。使用以下语法:
connect to DB2Database user userid using password ~ |
其中,DB2Database、userid 和 password 是您提供的名称。(syncdb2.sql 脚本使用代字号字符 (~) 作为命令分隔符。)
运行 syncdb2.sql:
db2 -c -ec -td~ +s -v -f syncdb2.sql |
必须使用随 IBM DB2 数据库附带的 ODBC 驱动程序为 IBM DB2 统一数据库设置 ODBC DSN。请参见:
数据类型映射 列的数据类型必须在统一数据库和远程数据库之间正确映射。有关详细信息,请参见IBM DB2 LUW 数据映射。
CHAR 列 在 IBM DB2 LUW 中,CHAR 数据类型长度固定并以空白填充以达到字符串的全长。在 MobiLink 远程数据库(SQL Anywhere 或 UltraLite)中,CHAR 与 VARCHAR 相同:值不填充空白以达到固定宽度。强烈建议在统一数据库中使用 VARCHAR 而不是 CHAR。如果必须使用 CHAR,在同步过程中可以使用 mlsrv12 -b 命令行选项删除字符串的尾随空白。此选项对于用于检测冲突的字符串比较十分重要。
请参见-b mlsrv12 选项。
表空间容量 您希望用作统一数据库的任何 IBM DB2 LUW 数据库中的表空间和临时表空间都必须使用至少 8 KB 页。
此外,有些列要求 LONG 型表空间。如果没有缺省的 LONG 型表空间,创建包含这些列的表的语句必须恰当限定,如下例所示:
CREATE TABLE ... ( ... ) IN tablespace LONG IN long-tablespace |
有关使用示例应用程序的示例,请参见研究 MobiLink 的 CustDB 示例。
会话范围的变量 版本 8 以前的 IBM DB2 LUW 不支持会话范围的变量。对此,方便的解决方法是使用一个基表,在其中加入列来包含 MobiLink 用户名和其它会话数据。此基表包含表示并发同步的行。
用户定义的过程 版本 8.2 以前的 IBM DB2 LUW 要求您将 SQL 过程编译为可执行库(如 DLL)。结果 DLL/共享库必须复制到服务器的专门目录中。请注意,您可以使用几种不同的语言(其中包括 C/C++ 和 Java)编写过程。
有关 Java 和 .NET 同步脚本的详细信息,请参见:
在系统过程调用中使用双重引号
使用 MobiLink 系统过程将脚本添加到 IBM DB2 统一数据库时,需要使用双重引号。例如,如果通过 ml_add_table_script 添加的脚本包括用于任何其它统一数据库的行 [SET "DELETED"=''Y''
],则对于 IBM DB2,必须将其写成 [SET "DELETED" = ''''Y''''
]。
请参见MobiLink 隔离级别。
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |