SQL Anywhere 10.0.1 发行说明(用于 Unix 和 Mac OS X) 版权所有 (c) 2007, iAnywhere Solutions, Inc. 保留所有权利。保留所有未公开的权利。 安装 SQL Anywhere 10 -------------------------- 1. 作为具有写入特权的用户登录到 要安装的目录。 2. 下一步取决于您拥有包含 SQL Anywhere 10 的 CD 还是档案。 2a. 如果有 CD,请将 CD-ROM 放入到 CD-ROM 驱动器。 如果系统未自动安装,请安装 CD-ROM 驱动器。在 Linux 中,安装点 通常为 /mnt/cdrom。在这种情况下,可输入以下命令: mount /mnt/cdrom 在外壳程序中,更改至 CD-ROM 目录。例如: cd /mnt/cdrom 2b. 如果有档案文件,则使用 tar 来抽取安装程序。例如: tar xvzf linux_x86_sa1001.tar.gz 3. 更改至已创建的目录,并输入 以下命令运行安装脚本: cd ga1001 ./setup 有关可用安装选项的完整列表,请输入以下 命令: ./setup -h 3b. 对于 Mac OS X,提供了 GUI 安装程序。在 Finder 中双击 “安装 SQL Anywhere” 4. 按照安装程序显示的指令操作。 为 SQL Anywhere 10 设置环境变量 ------------------------------------------------- 每个使用该软件的用户都必须设置 必要的 SQL Anywhere 环境变量。这些环境变量取决于您特定的操作系统, 在“SQL Anywhere Server – 数据库管理”手册 的“SQL Anywhere 环境变量简介”文档中对其进行了论述。 创建桌面图标 (Linux) ------------------------------ 在 Linux 上进行安装时,如果已安装了 KDE 或 GNOME, 将会询问您是否希望安装桌面图标。对每个希望使用这些图标的用户 必须安装这些图标。要为用户安装图标, 可以该用户的身份登录,并输入下命令再次运行安装程序: ./setup -create_icons [安装目录] 如果已设置了 SQLANY10 环境变量, 则不需要安装目录。 可通过运行 remicons 脚本为用户删除图标: $SQLANY10/bin32s/remicons 开始使用 SQL Anywhere 10 ------------------------------------ 本部分将介绍如何从 Interactive SQL 系统管理和浏览实用程序连接到 示例数据库,以及如何执行查询。 1. 在典型的 Unix 安装中,软件(包括示例数据库) 安装在您不具有写入权限的目录中。 在终端窗口,更改至可写入的文件夹。使用以下命令 将示例数据库文件复制到该文件夹: cp <安装目录>/demo.db。 其中 <安装目录> 是 SQL Anywhere 10 的安装目录, 例如,/opt/sqlanywhere10。 2. 使用以下命令启动 运行在数据库文件上的数据库服务器可执行文件: dbeng10 demo.db 3. 通过输入以下命令 在另一个终端窗口运行 Interactive SQL 系统管理实用程序: dbisql 如果未安装 JRE 或者正使用部署选项, 则可以使用以下命令 来运行基于字符版本的 Interactive SQL: dbisqlc 4. 将出现连接对话框。输入 DBA 作为用户 ID、sql 作为口令, 以及 demo 作为数据库名称。将其它字段保留空白。按 Enter 键 连接到数据库。 5. 您的窗口现在会分成若干子窗口。在“命令”窗口中 输入以下查询: SELECT * FROM Employees 按 F5 或 F9 执行该语句。 如果正在运行 dbisqlc 并希望模拟 F 键,请按 Ctrl+F, 然后按下数字 9 执行该语句。 数据窗口将显示查询的结果集。 如果正在 Linux 或 Solaris 上运行远程终端会话, 并且没有对图形用户界面的访问权限, 则可使用以下批处理命令来查看结果集: dbisql -c "uid=DBA;pwd=sql" -nogui "SELECT * FROM Employees" 开始使用 SQL Anywhere 10 (Mac OS X) ----------------------------------------------- 本部分将介绍如何使用 Finder 启动 SQL Anywhere 示例数据库, 如何从 Interactive SQL 连接到该数据库, 以及如何对该数据库执行简单的查询。 1. 在 Finder 中,找到 SQL Anywhere 示例数据库。 可在 /Applications/SQLAnywhere10/System/demo.db 下找到它。 2. 将此文件复制到您具有读写访问权限的位置。 例如,您可用将它复制到“桌面”(Desktop)。 3. 在 Finder 中,双击 DBLauncher 应用程序。 DBLauncher 应用程序位于 /Applications/SQLAnywhere10 之下。 4. 输入选项以启动数据库服务器。 4a. 要填写数据库字段,可单击“浏览”(Browse) 并找到“桌面”(Desktop) 上的示例数据库文件。 4b. 保留“服务器名”(Server Name) 字段为空。 “服务器名”(Server Name) 字段允许您为 此数据库服务器的实例命名。缺省情况下,该名称取自数据库文件 (在此例中为 demo)。 4c. 保留“高速缓存容量”(Cache Size) 字段为空。 “高速缓存容量”字段允许您指定起始的高速缓存大小。 例如,如果键入 10M,则数据库服务器将分配出 10 MB 内存用于高速缓存。SQL Anywhere 使用动态高速缓存分配, 因此该字段通常可保留为空。 4d. 保留“选项”(Options) 字段为空。 通过“选项”字段可输入其它数据库服务器选项。 有关数据库服务器选项的完整列表, 请参阅“SQL Anywhere Server - 数据库管理”中的“数据库服务器”。 4e. 选择“本地服务器”(Local Server) 选项。 “本地服务器”(Local Server) 选项不允许在网络中 进行客户端/服务器通信。 5. 启动数据库服务器。 单击“开始”(Start) 启动名为 demo 的个人数据库服务器。 “服务器消息”窗口将显示授权信息 和性能警告。根据所提供的数据库服务器选项(例如请求记录), 该窗口中还会显示其它诊断信息。 6. 启动 Interactive SQL。 在 Finder 中,双击 /Applications/SQLAnywhere10 下的 InteractiveSQL。 系统将提示您有关如何连接您的数据库服务器的选项。 7. 键入 DBA 作为用户 ID,sql 作为口令,然后单击“确定”。 可将其它字段保留空白。 8. 在命令窗口中键入以下查询: SELECT * FROM Employees 9. 选择 SQL >“执行”以执行以上的语句。 数据窗口将显示查询的结果集。 10. 选择 SQL >“断开连接”以从数据库服务器断开连接。 11. 要停止数据库服务器,右键单击 dock 工具条然后选择“退出”(Quit)。 在此节中,您启动了数据库,然后通过 Interactive SQL 连接到该数据库, 并对其执行了简单的查询。 您还可从 Sybase Central 连接到该数据库, Sybase Central 是一个数据库管理和监控工具。 Sybase Central 连接对话框与 Interactive SQL 连接对话框 所使用的字段相同。 SQL Anywhere 10 的发行说明 --------------------------------- SQL Anywhere Server ------------------- o SQL Anywhere 服务器 - 来自 SQL Anywhere 9 及先前版本的数据库 必须在重建后才能与 SQL Anywhere 10 配合使用。 安装 SQL Anywhere 10 之后,请参考相关文档以了解 有关重建数据库的信息。 重建用于 Mac OS X 计算机的数据库时,必须 执行以下操作之一: 1. 在其它平台上重建数据库。 2. 在运行不同平台的计算机上卸载数据库, 然后在 Mac OS X 上重装。 3. 使用版本 9 数据库服务器在 Mac OS X 上卸载数据库, 然后使用版本 10 软件重装数据库。 o 如果使用的是 Adaptive Server Anywhere 9.0.1(或更早版本)的服务器软件, SQL Anywhere 10 64 位客户端可能无法使用共享内存 连接到该服务器。要解决此限制,可使用 TCP/IP 进行通信, 或将该服务器升级到 Adaptive Server Anywhere 9.0.2 或 SQL Anywhere 10。 对于 HP-UX Itanium,还存在一些其它限制。早于版本 9.0.2 内部版本 3207 (包括更早版本)的客户端或服务器 无法使用共享内存与 SQL Anywhere 10 中的服务器或客户端 进行通信。即使客户端和服务器都为 32 位或都为 64 位, 这种限制也仍然适用。要解决此限制, 可使用 TCP/IP,或将旧版软件升级到 Adaptive Server Anywhere 9.0.2 内部版本 3207(或更高版本)或 SQL Anywhere 10。 o 将数据库服务器作为守护程序运行 - 可使用 -ud 选项 来将数据库服务器作为守护程序运行。例如: dbeng10 demo.db -ud 请勿使用“&”在后台运行服务器。 要停止作为守护程序运行的数据库服务器,可使用 dbstop 实用程序: dbstop demo o SQL Anywhere Server – 在 RedHat 4 上,启动启用了 GUI 的数据库服务器 可能会因为 glibc 错误而导致崩溃。对 glibc 2.3.4-2.25 进行的测试 表明该问题已解决。建议至少在此补丁程序级别 运行 glibc。 o SQL Anywhere Server – 在使用 2.6.13 之前的 kernel 的 Linux 发布版本上, IPv6 链接范围的本地地址 由于已知的 kernel 错误 可能无法按照预期的情况工作。如果需要使用链接范围的本地 IPv6 地址, 建议将 kernel 至少升级到版本 2.6.13 o SQL Anywhere Server – 在 Mac OS X 上,当计算机处于休眠模式时, 网络连接将停止。因此,当 Mac 机处于休眠模式时, 连接在该 Mac 机上运行的 SQL Anywhere 服务器将失败。要避免此问题,可将休眠模式 设置为“永不”(Never)。在“系统首选项”(System Preferences) 中选择 “节能器”(Energy Saver)。在“休眠”(Sleep) 选项卡中, 将滑块移动到“永不”(Never)。 o SQL Anywhere Server - 在 AIX 5.3 上,建议至少使用补丁程序编号 IY79612, 因为 syslogd 中的错误可导致 SQL Anywhere Server 死机。 MobiLink -------- o 如果将服务器启动的同步用于 Treo 600 设备上的 SMTP 网关, 则必须在重置后重新启动 Treo 上的监听器实用程序 才能收到通知。 o Sybase Central MobiLink 插件 – 在部署时创建的数据库对象 可能具有长度大于数据库支持长度的名称 (因为新对象名称通过向基本表名称添加 后缀来创建)。如果发生这种情况,则只部署到文件(不直接部署到 数据库)并编辑生成的 SQL 文件以替换超长名称的所有 实例。 o Sybase Central MobiLink 插件 – 当在“创建同步模型”向导中创建新的远程模式时, 新远程数据库的列中 将不包含外键、索引或统一数据库中各 列的缺省列值。UltraLite 数据库不支持 NCHAR 或 NVARCHAR 列, 因此无法使用带有这些数据类型的列的统一数据库表 来生成 UltraLite 远程数据库的新远程模式。部署后,可创建或更改 远程模式,然后对该模型的模式进行升级。 o Sybase Central MobiLink 插件 – 如果要同步具有计算列的统一数据库表, 将无法向该表进行上载。 如果部署了带有计算列的同步模型, 当创建用于基于时间戳的下载的触发器时,该部署可能会发生错误。 可从同步中排除该列,或将表设置为 仅下载(或使用快照下载或编辑 生成的统一 SQL 文件以从触发器定义中 删除计算列)。 o Sybase Central MobiLink 插件 – 当为表映射选择统一数据库表时, 将无法选择视图。 o Linux 语言设置和 Oracle – 在某些 Linux 发布版本中, 当环境变量 LANG 设置为其常用的 en_US 值时, MobiLink 无法建立同 Oracle 数据库的连接。要解决此问题, 可取消设置环境变量 LANG。例如, 在 Bourne 外壳程序 (sh) 中运行以下命令: unset LANG o MobiLink 通告程序、网关和运营公司 – 服务器启动的同步 (SIS) 通告程序、网关和运营公司都必须具有单字节字符名称。 操作系统支持 ------------------------ o 安装 SQL Anywhere 10 的操作系统要求可从以下网址获得: http://www.ianywhere.com/products/supported_platforms.html。 该网页还提供为每个受支持平台所包括的 SQL Anywhere 组件 的信息。 o SELinux 支持 – 如果在 SELinux 上运行 SQL Anywhere 时发生问题, 您需要为 SQL Anywhere 的安装定义相应的 SELinux 策略, 或禁用 SELinux。 可将 SQL Anywhere 库重新标记为可重定位的共享库, 以允许它们在 SELinux 上运行。例如,在 RedHat 发布版本中, 可运行以下命令: chcon -t textrel_shlib_t $SQLANY10/lib32/* $SQLANY10/lib64/* 或者,您可以通过运行以下命令 作为根来禁用 SELinux: /usr/sbin/setenforce 0 o Itanium 平台仅 64 位 – Linux Itanium 平台支持 32 位 x86 (IA-32) 应用程序, 而 HP-UX Itanium 平台支持 32 位 Hewlett Packard PA-RISC (ILP32) 应用程序,但只能在 模拟模式中运行。要避免性能下降, 可使用本地 64 位 SQL Anywhere 客户端库来将应用程序重新编译为 本地 Itanium IA-64 (LP64) 可执行文件。 o 线程和信号 – 软件中使用的线程和信号类型 可能非常重要,因为某些系统可能 耗尽这些资源。 o 在 Solaris 中,SQL Anywhere 使用 Posix 线程和本地 信号。 o 在 Linux、AIX、HP-UX 和 Mac OS X 中,SQL Anywhere 使用 pthreads(posix 线程)和系统 V 信号。 o 警报处理 – 仅当开发 非线程应用程序和使用 SIGALRM 或 SIGIO 处理程序时才有用。 SQL Anywhere 在非线程客户端使用 SIGALRM 和 SIGIO 处理程序 并启动重复警报(每 200 毫秒一次)。要获得正确的行为, 就必须允许 SQL Anywhere 来处理这些信号。 如果在装载任何 SQL Anywhere 库之前定义 SIGALRM 或 SIGIO 处理程序, 则 SQL Anywhere 会链接到这些处理程序。 如果在装载 SQL Anywhere 库之后定义处理程序, 您就需要从 SQL Anywhere 处理程序进行链接。 如果使用 TCP/IP 通信协议,则 SQL Anywhere 将 只在非线程客户端使用 SIGIO 处理程序。该处理程序始终 被安装,但只在您的应用程序使用 TCP/IP 时才使用。 o xterm 环境要求在使用字符模式时预先启动 – 当 尝试在 Unix 下运行 SQL Anywhere 的评估版本时, 建议您在通过图形应用程序进行连接前 预先启动 SQL Anywhere。否则,如果图形应用程序(例如 Interactive SQL 或 Sybase Central)会处在遮挡终端窗口(应用程序从该处启动)的位置上, 您将无法查看(或响应) 许可协议接受的请求。 o 建议用于 RedHat 4 x86_64 的补丁程序 – 启动启用了 GUI 的 64 位数据库服务器 可能会由于 glibc 错误而导致崩溃。应用来自 RedHat 最新的 glibc 补丁程序 可以解决这个问题。 o 在 TurboLinux FUJI (11) 上退出时 Sybase Central 崩溃 – 这是由 随 TurboLinux FUJI 包含的 glibc 包的问题造成的。在写入时, TurboLinux 不提供补丁程序。 o HP Itanium 上的 iAnywhere JDBC 驱动程序 – 如果打算在 HP Itanium 上使用 iAnywhere JDBC 驱动程序,请注意最低的 JRE 要求为 1.4.2 版。若使用 任何早于 1.4.2 的版本将导致应用程序在退出时死机。 o Java Invoice 示例在 Linux Itanium、HP-UX 和 IBM AIX 下不会运行, 因为它需要 dbisql 提供的功能, 而这些平台中均未包括。 o Kerberos 支持 – 在 Solaris、HP-UX 和在 IBM AIX 上经过了测试并 支持 MIT Kerberos 5 版本 1.4 Kerberos 客户端。其它正确配置的 GSS-API Kerberos 未经 测试 或未得到正式支持。 o LDAP 支持 – 在 HP-UX 上,只有 HP 提供的 LDAP-UX 集成产品中 随附的 LDAP 库经过测试并受支持。其它正确 配置的 LDAP 库也可能正常工作,但未经测试 或未得到正式支持。 o 在 AIX 和 HP 上,当在 SQL Anywhere 服务器内运行 Java 虚拟机时, 如果 Java VM 使用与服务器不同的位, 则有问题发生。例如,将 64 位服务器与 32 位 Java VM 一起使用将无法工作。 为解决此问题,在 ${SQLANY}/java 中提供了一个用于 启动 Java VM 的脚本。它依赖于正确设置的 JAVA_HOME。此脚本 缺省使用 32 位 Java VM。如果要使用 64 位的 Java VM, 在 sa_java.sh 内将 JAVA_BITNESS 的值更改为 64。 如果要使用多个 Java VM,应复制并修改 sa_java.sh,这样它才会装载替代的 Java VM。然后, 设置 java_location 数据库选项以指向新脚本。 o 在某些亚洲区域设置中,缺省情况下管理工具可能无法始终正确地显示 亚洲字符。该问题与 JRE 1.5.0 及其 对发布日期在 JRE 1.5.0 后的 Linux 版本的支持有关,或者 因为在 JRE 1.5.0 中不包含相应配置文件。 显示问题主要是由于缺乏一些字体配置文件 (JRE 的 lib 目录下具有前缀 fontconfig 的文件)。在某些情况下, 可以从操作系统服务商处获得操作系统的字体配置文件和 语言组合。请阅读 下面与您的操作系统最接近的部分。如果没有 任何部分适用,试一试“其它”部分的步骤。 TURBOLINUX 11(日语) 从 ftp://ftp.turbolinux.co.jp/pub/TurboLinux/TurboLinux/ia32/Desktop/11/updates/SR PMS/j2sdk-addon-1.5.0_06-1.src.rpm 下载 RPM 更新程序 1. 关闭所有正在运行的管理工具。 2. 使用以下命令安装 RPM: rpm -ivh --nodeps j2sdk-addon-1.5.0_06-1.src.rpm 将以下文件安装到 /usr/java/j2sdk1.5.0_06/jre/lib: fontconfig.Turbo.10.0.properties 3. 将该文件复制到 $SQLANY10/jre150/lib 文件夹。 现在管理工具应能正确地显示日文字体。 REDFLAG 5(中文) 确保已为简体中文区域设置安装了 以下 RPM: ttfonts-zh_CN-5.0-2 如果未安装,可在 RedFlag 5 发布版本的 CD #2 上获取 RPM。 当作为根登录时,可使用“rpm -i”命令来安装 RPM。 执行以下命令,这样 JRE 就会找到 系统的字体配置文件: 1. cd $SQLANY10/jre150/lib 2. cp fontconfig.RedHat.3.properties.src fontconfig.Linux.properties REDHAT ENTERPRISE LINUX 4 确保已安装了亚洲区域设置所需的字体。如果未安装, 可在 Redhat Enterprise Linux 4 发布版本的 CD #4 上获取该 RPM。 以下 RPM 包含亚洲区域设置所需的字体: ttfonts-ja-1.2-36.noarch.rpm ttfonts-ko-1.0.11-32.2.noarch.rpm ttfonts-zh_CN-2.14-6.noarch.rpm ttfonts-zh_TW-2.11-28.noarch.rpm 当作为根登录时,可使用“rpm –i”命令安装 每个 RPM。 执行以下命令,这样 JRE 就会找到 系统所需的字体配置文件: 1. cd $SQLANY10/jre150/lib 2. cp fontconfig.RedHat.3.properties.src fontconfig.RedHat.4.properties SuSE 10 确保已安装了亚洲区域设置所需的字体。如果未安装, 可在 SuSE 10 发布版本的 CD #1 上获取该 RPM。 ( xfntjp-20020904-432.noarch.rpm ( xfntkr-2.1-633.noarch.rpm ttf-founder-simplified-0.20040419-6.noarch.rpm ttf-founder-traditional-0.20040419-6.noarch.rpm 如果这些字体中不包含要显示的字体,请试一试 “其它”部分的步骤。 当作为根登录时,可使用“rpm –i”命令安装 每个 RPM。 执行以下命令,这样 JRE 就会找到相应字体: 1. cd /usr/X11R6/lib/X11/fonts/truetype 2. mkdir $SQLANY10/jre150/lib/fonts/fallback. 3. cp FZ* $SQLANY10/jre150/lib/fonts/fallback 注意:在登录提示符处设置语言对于 JRE(以及管理工具)确定区域设置还不够。在 启动管理工具之前,应将环境变量 LANG 设置为下列值之一: ja_JP ko_KR zh_CN zh_TW 例如,在 Bourne 外壳程序及其派生程序中, 可在启动管理工具前执行以下命令: export LANG=ja_JP 某些德语字符(例如带有变音符号的“a”), 当区域设置为 de_DE.UTF-8 时无法在窗口标题栏上正确显示。 解决此问题的方法是使用 de_DE@euro 区域设置。 有关此环境变量的有效区域设置的完整列表, 请参阅 /usr/lib/locale 的目录列表。 其它 如果您有相同类型的发布版本,但版本号不同, 如上面部分列出的情况,建议您试一试 最接近部分的步骤,并根据需要调整到 不同的版本号。您还应搜索 Internet 来查找 适于您的发布版本的特定解决方案。如果这些步骤都不能产生 满意的结果,则可使用下面的一般解决方案。 使用下面的步骤可将 Unicode、TrueType 字体安装到 管理工具所使用的 JRE。该方法可用于 上面未提及的任何 Linux 操作系统。其它 TrueType 字体可 通过类似方式安装。 1. 关闭所有正在运行的管理工具。 2. 下载可免费获取的 Unicode 字体,如 Bitstream Cyberbit, 它可从 ftp://ftp.netscape.com/pub/communicator/extras/fonts/windows/Cyberbit.ZIP 获取 3. 将 Cyberbit.ZIP 解压缩到临时目录。 4. 创建目录 $SQLANY10/jre150/lib/fonts/fallback。 5. 将 Cyberbit.ttf 复制到 $SQLANY10/jre150/lib/fonts/fallback 目录下。 Open Client ----------- o Linux 上的 Open Client 应用程序 – 在 Linux 下,Open Client 应用程序 会在 Red Hat 下启动时崩溃,因为默认的 $LANG 值为“en_US”, 而该值对于 Open Client 的 Linux 版本是未知的。要纠正 这种情况,可以取消设置 $LANG 环境变量,例如通过 发布命令 unset LANG 或者为 en_US 添加一个到文件 locales.dat 的入口,例如, [linux] locale = en_US, us_english, iso_1 文档 ------------- o 文档的初始版本使用英语。有关 其它语言的文档,请使用“检查更新”功能,或 访问以下网址: http://www.ianywhere.com/developer/product_manuals/sqlanywhere/index.html