若要安装 IBM DB2 UDB 以用作 MobiLink 统一数据库,请运行位于您的 SQL Anywhere 安装目录的 MobiLink\setup 子目录中的 syncdb2long.sql 安装脚本。但是,在运行脚本之前,您必须完成以下步骤。
要用安装脚本安装 MobiLink 系统表,IBM DB2 表空间必须使用至少 8 Kb 页。如果表空间不使用 8 Kb 页,请完成以下步骤。
验证至少有一个缓冲池有 8 Kb 页。如果没有,请创建一个有 8 Kb 页的缓冲池。
创建一个使用 8 Kb 页缓冲池的新的表空间和临时表空间。有关详细信息,请参见 DB2 文档。
为确保 MobiLink 管理员有足够的权限来更改 MobiLink 系统表(添加脚本和执行其它操作所需的权限),需要访问那些表的用户应运行安装脚本。
syncdb2long.sql 脚本包含一个缺省连接语句 connect to DB2Database。您应该制作该脚本的一份副本并更改该行,使之适合您的安装。该行的语法必须为:
connect to DB2Database user userid using password ~
其中,DB2Database、userid 和 password 是您提供的名称。
syncdb2long.sql 脚本使用波浪号字符 (~) 作为命令分隔符。可以按照以下方法运行这些脚本:
db2 -c -ec -td~ +s -v -f syncdb2long.sql
为了使 DB2 使用在 syncdb2long.sql 中定义的存储过程,您必须将位于您的 SQL Anywhere 安装目录的 MobiLink\setup 子目录中的 syncdb2long_version Java 和类文件复制到您的 DB2 安装目录的 FUNCTION 子目录中。
要为您的 DB2 统一数据库设置 ODBC DSN,请使用 iAnywhere Solutions DB2 Wire Protocol 驱动程序。
有关详细信息,请参见 iAnywhere Solutions ODBC Driver for DB2。
表空间容量 您希望用作统一数据库的所有 DB2 数据库中的表空间和临时表空间都必须使用 8 Kb 页。
此外,有些列要求 LONG 型表空间。如果没有缺省的 LONG 型表空间,创建包含这些列的表的语句必须恰当限定,如下例所示:
CREATE TABLE ... ( ... ) IN tablespace LONG IN long-tablespace
有关使用示例应用程序的示例,请参见 CustDB 示例应用程序。
会话范围的变量 DB2 的较早版本(版本 8 之前)不支持会话范围的变量。对此,方便的解决方法是使用一个基表,在其中加入列来包含 MobiLink 用户名和其他会话数据。此基表将包含表示并发同步的行。
用户定义的过程。 DB2 需要一个 C 编译器以将 SQL 过程编译为可执行库(如 DLL)。结果 DLL/共享库必须复制到服务器的专门目录中。请注意,您可以使用几种不同的语言(包括 C/C++ 和 Java)编写存储过程。
有关 Java 作为 DB2 过程语言的示例,请参见文件 Samples\MobiLink\CustDB\custdbq.sql 和 Samples\MobiLink\CustDB\custdbq.java 中的 CustDB 脚本。
有关 Java 和 .NET 同步脚本的详细信息,请参见
CHAR 列 在 IBM DB2 中,CHAR 数据类型长度固定并填充空白以达到字符串的全长。在 MobiLink 远程数据库(Adaptive Server Anywhere 或 UltraLite)中,CHAR 与 VARCHAR 相同:值不填充空白以达到固定宽度。在同步过程中可以使用 dbmlsrv9 -b 命令行选项删除字符串的尾随空白。此选项对于用于检测冲突的字符串比较尤为重要。
有关详细信息,请参见 -b 选项。
数据类型映射 有关如何将 Adaptive Server Anywhere 数据类型映射为 DB2 数据类型的详细信息,请参见 IBM DB2 数据映射。
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。