IBM DB2 通用数据库 发行说明 版本 8.2 修订包 1(等同于版本 8.1 修订包 8) 在使用本资料及其支持的产品之前,请务必阅读『声明』中的一般信息。 本文档包含 IBM 的专利信息。它是根据许可协议提供的,并受版权法保护。本出 版物包含的信息不包括任何产品保证,且本手册提供的任何声明不应作如此解释。 可以用在线方式或通过您当地的 IBM 代表订购 IBM 出版物。 * 要以在线方式订购出版物,可访问 IBM 出版物中心(IBM Publications Center),网址为 www.ibm.com/shop/publications/order。 * 要查找您当地的 IBM 代表,可访问 IBM 全球联系人目录(IBM Directory of Worldwide Contacts),网址为 www.ibm.com/planetwide。 在美国或加拿大,要从“DB2 市场营销和销售中心”订购 DB2 出版物,请致电 1-800-IBM-4YOU(426-4968)。 当您发送信息给 IBM 后,即授予 IBM 非专有权,IBM 对于您所提供的任何信息, 有权利以任何它认为适当的方式使用或分发,而不必对您负任何责任。 (C) Copyright International Business Machines Corporation 2002 - 2004. All rights reserved. 目录 关于发行说明 关于此发行版 本发行版中的新增内容 DB2 UDB 工作组服务器版和 DB2 UDB 工作组服务器无限制版增强功能 Windows AMD64 平台上的 DB2 UDB 支持 创建 32 位和 64 位实例 新的注册表变量:DB2_ASYNC_IO_MAXFILOP 用于自动维护和维护健康指示器的新的 SMS 用户表空间 产品修订历史 向后兼容性 DB2 UDB 版本 8.2 数据库的向后兼容性 对 DB2 UDB 客户机支持的说明 从 DB2 UDB 版本 8.2 迁移回 DB2 UDB 版本 8.1 时健康注册表发生的更改 备用修订包(Linux 和 UNIX) 数据仓库中心先前服务器支持限制 DB2 UDB OS/390 版版本 6 和 DB2 UDB z/OS 版版本 7 上的 SQLJ 和 SQL 助手支持所需的开发中心 APAR 从 DB2 UDB 启动 SQL 助手的两个版本 Unicode 服务器行为的更改 数据库配置参数在迁移期间发生的更改 db2diag.log 格式消息增强功能 现在会记录 db2set 概要文件注册表变量及 DB 或 DBM 配置参数 产品兼容性 64 位操作系统上需要 Microsoft XP 修订 Windows XP 操作系统 提供了 DB2 UDB HADR 单独定价选件 DB2 仓库管理器(版本 8.2)和 IBM DB2 OLAP Server FP3 和更新版本 对于数据仓库中心的 Red Hat Linux 支持 编码字符集标识(CCSID)5039 的备用 Unicode 转换表 将编码字符集(CCSID)5039 的 Unicode 转换表替换为 Microsoft 转换表 编码字符集标识(CCSID)954 的备用 Unicode 转换表 将编码字符集(CCSID)954 的 Unicode 转换表替换为 Microsoft 转换表 编码字符集标识(CCSID)943 的备用 Unicode 转换表 将编码字符集(CCSID)943 的 Unicode 转换表替换为 Microsoft 转换表 不支持 MVS 操作系统 备份和复原操作(Linux 390) 在使用 Hummingbird Exceed 访问开发中心时启用视图停放 安装、迁移、升级和配置信息 硬件和软件需求 安装说明 目录路径不能包含空格(Linux 和 UNIX) DB2 UDB 的 JDK 级别(Linux on IA64 和 Linux on PowerPC) 解压缩安装映像(Linux 和 UNIX) DB2 UDB 不允许非英语安装路径(Windows) 下载和解压缩多个产品的修订包(Windows) 从安装映像安装 DB2 UDB(Linux 和 UNIX) 从安装映像安装 DB2 UDB(Windows) DB2 UDB 响应文件安装所需的磁盘空间 对于使用 db2setup 命令添加产品的限制(Linux 和 UNIX) DB2 Web 工具 在应用修订包之后绑定 Query Patroller 程序包 位于修订包 3 级别或更新级别的 Query Patroller 安装 Query Patroller 服务器安装 在 Query Patroller 中定义新的数据库分区组 Query Patroller 客户机工具安装 重新创建数据库的测试版 安装本地语言版本的 DB2 UDB 的 MDAC 文件 DB2 Universal Database(DB2 通用数据库)工作组服务器版的 DB2 许可证 策略 安装其它亚洲字体(Linux) 配置开发中心以使用 Java Development Kit(Linux) 在 United Linux 1.0 和 SuSE Linux 分发产品上创建组和用户标识 帮助系统守护进程在使用 db2_install 命令进行安装之后未启动(UNIX 和 Linux) Ready for Tivoli enablement(UNIX) 安装映像缩小工具(Windows) DB2 Universal Database(DB2 通用数据库)版本 8 HTML 文档安装限制(W indows) 先前安装已更新为最新级别(Windows) DB2 .NET 数据提供程序的系统需求(Windows) 作为非管理员安装 DB2 版本 8 客户机和 DB2 Connect PE(Windows) 迁移节点 迁移 DB2 Universal Database(DB2 通用数据库)(Windows) 在使用 DataJoiner 或复制时迁移 DB2 Universal Database(DB2 通用数据 库) 将 DB2 版本 8 Windows 32 位数据库迁移至 Windows 64 位 从先前版本迁移 XML Extender 数据库迁移(HP-UX on IA64) 卸载信息 以静默方式卸载 DB2 UDB(Windows) 用于使用静默卸载除去 DB2 信息中心的产品代码(Windows) 局限性 IMPORT REPLACE 不会响应 NOT LOGGED INITIALLY 子句 使用 ODBC 将数据导出至文件仓库程序 在开发中心的集成 SQL 调试器中不受支持的数据类型 开发中心中的结构类型 开发中心对于 64 位操作系统的局限性 开发中心(Linux) 调试具有双引号的存储过程 支持在开发中心中编译 Java 例程所需的路径设置 同时运行和调试 Java 存储过程的开发中心局限性 PHP 应用程序中的游标 AM_GET_LOCK_RPT 过程在分区数据库环境中不受支持(AIX) 四个不受支持的 SQL 管理例程 CLI 程序包的绑定选项局限性 指定列名的 CLI LOAD 限制 在尝试连接时报告成功登录失败(AIX) 版本 8 中的 SNA 支持局限性 不支持创建工具目录数据库(适用于 AMD64 的 Linux) 不支持创建工具目录数据库(AIX、Solaris Operating Environment 和 HP-UX ) DB2 UDB 精简版和 DB2 工作组服务器版版本 8.2 的内存限制 DB2 UDB 工作组服务器版 64 位服务器实例限制 调度仓库进程使其以一定时间间隔运行 装入和导入列页不支持 IXF 文件中的 DBCS 字符 DB2 UDB 客户机的安全性插件问题和限制(Windows) 不支持由两部分组成的用户标识(Windows ME) GUI 工具的最低显示器设置 不要对信息目录中心表进行分区 GB18030 字符在窗口标题栏中的显示不正确 DYN_QUERY_MGMT 被禁用时的 Query Patroller 局限性 Query Patroller 结果表现在使用 DB2QPRT 模式 健康指示器限制 已知问题和变通方法 DB2 UDB 工作组服务器未提供 db2nkill 工具 “db2gcf -k”命令在 DB2 UDB 工作组服务器上失败 来自 DRDA 包装器的 SQL1224 错误(AIX) 热键在 Microsoft Visual Studio .NET Framework 1.1 中不起作用 简体中文语言环境(AIX) 简体中文语言环境(Red Hat Linux) Merant 驱动程序管理器不兼容性(UNIX) NFS APAR IY32512 - 不可用线程(AIX) SQLFLAG(STD) 预编译器选项错误 DB2 Connect 定制顾问程序 创建工具目录数据库失败(HP-UX) 在 DB2 GUI 工具中显示印度字符 zSeries 服务器不支持 GUI 工具(Linux) 用引号将包含数字的 DB2 信息中心搜索项引起来 导入标记语言文件时未生成的信息目录中心日志文件 绑定 Query Patroller 程序包 Query Patroller 没有端口可用(Windows) 安全环境(Windows) XML Extender 样本程序已重命名 将新的样本程序与样本 sqx 文件配合使用 分解 XML Extender 中包含非唯一属性和元素名称的文档 使用 DB2 Connect 时 SNA 与 TCP/IP 之间的差别 文档更新 管理:实现 远程客户机的认证注意事项 直接 I/O(DIO)和并发 I/O(CIO)支持 分发器技术和自动进行客户机重新路由 有关在 DB2 Connect 服务器上进行编目的自动客户机重新路由注意事项 本地系统帐户支持(Windows) 由两部分组成的用户标识支持 有关 Kerberos 支持的更多信息 管理:性能 新的系统环境变量(Linux) 新增通信注册表变量 新增性能变量 SQL 编译器变量 配置参数更新 SQLDBCONF 数据库配置参数文件 对 DB2_HASH_JOIN 缺省值的更改 不推荐使用 DB2NTNOCACHE 注册表变量 说明表和说明信息的组织 捕获说明信息的准则 db2CfgGet API 中的附加返回码 collate_info 参数 自动设置缺省预取大小和更新缺省值 管理:计划 受支持的地域代码和代码页 DB2 Universal Database(DB2 通用数据库)支持的 XA 功能 更新了 xa_open 字符串格式的 TPM 和 tp_mon_name 值 对代码页 923 和 924 激活转换表 启用欧元的代码页的转换表文件 API 参考 SYNCPOINT 选项支持 SQLEDBDESC 结构的新增字段 对 SQLB-TBSPQRY-DATA 结构中的新增字段的更正 应用程序开发:构建和运行应用程序 定制 SQL 过程的预编译和绑定选项 必需的 C/C++ 编译选项(Linux on PowerPC 64 位) Micro Focus COBOL 存储过程的编译和链接命令(HP-UX) Micro Focus COBOL 的最低支持版本(HP-UX) 为 Micro Focus COBOL 存储过程设置环境变量(Windows) 应用程序开发:调用级接口(CLI) MapBigintCDefault CLI/ODBC 配置关键字 DescribeOutputLevel CLI/ODBC 配置关键字 应用程序开发:客户机应用程序编程 OleDbReportIsLongForLongTypes CLI/ODBC 配置关键字 OleDbSQLColumnsSortByOrdinal CLI/ODBC 配置关键字 IBM DB2 OLE DB 提供程序的 DB2 数据源属性组 DB2Binder 语法图中不正确的 URL 语法 重新路由 DB2 通用 JDBC 驱动程序客户机 定制 DB2 通用 JDBC 驱动程序配置属性 db2secFreeToken 函数已除去 仔细部署定制安全性插件 安全性插件 安全性插件 API 安全性插件命名约定(Linux 和 UNIX) 安全性插件库的限制 GSS-API 安全性插件不支持多个流认证 GSS-API 安全性插件不支持消息加密和签名 独立应用程序中的事务的隐式结束 分布式事务支持 应用程序开发:服务器应用程序编程 公共语言运行时(CLR)例程执行控制方式(EXECUTION CONTROL 子句) 公共语言运行时(CLR)例程中的最大十进制精度和小数位 命令参考 db2inidb - 初始化镜像数据库命令 db2iupdt 命令的使用说明 db2pd - DB2 命令的监视和故障诊断 db2sqljcustomize 命令的新增参数 sqlj 命令的新增参数 对 SET CLIENT 命令的更新 对 PRECOMPILE 命令的更新 对 UPDATE HISTORY FILE 命令的更新 对 EXPORT 和 IMPORT 命令的更新 对 LOAD 命令的更新 LOAD 实用程序的文件类型修饰符 IMPORT 实用程序的文件类型修饰符 ATTACH 命令 RECOVER DATABASE 命令 UPDATE HISTORY FILE 命令 db2updv8 - 将数据库更新至版本 8 当前级别命令 格式化陷阱文件(Windows) 数据移动 使用 IMPORT 实用程序时丢失了索引信息 数据恢复和高可用性 高可用性灾难恢复概述 跨平台备份和复原支持 备份至磁带(Linux) Tivoli Storage Manager HADR 本地主机和本地服务参数的值限制 高可用性灾难恢复的其它系统需求 高可用性灾难恢复的非复制操作 HADR 不支持原始日志 数据仓库中心 定义 DB2 仓库源和目标 对商业智能教程的更新 设置仓库日志文件的清除限制 CURSOR 装入的数据仓库中心支持 Unicode 仓库控制数据库迁移和局限性 修改于列的日期格式中的更改 在数据仓库中心中定义统计转换程序 iSeries 仓库代理程序的先决条件 DB2 .NET 数据提供程序 DB2Connection.ConnectionString 属性 DB2 Connect 新增安全性方案 对图解的更正 开发中心 对 DB2 通用类型 2 和类型 4 驱动程序的限制 GUI 工具 修改语句终止字符 控制中心的数据库详细信息窗格中的数据库不可用状态 生成缺省写至表输出(创建事件监视器) 信息目录中心 配置样本脚本 Web 服务器配置 《安装和配置补遗》 DB2 UDB 的应用程序服务器 DB2 嵌入式应用程序服务器支持 部署 DB2 Web 工具 块设备上的直接 I/O(Linux) DB2 信息中心守护进程(Linux 和 UNIX) 响应文件关键字和样本文件 响应文件安装错误代码 安装 DB2 服务器必需的用户帐户(Windows) 异步 I/O 支持(Linux) 修改了 db2ln 命令以创建 DB2 UDB 64 位库链接(Linux 和 UNIX) 消息参考 ADM 消息更新 CLP 消息更新 DBI 消息更新 SQL 消息添加和更新 Query Patroller 受管查询状态的定义更新 在运行 Query Patroller 历史数据生成器之前创建说明表 检查 Query Patroller 日志文件以进行历史分析 历史数据生成器的异常关闭 动态查询类更新 嵌套的查询行为 SQL 语句类型造成的局限性 使用终端服务客户机时的分辨率局限性 新的查询提交的组支持 Query Patroller 调度局限性 使用 RUN IN BACKGROUND QUERY 命令所需的权限 为结果表创建别名 受防护用户标识需要对 qpdiag.log 文件和路径具有写访问权 快速入门 验证数据库是否准备好迁移 DB2 UDB 的 Common Criteria 认证 Spatial Extender 验证 Spatial Extender 安装 SQL 管理例程 EXEC_DB2_SCRIPT 过程不可用 GET_DB_CONFIG 是一个存储过程 快照 UDF 的列扩展 SQL 参考 CONNECT 语句 说明设施使用的模式 日期时间值的字符串表示法 系统监视器 未启用连接集中器的情况下的去耦应用程序列表 运行时回滚进程的进度监视 XML Extender 分解大于 1 MB 的文档 使用 XML Extender 配置 MQ XML UDF XML Extender 环境变量 DB2DXX_MIN_TMPFILE_SIZE DB2XML.XMLVarchar UDT 重新定义 附录A. DB2 UDB 修订包 CD 目录结构 附录B. 与 IBM 联系 B.1 产品信息 附录C. 声明 C.1 商标 关于发行说明 内容 此发行说明中包含与以下 DB2(R) 版本 8 产品有关的最新信息: DB2 通用数据库个人版 DB2 通用数据库工作组服务器版 DB2 通用数据库工作组服务器无限制版 DB2 通用数据库企业服务器版 DB2 个人开发者版 DB2 通用开发者版 DB2 仓库管理器 DB2 Warehouse Manager Sourcing Agent for z/OS DB2 Data Links Manager DB2 Net Search Extender DB2 Spatial Extender DB2 Intelligent Miner Scoring DB2 Intelligent Miner Modeling DB2 Intelligent Miner Visualization DB2 Connect Application Server Edition DB2 Connect 企业版 DB2 Connect 个人版 DB2 Connect 无限制版 DB2 Query Patroller 版本信息 最新版本的 DB2 信息中心中提供了最新的文档,可通过浏览器存取。这一节后面 的『其它资源』一节中提供了用来下载最新文档的 URL。 DB2 信息中心文档中的修订标记指示自从首次提供版本 8.1 的 PDF 信息以来已 添加或更改的文本。竖线(|)指示第一次发布版本 8.1 之后添加的信息。数字 指示符(例如,1 或 2)指示该信息是为以相同编号结束的修订包或级别而添加 的。示例: * 1 指示信息是在修订包 1 中添加或更改的 * 2 指示信息对版本 8.1.2 作了更改 * 8 指示更改了版本 8.2 修订包 1(等同于版本 8.1 修订包 8)的信息 目录路径 Windows(R) 系统使用反斜杠(\)来对目录路径中的目录定界。Linux(TM) 和 UNIX(R) 系统使用正斜杠(/)作为定界符。当信息特定于平台时,《发行说明》 遵循此约定。但是,当信息与平台无关时,可能需要以不同于显示内容的方式输 入目录路径。例如,如果具有 Windows 系统,则在《发行说明》显示正斜杠(/) 时必须使用反斜杠(\)来输入目录路径。相反,如果具有 Linux 或 UNIX 系 统,则在《发行说明》显示反斜杠(\)时必须使用正斜杠(/)来输入目录路径。 DB2 Information Integrator 有关 DB2 Information Integrator 及其关联技术(包括联合系统、SQL 复制、Q 复制、事件发布、Web 服务和元数据管理)的当前已知重要问题的信息,请参阅 《DB2 Information Integrator 发行说明》。《DB2 Information Integrator 发行说明》位于以下 DB2 Information Integrator 支持 Web 页面: http://www.ibm.com/software/data/integration/db2ii/support.html 其它资源 Data Links Manager Administration Guide and Reference 的 PDF 格式(书号 SC27-1221-01)在发行修订包 1 时已更新,可从 DB2 支持站点下载,网址为: http://www.ibm.com/software/data/db2/udb/support.html。 DB2 Life Sciences Data Connect 产品的文档可从以下 IBM(R) 软件站点下载, 网址为:http://www.ibm.com/software/data/db2/lifesciencesdataconnect/ 如果想要查看 HTML 格式的 DB2 文档,可从 http://publib.boulder.ibm.com/infocenter/db2help/ 在线访问 DB2 HTML 信 息中心。 或者,可以在系统上安装 DB2 HTML 信息中心;可以从同一 Web 站点下载 DB2 HTML 文档 CD 映像。每个发行版都对 DB2 HTML 文档进行了更新。有关最新的文 档,请在线访问 DB2 HTML 信息中心,或者下载 DB2 HTML 文档 CD 映像并安装 在您的系统上。PDF 文档更新没有 HTML 信息中心那么频繁。 下列站点提供了有关 DB2 开发中心和 DB2 z/OS(R) 版的更多信息: http://www.ibm.com/software/data/db2/os390/spb/。 有关 DB2 产品系列的最新信息,可通过免费预订 DB2 Magazine 来获得。该杂志 的在线版本是在 http://www.db2mag.com 网站上提供的,有关申请预订的指示信 息也公布在此站点上。 关于此发行版 本发行版中的新增内容 本节提供了此发行版的 DB2 通用数据库增强功能的简要总结。 DB2 UDB 工作组服务器版和 DB2 UDB 工作组服务器无限制版增强功能 DB2 通用数据库(UDB)版本 8.2 修订包 1(等同于版本 8.1 修订包 8)介绍了 对下列平台上的 DB2 UDB 工作组服务器版(WSE)和 DB2 UDB 工作组服务器无限 制版(WSUE)的 64 位支持: * AIX 5L * HP-UX 11i * Linux for AMD64 * Linux for IA64 * Linux for PowerPC * Solaris Operating Environment * 基于 Windows Server 2003 64 位 Itanium 的系统 * Windows XP 64 位版本 64 位系统的优点在包括更多地址空间供代码、变量、共享内存和缓冲池使用。 Windows AMD64 平台上的 DB2 UDB 支持 现在,DB2 产品在下列 Windows AMD64 平台上是受支持的: * Windows XP 64 位 * Windows Server 2003 64 位 创建 32 位和 64 位实例 可以在 64 位平台上的任何 DB2 UDB 版本 8.2 产品上创建 32 位实例。可以在 除了 DB2 UDB 个人版和 DB2 Connect 个人版之外的所有 DB2 UDB 版本 8.2 产 品上创建 64 位实例。 新的注册表变量:DB2_ASYNC_IO_MAXFILOP 在版本 8.2 修订包 1(等同于版本 8.1 修订包 8)添加了新的常规注册表变量。 变量名 DB2_ASYNC_IO_MAXFILOP 操作系统 所有 值 缺省值:MAXFILOP(配置参数)的值。 值:从 MAXFILOP 的值到 MAX_INT 的值。 描述 从表空间中读取数据和将数据写入表空间的 DB2 引擎分派单元(EDU) (例如,代理进程、预取程序和页面清除程序)使用 MAXFILOP 配置参 数来限制每个进程或线程在任何时候打开的文件句柄数。由于系统上的 大多数 I/O 是由与代理进程(页面清除程序和预取程序)异步执行 I/O 的 EDU 完成的,因此,这些 EDU 可以因每个 EDU 的最大文件句柄数 的值大于 MAXFILOP 而受益。这种情况在具有大量文件的系统上尤其明 显。可以使用此注册表变量来将文件句柄数的上限增大到超过页面清除 程序和预取程序的 MAXFILOP 的值。 用于自动维护和维护健康指示器的新的 SMS 用户表空间 缺省情况下,由 db2hmon 进程创建的新的 SMS 用户表空间 SYSTOOLSPACE 用来 存储供自动维护和维护健康指示器使用的表。表空间是在缺省数据库目录中创建的。 如果不想在 SYSTOOLSPACE 表空间内创建供自动维护和维护健康指示器使用的表, 则可以在您自己选择的表空间中创建自动维护表。但是,在使用存储过程调用 来创建表之前,必须删除 SYSTOOLSPACE 中的表并删除 SYSTOOLSPACE。 在具有有效权限的情况下,使用 SQL DROP 语句来删除 SYSTOOLSPACE(如果不需 要它的话)。在删除该表空间之前,确保它里面没有任何表。如果该表空间在还 具有表的情况下就被删除了,则下一次启动数据库时将自动重新创建这些表和该 表空间。 要在您选择的表空间中创建必需的表,发出下列存储过程调用: CALL SYSINSTALLOBJECTS('DB2AC','C','', NULL) CALL SYSINSTALLOBJECTS('POLICY','C','', NULL) 其中 tablespace_name 是您选择的表空间,它具有很多 4 KB 页。 如果用户临时表空间不存在,则自动重组和必需的重组健康指示器将自动创建用 户临时表空间 SYSTOOLSTMPSPACE。 产品修订历史 有关此修订包提到的“授权程序分析报告”(APAR)的列表,请访问以下 Web 页面: http://www.ibm.com/software/data/db2/udb/support.html 向后兼容性 DB2 UDB 版本 8.2 数据库的向后兼容性 如果您使用 DB2 Universal Database(TM)(DB2 通用数据库)版本 8.2 来创建 数据库,则不能在版本 8.1 级别使用该数据库。只能在版本 8.2 或更新级别使 用该数据库。 在 DB2 UDB 版本 8.2 级别创建的数据库可能具有较早版本不具备的其它功能。 这种差别可能会导致您在试图将新数据库移至 DB2 UDB 的前发行版时产生意外的 并且是不希望发生的行为。 注: 仅当数据库最初是在版本 8.1 创建的情况下,才能将数据库从版本 8.2 移 回版本 8.1。即使如此,也只能在运行 db2demigdb 工具之后才可能进行 向后迁移。但是,如果您使用版本 8.2 中已更改的内置函数,可能会遇到 问题。 对 DB2 UDB 客户机支持的说明 《DB2 客户机快速入门》的『DB2 客户机概述』一节说明了下列内容: DB2 客户机可以连接至比该客户机的发行版级别晚两个发行版或者早一个 发行版的 DB2 服务器,还可以连接至与它处于同一个发行版级别的服务器。 对该句子的修正为如下所示: 虽然在某些环境中可以从版本 N 的客户机连接至版本 N + 2 的服务器, 但是,仅当在使用版本 N 时此连接才是受支持的配置。一旦不使用版本 N, 此配置就不再受支持。 因为已经不再使用版本 6,所以连接至 DB2 版本 8 的服务器的 DB2 版本 6 客户机不再受支持。 与 DB2 UDB 服务器支持类似,除非版本 N - 1 服务器已停用,版本 N 的 客户机才能连接至版本 N - 1 的服务器。 从 DB2 UDB 版本 8.2 迁移回 DB2 UDB 版本 8.1 时健康注册表发生的更改 在 DB2 UDB 版本 8.2 级别所作的任何注册表更改在迁移回 DB2 UDB 版本 8.1 时都会丢失。注册表还原为版本 8.1 HealthRules.reg 文件,该文件包含升级至 DB2 UDB 版本 8.2 并开始使用 HealthRules2.reg 文件中的设置之前已经存在的 设置。 备用修订包(Linux 和 UNIX) 在 DB2 Universal Database(DB2 通用数据库,UDB)版本 8 之前,修订包仅充 当对一个修订位置的已安装 DB2 UDB 程序包或文件集的更新。实质上,这意味着 修订包的安装把现有文件替换为修订包中提供的已更新文件,并且单个系统上不 可能存在多个 DB2 修订包级别。现在,在同一系统中,DB2 UDB(ESE)可具有多 个修订包级别。自从版本 8.1.2 开始,此功能即在生产操作环境中受支持,它是 通过使用以下两种修订包类型实现的: 常规修订包 * 不仅可用于 ESE,而且可用于相关平台的所有受支持的 DB2 版本 8 产品。 * 可以直接在现有安装的基础上进行安装,在 AIX(R) 上,安装在 /usr/opt/db2_08_01 目录中,而在其它平台上,则安装在 /opt/IBM/db2/V8.1 目录中。 备用修订包 * 可以作为 DB2 UDB ESE 的全新副本来安装 * 安装在预先定义的位置,但是不能安装在用于常规 DB2 UDB 安装的 位置 注: 1. 如果没有必要为您的环境执行多修订包安装,则不需要执行。 2. 从 IBM DB2 UDB 企业服务器版(ESE)Linux 版和 UNIX 版版本 8.1.2 开始, 当修订包作为多个修订包来安装时,这些修订包在生产操作环境中就是受支 持的。 3. 在 Linux 上,备用修订包仅在下列平台上可用: * x86(32 位) * S/390(R)(31 位) 要将多修订包实例更新为另一修订包级别,执行下列其中一个操作: * 对所安装的 General Availability(GA)版本安装适当的常规修订包,并通 过从现有 GA 路径中运行 db2iupdt 来更新实例。 * 将适当的备用修订包安装到它自己的唯一路径中,并通过从此路径中运行 db2iupdt 来更新实例。 有关下载备用修订包的进一步信息,请访问 IBM 支持站点,网址为 http://www.ibm.com/software/data/db2/udb/support.html。 数据仓库中心先前服务器支持限制 对于 DB2 Universal Database(DB2 通用数据库,UDB)企业服务器版版本 8 数 据仓库中心的先前服务器支持,存在下列局限性: 大对象(LOB)支持 * 如果要在服务器上使用比 DB2 UDB 企业服务器版版本 8 更早的仓 库控制数据库,则不能使用 LOB。您必须将仓库控制数据库升级至 正确的级别,或能够将控制数据库移动到安装了 DB2 UDB 企业服务 器版版本 8 仓库服务器的系统上,并从该系统以本地方式使用仓库 控制数据库。 * 要将 LOB 在数据仓库中心和 DB2 UDB 之间来回移动,则必须升级至 DB2 UDB 企业服务器版版本 8。 系统网络体系结构(SNA)支持 如果使用 SNA 连接至仓库源和目标,则必须将配置更改为基于 SNA 的 TCP/IP,或使用 Windows NT(R) 仓库代理程序。 对 EXPORT 和 LOAD 实用程序的支持 数据仓库中心版本 8 LOAD 实用程序不支持版本 7 目标数据库。如果 想要将目标保留为版本 7 数据库,则必须将 LOAD 步骤更改为 SQL Select 和 Insert 步骤。 SQL Select 和 Insert 步骤使用 DELETE* 语句,后跟 SELECT 和 INSERT 语句。SQL Select 和 Insert 步骤要 求数据库记录所有事务。因此,SQL Select 和 Insert 步骤的性能低于 EXPORT 和 LOAD 实用程序。 DB2 UDB OS/390 版版本 6 和 DB2 UDB z/OS 版版本 7 上的 SQLJ 和 SQL 助手支 持所需的开发中心 APAR 在 Windows 或 UNIX 操作系统上,当在 DB2 Universal Database(DB2 通用数 据库,UDB)版本 8 的“应用程序开发”客户机上使用开发中心时,需要在服务 器上安装下列 APAR 才能启用 SQLJ 和“SQL 助手”支持: DB2 UDB z/OS 版版本 7 * PQ65125 - 提供了用于构建 Java(TM) SQLJ 存储过程的 SQLJ 支持 * PQ76858 - 提供了“SQL 助手”支持 DB2 UDB OS/390(R) 版版本 6 * PQ76858 - 提供了“SQL 助手”支持 从 DB2 UDB 启动 SQL 助手的两个版本 可以从 DB2 Universal Database(DB2 通用数据库)版本 8 中调用版本 7 和版 本 8 的 SQL 助手。可从 DB2 数据仓库中心中启动版本 7。所有其它中心启动最 新的版本 8。产品的联机帮助中包含关于 SQL 助手版本 7 的其它信息。 Unicode 服务器行为的更改 在版本 7 中,Unicode 服务器在连接时忽略应用程序发送的任何图形代码页,并 假设使用的是 UCS2 Unicode(代码页 1200)。版本 8 Unicode 服务器现在接受 由客户机发出的代码页。 数据库配置参数在迁移期间发生的更改 DB2 UDB 版本 8.2 使用名为 SQLDBCONF 的新的 16K 数据库配置参数文件。这是 一个与名为 SQLDBCON 的 DB2 UDB 版本 8.1 4K 数据库配置参数文件不同的文件。 在迁移到 DB2 UDB 版本 8.2 之后,该产品将迁移版本 8.1 4K 文件的内容,并 使用 16K 文件来记录数据库配置参数更改。保留了版本 8.1 4K 文件,但是未使 用它。 如果迁移回 DB2 UDB 版本 8.1,则 DB2 UDB 版本 8.1 产品将还原为使用原始的 版本 8.1 4K 文件来记录数据库配置参数更改。保留了版本 8.2 16K 文件,但是 DB2 UDB 版本 8.1 产品不能识别它。实际上,较早的 DB2 UDB 级别看不到迁移 至版本 8.2 和迁移回版本 8.1 时对 16K 数据库配置参数文件所作的更改,因为 这些更改未迁移至原始 4K 文件。 另外,如果再次迁移至 DB2 UDB 版本 8.2,则 DB2 UDB 版本 8.2 产品会认为 16K 数据库配置文件已存在,从而还原为使用版本 8.2 16K 文件来记录数据库配 置参数更改。保留了版本 8.1 4K 文件,但是 DB2 UDB 版本 8.2 产品不识别它。 实际上,更新的 DB2 UDB 级别看不到迁移回版本 8.1 并重新迁移至版本 8.2 时对 4K 数据库配置参数文件所作的更改,因为这些更改未迁移至现有 16K 文件。 db2diag.log 格式消息增强功能 db2diag.log 文件格式在版本 8.2 中已作了一些改进。现在,日志文件更便于人 们阅读并且更易于使用软件进行解析。改进内容有: * 每个条目都具有一组完整的标题信息 * 明确标记了日志记录的消息和数据部分,使日志记录更易于使用和理解 * 每个记录都包括带有时区的时间戳记 * 每个字段都有清晰的大写字段名 * 标题和消息字段行长度都被限制为 80 个字符 * 添加了一些新字段(特别是严重性级别字段)来帮助您查找最重要的条目 还作了其它更改,例如,将 database 字段名更改为 DB。 事件记录已作为诊断消息添加至 db2diag.log 文件。这类事件的示例包括: * 对概要文件注册表的更新 * 对配置参数的更新 对事件记录在 LEVEL 字段中指定了“Event”。尽管事件不是错误,但根据其重 要性它们可能在高于 4(参考)或 3(警告)的诊断级别作记录。 现在会记录 db2set 概要文件注册表变量及 DB 或 DBM 配置参数 从版本 8.2 开始,db2set 概要文件注册表更新及 DB 和 DBM 配置参数将记录在 db2diag.log 文件中。这些消息将根据其重要性在高诊断级别作记录。 将记录下列类型的 db2set 概要文件注册表更新: 修改 db2set variableName=value 命访问的 db2diag.log 条目: 2004-04-22-19.19.14.156959-240 I79582C286 LEVEL: Event PID : 2437242 TID : 1 PROC : db2set INSTANCE: db2user NODE : 000 FUNCTION: DB2 UDB, oper system services, db2set_main, probe:40 CHANGE : CFG DB2SET: DB2DBDFT: From: "OLDDB" To: "SAMPLE" 删除 db2set -r 命令生成如下所示的 db2diag.log 条目: CHANGE : CFG DB2SET: DB2DBDFT: From: "SAMPLE" To: "" 注: 上一示例中省略了标题信息。 复位 db2set variableName=value 命令生成如下所示的 db2diag.log 条目: CHANGE : CFG DB2SET: Profile registry was reset 注: 上一示例中省略了标题信息。 DB 和 DBM 配置参数更新的示例包括: CHANGE : CFG DB SAMPLE: "Maxlocks" From: "10" To: "20" CHANGE : CFG DBM: "Diaglevel" From: "3" To: "1" CHANGE : CFG DBM: Reset to the system defaults 注: 上一示例中省略了标题信息。 要查找这些配置更新消息,使用 db2diag 工具。例如: * 要选择所有事件:db2diag -level event * 要选择更改事件:db2diag -g "changeevent=" 产品兼容性 64 位操作系统上需要 Microsoft XP 修订 如果要使用被配置为将 NETBIOS 协议与 DB2 系列产品配合使用的 Microsoft(R) XP 操作系统(2600),则需要从 Microsoft 获取最新修订程序。请与 Microsoft 联系以获取编号为 Q317437 的 Knowledge Base 文档。 Windows XP 操作系统 只有 DB2 Universal Database(DB2 通用数据库,UDB)个人版产品才支持 Windows XP Home Edition 操作系统。 下列 DB2 产品支持 Windows XP Professional 操作系统: * DB2 UDB 精简版 * DB2 UDB 个人版 * DB2 UDB 工作组服务器版 * DB2 Connect(TM) 个人版 * DB2 Connect 企业版 注: 在 Windows XP 上,仅支持 DB2 Connect 企业版用于开发或测试。生产 环境需要 Windows 2000 或 Windows Server 2003。 提供了 DB2 UDB HADR 单独定价选件 在 DB2 通用数据库(UDB)版本 8.2 中,DB2 UDB 工作组服务器版和 DB2 UDB 精简版(当根据每个用户定价模型发放许可证时)不能安装 DB2 UDB 高可用性灾 难恢复(HADR)单独定价选件。在 DB2 UDB 版本 8.2 修订包 1(等同于版本 8.1 修订包 8)中已经修正了此问题。 DB2 仓库管理器(版本 8.2)和 IBM DB2 OLAP Server FP3 和更新版本 DB2 仓库管理器标准版版本 8.2 中的 OLAP 实用程序与 IBM DB2 OLAP Server(TM) FP3(Essbase API 级别 6.5.4)和更新版本不兼容。在解决此问题 之前,建议您使用 DB2 OLAP Server FP2(Essbase 6.5.3)或较早版本。 对于数据仓库中心的 Red Hat Linux 支持 DB2 Universal Database(DB2 通用数据库)版本 8.2 支持 Red Hat Enterprise Linux AS V3.1 和 V2.1。但是,数据仓库中心仅支持 Red Hat Enterprise Linux AS V2.1。数据仓库中心使用的是不支持 Red Hat Enterprise Linux AS V3.1 的 DataDirect ODBC 驱动程序。因此,数据仓库中心不支持 Red Hat Enterprise Linux AS V3.1 代理站点中的 ODBC 仓库源和仓库目标。 编码字符集标识(CCSID)5039 的备用 Unicode 转换表 Microsoft 日语 Windows Shift-JIS 代码页被注册为 IBM 编码字符集标识 (CCSID)943。然而,该 Shift-JIS 代码页在 HP-UX 平台上被注册为 CCSID 5039。 CCSID 5039 仅包含日本工业标准(JIS)中的字符,而不包括任何供应商定义 的字符。在 HP-UX 上,可以使用 CCSID 5039 的 DB2 Universal Database(DB2 通用数据库,UDB)数据库来存储 Shift-JIS 字符,但是 CCSID 5039 与 CCSID 943 之间将存在代码页转换。如果使用 Microsoft ODBC 应用程序,在将 CCSID 5039 格式的数据转换为 Unicode 时可能会遇到问题,这是由于 IBM 的代码页转 换表与 Microsoft 的代码页转换表之间存在差异造成的。 当从 CCSID 5039 转换为 Unicode 时,以下字符列表可能会产生不同的代码点, 这取决于所使用的转换表(IBM 或 Microsoft)。对于这些字符,IBM 转换表遵 守日本工业标准 JISX0208 和 JISX0221。 表 1. CCSID 5039 至 Unicode 代码点转换 +-----------------------+----------------------+----------------------+ | Shift-JIS 代码点(字 | IBM 主要代码点(Unic | Microsoft 主要代码点 | | 符名称) | ode 名称) | (Unicode 名称) | +-----------------------+----------------------+----------------------+ | X'815C'(长破折号) | U+2014(长破折号) | U+2015(横杠) | +-----------------------+----------------------+----------------------+ | X'8160'(波浪号) | U+301C(波浪号) | U+FF5E(全角代字号) | +-----------------------+----------------------+----------------------+ | X'8161'(双竖线) | U+2016(双竖线) | U+2225(平行线) | +-----------------------+----------------------+----------------------+ | X'817C'(减号) | U+2212(减号) | U+FF0D(全角减号短划 | | | | 线) | +-----------------------+----------------------+----------------------+ 例如,当使用 IBM 转换表时,CCSID 5039 代码点为 X'815C' 的长破折号字符被 转换为 Unicode 代码点 U+2014,但当使用 Microsoft 转换表时,却被转换为 U+2015。这对于 Microsoft ODBC 应用程序可能会产生潜在问题,因为这些应用程 序会认为 U+2014 是无效的代码点。为了避免这些潜在问题,除了缺省 IBM 转换 表之外,DB2 UDB 还提供了从 CCSID 5039 转换为 Unicode 的备用 Microsoft 转换表。需要将缺省 IBM 转换表替换为备用 Microsoft 转换表。注意,从 Unicode 转换为 CCSID 5039 的缺省 IBM 转换表要与 Microsoft 版本相匹配。 将编码字符集(CCSID)5039 的 Unicode 转换表替换为 Microsoft 转换表 当从 CCSID 5039 转换为 Unicode 时,会使用 DB2 Universal Database(DB2 通用数据库,UDB)缺省代码页转换表。如果您希望使用另一版本的转换表(如 Microsoft 版本),则必须手工替换缺省转换表(.cnv)文件。 先决条件 在替换 sqllib/conv 目录中的现有代码页转换表文件时,应备份该文件以备您想 要将它改回来。在 UNIX 和 Linux 上,sqllib/conv 目录链接至 DB2 UDB 安装 路径。 限制 要使转换表替换生效,连接至同一数据库的每个 DB2 UDB 客户机必须更改其转换 表。否则,不同的客户机可能会使用不同的代码点存储同一个字符。 过程 要替换用于从 CCSID 5039 转换为 Unicode 的 DB2 UDB 缺省转换表,遵循下列 步骤: 1. 将 sqllib/conv/ms/5039ucs2.cnv 复制到 sqllib/conv/5039ucs2.cnv 2. 重新启动 DB2 UDB。 编码字符集标识(CCSID)954 的备用 Unicode 转换表 日语 EUC 代码页的 IBM 编码字符集标识(CCSID)被注册为 CCSID 954。CCSID 954 是日语 UNIX 和 Linux 平台的公共编码。当使用 Microsoft ODBC 应用程序 来连接至 CCSID 为 954 的 DB2 Universal Database(DB2 通用数据库,UDB) 数据库时,在将数据从 CCSID 954 转换为 Unicode 时会遇到问题。潜在问题是 由于 IBM 的代码页转换表与 Microsoft 的代码页转换表之间的差异造成的。IBM 转换表遵守在“日本工业标准”(JIS)JISX0208、JISX0212 和 JISX0221 中指 定的字符名称。 当从 CCSID 954 转换为 Unicode 时,根据使用的是 IBM 转换表还是 Microsoft 转换表,下列字符将产生不同的代码点。 表 2. CCSID 954 至 Unicode 代码点转换 +-----------------------+----------------------+----------------------+ | EUC-JP 代码点(字符名 | IBM 主要代码点(Unic | Microsoft 主要代码点 | | 称) | ode 名称) | (Unicode 名称) | +-----------------------+----------------------+----------------------+ | X'A1BD'(长破折号) | U+2014(长破折号) | U+2015(横杠) | +-----------------------+----------------------+----------------------+ | X'A1C1'(波浪号) | U+301C(波浪号) | U+FF5E(全角代字号) | +-----------------------+----------------------+----------------------+ | X'A1C2'(双竖线) | U+2016(双竖线) | U+2225(平行线) | +-----------------------+----------------------+----------------------+ | X'A1DD'(减号) | U+2212(减号) | U+FF0D(全角减号短划 | | | | 线) | +-----------------------+----------------------+----------------------+ | X'8FA2C3'(短划线) | U+00A6(短划线) | U+FFE4(全角短划线) | +-----------------------+----------------------+----------------------+ 例如,当使用 IBM 转换表时,CCSID 954 代码点为 X'A1BD' 的长破折号字符被 转换为 Unicode 代码点 U+2014,但当使用 Microsoft 转换表时,却被转换为 U+2015。由于转换映射的这种差异,对于 DB2 UDB Unicode 数据库或 DB2 UDB 954 数据库的图形列中的同一个字符可能具有两个不同的代码点。这对于 Microsoft ODBC 应用程序可能会产生潜在问题,因为这些应用程序会认为 U+2014 是无效的 代码点。为了避免这些潜在问题,除了缺省 IBM 转换表之外,DB2 UDB 还提供了 从 CCSID 954 转换为 Unicode 的备用 Microsoft 转换表。需要将缺省 IBM 转 换表替换为备用 Microsoft 转换表。注意,从 Unicode 转换为 CCSID 954 的缺 省 IBM 转换表要与 Microsoft 版本相匹配。 将编码字符集(CCSID)954 的 Unicode 转换表替换为 Microsoft 转换表 当从 CCSID 954 转换为 Unicode 时,会使用 DB2 Universal Database(DB2 通 用数据库,UDB)缺省代码页转换表。如果您希望使用另一版本的转换表(如 Microsoft 版本),则必须手工替换缺省转换表(.cnv)文件。 先决条件 在替换 sqllib/conv 目录中的现有代码页转换表文件时,应备份该文件以备您想 要将它改回来。在 UNIX 和 Linux 上,sqllib/conv 目录链接至 DB2 UDB 的安 装路径。 限制 为了使替换生效,连接至同一个 CCSID 954 数据库的每个 DB2 UDB 客户机都必 须更改它们的转换表。如果客户机是日语 Windows(其 ANSI 代码页是 Shift-JIS (CCSID 943)),则还需要将 CCSID 943 与 Unicode 之间的 DB2 缺省转换表 更改为 Microsoft 版本。否则,不同的客户机可能会使用不同的代码点存储同一 个字符。 过程 要替换用于从 CCSID 954 转换为 Unicode 的 DB2 UDB 缺省转换表,遵循下列步骤: 1. 将 sqllib/conv/ms/0954ucs2.cnv 复制到 sqllib/conv/0954ucs2.cnv 2. 重新启动 DB2 UDB。 要替换用于在 CCSID 943 与 Unicode 之间转换的 DB2 UDB 缺省转换表,遵循下 列步骤: 1. 将 sqllib/conv/ms/0943ucs2.cnv 复制到 sqllib/conv/0943ucs2.cnv 2. 将 sqllib/conv/ms/ucs20943.cnv 复制到 sqllib/conv/ucs20943.cnv 3. 重新启动 DB2 UDB。 编码字符集标识(CCSID)943 的备用 Unicode 转换表 当使用被注册为 IBM 编码字符集标识(CCSID)943 的 Microsoft 日语 Windows Shift-JIS 代码页时,在 CCSID 943 与 Unicode 之间转换字符时可能会遇到下 面两个问题。潜在问题是由于 IBM 与 Microsoft 代码页转换表之间的差异造成 的。为了避免这些潜在问题,除了缺省 IBM 转换表之外,DB2 Universal Database(DB2 通用数据库,UDB)还提供了 CCSID 943 与 Unicode 之间的备用 Microsoft 转换表。 问题 1 由于历史原因,CCSID 943 代码页中有超过 300 个字符存在每个字符被表示为两 个或三个代码点的情况。使用输入方法编辑器(IME)和代码页转换表导致只有其 中一个等效代码点被输入。例如,对应罗马数字一“i”的小写字符有两个等效代 码点 X'EEEF' 和 X'FA40'。Microsoft Windows IME 在输入“i”时总是生成 X'FA40'。通常,IBM 和 Microsoft 使用同一主要代码点表示该字符,但是下列 13 个字符除外: 表 3. CCSID 943 Shift-JIS 代码点转换 +-----------------------+----------------------+----------------------+ | 字符名称(Unicode 代 | IBM 主要 Shift-JIS | Microsoft 主要 | | 码点) | 代码点 | Shift-JIS 代码点 | +-----------------------+----------------------+----------------------+ | 罗马数字一(U+2160) | X'FA4A' | X'8754' | +-----------------------+----------------------+----------------------+ | 罗马数字二(U+2161) | X'FA4B' | X'8755' | +-----------------------+----------------------+----------------------+ | 罗马数字三(U+2162) | X'FA4C' | X'8756' | +-----------------------+----------------------+----------------------+ | 罗马数字四(U+2163) | X'FA4D' | X'8757' | +-----------------------+----------------------+----------------------+ | 罗马数字五(U+2164) | X'FA4E' | X'8758' | +-----------------------+----------------------+----------------------+ | 罗马数字六(U+2165) | X'FA4F' | X'8759' | +-----------------------+----------------------+----------------------+ | 罗马数字七(U+2166) | X'FA50' | X'875A' | +-----------------------+----------------------+----------------------+ | 罗马数字八(U+2167) | X'FA51' | X'875B' | +-----------------------+----------------------+----------------------+ | 罗马数字九(U+2168) | X'FA52' | X'875C' | +-----------------------+----------------------+----------------------+ | 罗马数字十(U+2169) | X'FA53' | X'875D' | +-----------------------+----------------------+----------------------+ | 用括号括起来的表意文 | X'FA58' | X'FA58' | | 字符号(U+3231) | | | +-----------------------+----------------------+----------------------+ | 号码符号(U+2116) | X'FA59' | X'8782' | +-----------------------+----------------------+----------------------+ | 电话符号(U+2121) | X'FA5A' | X'8754' | +-----------------------+----------------------+----------------------+ 诸如 DB2 UDB 这样的 IBM 产品主要使用 IBM 代码点(例如,X'FA4A')来表示 大写罗马数字一“I”,但是 Microsoft 产品使用 X'8754' 来表示同一字符。 Microsoft ODBC 应用程序可以将“I”字符作为 X'8754' 插入到 CCSID 943 格 式的 DB2 UDB 数据库中,而 DB2 UDB 控制中心可以将同一字符作为 X'FA4A' 插 入到同一 CCSID 943 数据库中。但是,ODBC应用程序只能找到将“I”编码为 X'8754' 的那些行,而 DB2 UDB 控制中心只能找到将“I”编码为 X'FA4A' 的那 些行。为了使 DB2 UDB 控制中心能够选择“I”作为 X'8754',需要将 CCSID 943 与 Unicode 之间的缺省 IBM 转换表替换为备用 Microsoft 转换表。 问题 2 当从 CCSID 943 转换为 Unicode 时,以下字符列表将产生不同的代码点,这取 决于使用的是 IBM 转换表还是 Microsoft 转换表。对于这些字符,IBM 转换表 遵守日本工业标准 JISX0208、JISX0212 和 JISX0221。 表 4. CCSID 943 至 Unicode 代码点转换 +-----------------------+----------------------+----------------------+ | Shift-JIS 代码点(字 | IBM 主要代码点(Unic | Microsoft 主要代码点 | | 符名称) | ode 名称) | (Unicode 名称) | +-----------------------+----------------------+----------------------+ | X'815C'(长破折号) | U+2014(长破折号) | U+2015(横杠) | +-----------------------+----------------------+----------------------+ | X'8160'(波浪号) | U+301C(波浪号) | U+FF5E(全角代字号) | +-----------------------+----------------------+----------------------+ | X'8161'(双竖线) | U+2016(双竖线) | U+2225(平行线) | +-----------------------+----------------------+----------------------+ | X'817C'(减号) | U+2212(减号) | U+FF0D(全角减号短划 | | | | 线) | +-----------------------+----------------------+----------------------+ | X'FA55'(短划线) | U+00A6(短划线) | U+FFE4(全角短划线) | +-----------------------+----------------------+----------------------+ 例如,在使用 IBM 转换表时,CCSID 943 代码点为 X'815C' 的字符全角横杠被 转换为 Unicode 代码点 U+2014。但是,在使用 Microsoft 转换表时,它会被转 换为 U+2015。由于这一转换映射差异,DB2 UDB Unicode 数据库中可能存在两个 不同代码点对应同一字符的情况。这对于 Microsoft ODBC 应用程序可能会产生 潜在问题,因为这些应用程序会认为 U+2014 是无效的代码点。为了避免这一潜 在问题,需要将 CCSID 943 与 Unicode 之间的缺省 IBM 转换表替换为备用 Microsoft 转换表。 使用 CCSID 943 与 Unicode 之间的备用 Microsoft 转换表应仅限于封闭环境, 其中 DB2 UDB 客户机和 DB2 UDB 数据库都具有代码页 CCSID 943 且都使用同一 备用 Microsoft 转换表。如果 DB2 UDB 客户机使用缺省 IBM 转换表,而另一 DB2 UDB 客户机使用备用 Microsoft 转换表,且两个客户机都将数据插入至 CCSID 943 格式的同一 DB2 UDB 数据库,则同一字符在该数据库中可能被存储为 不同的代码点。 将编码字符集(CCSID)943 的 Unicode 转换表替换为 Microsoft 转换表 在 CCSID 943 与 Unicode 之间进行转换时,会使用 DB2 Universal Database( DB2 通用数据库,UDB)缺省代码页转换表。如果您希望使用另一版本的转换表( 例如,Microsoft 版本),则必须手工替换缺省转换表(.cnv)文件。 先决条件 在替换 sqllib/conv 目录中现有代码页转换表文件之前,应备份这些文件以防您 想要将它们更改回来。在 UNIX 和 Linux 上,sqllib/conv 链接至 DB2 UDB 安 装路径。 限制 要使转换表替换生效,连接至同一数据库的每个 DB2 UDB 客户机必须更改其转换 表。否则,不同的客户机可能会使用不同的代码点存储同一个字符。 过程 要替换用于在 CCSID 943 与 Unicode 之间转换字符的 DB2 UDB 缺省转换表: 1. 将 sqllib/conv/ms/0943ucs2.cnv 复制至 sqllib/conv/0943ucs2.cnv。 2. 将 sqllib/conv/ms/ucs20943.cnv 复制至 sqllib/conv/ucs20943.cnv。 3. 重新启动 DB2 UDB。 不支持 MVS 操作系统 尽管在文档中提到了 MVS(TM) 操作系统,但是 DB2 Universal Database(DB2 通用数据库)已不再支持它。MVS 已替换为 z/OS。 备份和复原操作(Linux 390) 如果使用 Linux 390 操作系统,则可能无法对多个磁带设备进行备份和复原。 在使用 Hummingbird Exceed 访问开发中心时启用视图停放 在 UNIX 上使用 Hummingbird(R) Exceed 访问开发中心时,必须先启用 XTEST extension V2.2 才能移动和停放视图(通过在开发中心内拖动它们的标题栏)。 要启用 XTEST extension: 1. 从“开始”菜单中,选择程序 -> Hummingbird Connectivity 7.0 -> Exceed -> XConfig。XConfig 窗口打开。 2. 可选:如果配置需要密码,则输入 XConfig 密码。 3. 双击 Protocol 图标。Protocol 窗口打开。 4. 选择 X Conformance Test Compatibility 复选框。 5. 在 Protocol 窗口中,单击 Extensions... 按钮。Protocol Extensions 窗 口打开。 6. 在 Enable Extensions 列表中,选择 XTEST(X11R6)复选框。 7. 单击 OK。 安装、迁移、升级和配置信息 硬件和软件需求 可在以下 Web 站点查看硬件和软件需求: http://www.ibm.com/software/data/db2/udb/sysreqs.html 安装说明 在 UNIX 和 Linux 平台上,这些安装说明仅适用于新产品的安装。要应用修订包, 请参阅修订包自述文件。 在 Windows 平台上,这些安装说明适用于新产品的安装和修订包的应用。如果要 应用修订包,应将这些安装说明与修订包自述文件配合使用。 在安装 DB2 Universal Database(DB2 通用数据库)之前查看整节内容。 目录路径不能包含空格(Linux 和 UNIX) 如果从一个路径中包含空格的目录中运行 db2setup 程序,则安装将失败并产生 以下错误: 找不到 将可安装的映像放置在其路径中不包含空格的目录中。 DB2 UDB 的 JDK 级别(Linux on IA64 和 Linux on PowerPC) 在 Linux 上安装 DB2 Universal Database(DB2 通用数据库,UDB)版本 8.2 时,基于 RPM 的安装将尝试安装 IBM Java RPM(IBMJava2-SDK-1.4.1.-2.0.i386.rpm)。 注: 用于 IA64 的 Linux 上的 DB2 UDB 仅支持 Java 1.3.1。有关最新的 Linux SDK 信息,请参阅 IBM developer kit for Linux Web 页面,网址为 http://www.ibm.com/developerworks/java/jdk/linux/tested.html。 如果较新级别的 RPM(例如,IBMJava2-SDK-1.5.0.-2.0.i386.rpm)已经存在, 则不会安装后备级别 RPM。 但是,在这种情况下,安装会保留指向 Java 1.4 路径的 JDK_PATH 数据库配置 参数 /opt/IBMJava2-14/。因此,所有与 Java 有关的功能(包括 DB2 工具目录 的安装)都不会起作用。 先决条件 必须作为实例所有者运行以下命令。 过程 1. 要使 DB2 UDB 指向正确的 IBM Developer Kit,运行以下命令: db2 update dbm cfg using JDK_PATH path 其中 path 为 1.5 安装路径,例如,/opt/IBMJava2-15。 解压缩安装映像(Linux 和 UNIX) 某些安装映像在产品 CD 上是以压缩格式提供的。您需要将安装映像复制至临时 目录并解压缩安装映像,才能从这些格式的安装映像中安装 DB2 Universal Database(DB2 通用数据库,UDB)。 CD 上的压缩安装映像的文件名为 PRODUCT.tar.Z 或 PRODUCT.tar.gz,其中 PRODUCT 是要安装的 DB2 产品。例如,如果要安装 DB2 UDB 企业服务器版,则 相关 CD 上的压缩映像可能被称为 ese.tar.Z 或 ese.tar.gz。 除了软件磁盘需求之外,文件系统还必须具有 2 吉字节的可用空间用来包含 tar.Z 或 tar.gz 文件和解压缩安装映像。 过程 要解压缩安装映像,执行下列步骤: 1. 将压缩安装映像复制到至少包含 2 吉字节可用空间的临时文件系统中。 2. 通过输入 cd /TMP 切换至复制安装映像的目录,其中 /TMP 表示复制压缩映 像的目录。 3. 如果产品扩展名为 *.tar.Z,则输入以下命令来解压缩安装映像: zcat PRODUCT.tar.Z | tar -xvf - 其中 PRODUCT 是要安装的 DB2 产品。 4. 如果产品扩展名为 *.tar.gz,则输入以下命令来解压缩安装映像: gunzip -c PRODUCT.tar.gz | tar -xvf - 其中 PRODUCT 是要安装的 DB2 产品。 注: a. gunzip 是 AIX 5L(TM) 缺省安装程序的一部分。如果没有 gunzip,则从 AIX 5L 安装介质安装 rpm.rte 文件集。rpm.rte 文件集包含 gunzip。 b. 还可从以下网址下载用于 AIX 5L 的 gzip(它包括 gunzip): http://www.ibm.com/servers/aix/products/aixos/linux/rpmgroups.html。 5. 要使用 DB2 安装向导执行安装,请参阅『从安装映像安装 DB2 UDB(Linux 和 UNIX)』一节。 DB2 UDB 不允许非英语安装路径(Windows) 在 Windows 上安装 DB2 Universal Database(DB2 通用数据库,UDB)期间,可 以输入 DB2 UDB 的目录路径。但是,输入的目录路径名只能包含英语字符。 下载和解压缩多个产品的修订包(Windows) 从 DB2 版本 8 Windows 版修订包 3 开始,IBM 提供的就是特定于产品的修订包, 而不是一个通用修订包。这种改变仅影响 Windows 平台上的 DB2 版本 8 产品。 例如,如果将 DB2 UDB 企业服务器版版本 8 和 DB2 Spatial Extender V8 安装 在同一 Windows 系统上,则必须下载 DB2 UDB 企业服务器版修订包映像和 Spatial Extender 修订包映像。必须在公共父目录下解压缩每个映像。要使 GUI 安装或静默安装能够继续,必须解压缩所有映像。 有关完整的修订包安装指示信息,请参阅最新的 DB2 UDB 修订包自述文件。 从安装映像安装 DB2 UDB(Linux 和 UNIX) 先决条件 在启动 DB2 安装向导之前: * 确保系统满足安装、内存和磁盘需求。请参阅『硬件和软件需求』一节。 * 确保您已经阅读了安装先决条件。文件 install.txt 或 install.htm 位于 CD 上的以下位置:/cdrom/doc/language/,其中: * cdrom 指的是安装点 * language 指的是语言目录,由 5 个字符的代码组成。 * 您需要 root 用户权限来执行安装。 * DB2 产品 CD 必须安装在系统上。 过程 如果安装映像在产品 CD 上是以压缩格式提供的,则必须解压缩安装映像才能安装 DB2 UDB。有关详细信息,请参阅『解压缩安装映像(Linux 和 UNIX)』一节。 要使用 DB2 安装向导执行安装,输入以下命令: ./PRODUCT/db2setup 其中 PRODUCT 是要安装的 DB2 产品。例如,如果要安装 DB2 UDB 企业服务器版, 则输入 ./ese/db2setup。 安装启动板打开。遵循安装面板上的指示继续进行。 从安装映像安装 DB2 UDB(Windows) 先决条件 在启动 DB2 安装向导之前: * 确保系统满足安装、内存和磁盘需求。请参阅『硬件和软件需求』一节。 * 确保您已经阅读了安装先决条件。文件 install.txt 或 install.htm 位于 CD 上的以下位置:x:\doc\language\,其中: * x 表示 CD 驱动器 * language 指的是语言目录,由 5 个字符的代码组成。 * 您必须具有本地 Administrator 用户帐户且该帐户具有执行安装的建议用户 权限。 要使用 DB2 安装向导执行安装,将 CD 插入到驱动器中。如果启用了自动运行功 能,该功能将自动启动 DB2 安装启动板。 过程 如果自动运行功能未启用,可手工启动 DB2 安装向导: 1. 单击开始并选择运行选项。 2. 在打开字段中,输入以下命令: x:\setup /i language 其中: * x: 表示 CD 驱动器 * language 是对应您所使用的语言的地域标识(例如,EN 对应英语)。 /i language 参数是可选的。如果未指定该参数,DB2 安装向导将以操作系 统使用的语言运行。 3. 单击确定。DB2 安装启动板打开。 遵循安装面板上的指示继续进行。 DB2 UDB 响应文件安装所需的磁盘空间 使用响应文件安装 DB2 Universal Database(DB2 通用数据库)产品时,etc 目 录中需要具有 1 MB 的可用磁盘空间。 如果在响应文件安装期间接收到错误消息 DBI1191I,该消息指示根目录中没有足 够的可用磁盘空间。此消息会误导您。检查 etc 目录中的可用磁盘空间量。在重 新运行安装之前,至少需要 1 MB 可用磁盘空间。 对于使用 db2setup 命令添加产品的限制(Linux 和 UNIX) 一旦安装了某种 DB2 产品,就可以添加其它 DB2 产品。如果使用 db2setup 命 令来添加产品,则下列建议和限制适用。 建议 已安装的产品与要添加的产品应处于同一代码级别。例如,已安装 DB2 Universal Database(DB2 通用数据库,UDB)企业服务器版版本 8 修订包 5 且您想要添加 DB2 Information Integrator 产品。在这种情况下,DB2 Information Integrator 也应处于版本 8 修订包 5 级别。 限制 * 如果 DB2 修订包级别高于要添加的产品的修订包级别,这种组合是允许的。 但是,由于要添加的产品的修订包级别低于 DB2 修订包级别,所以在安装了 其它产品之后必须重新应用 DB2 修订包级别。有关重新应用修订包的指示信 息,请参阅相应的“修订包自述文件”。 * 如果 DB2 修订包级别低于要添加的产品的修订包级别,则会生成错误。要添 加的产品的修订包级别不能比 DB2 UDB 高。在这种情况下,必须首先将 DB2 UDB 升级到适当的级别,然后再安装其它产品。有关指示信息,请参阅相应的 “修订包自述文件”。 下表总结了 db2setup 组合: 表 5. db2setup 组合 +----------+--------------+-------------------------------------------+ | DB2 修订 | 其它产品修订 | 是否允许这种组合? | | 包级别 | 包级别 | | +----------+--------------+-------------------------------------------+ | 版本 8 | 版本 8 修订 | 是。建议这样组合。 | | 修订包 3 | 包 3 | | +----------+--------------+-------------------------------------------+ | 版本 8 | 版本 8 GA | 是,但必须重新应用版本 8 修订包 3。有关重 | | 修订包 3 | | 新应用修订包的指示信息,请通过访问 DB2 支 | | | | 持 Web 站点查看相应的“修订包自述文件”。 | +----------+--------------+-------------------------------------------+ | 版本 8 | 版本 8 修订 | 否。在安装其它产品之前,首先必须将 DB2 升 | | 修订包 3 | 包 5 | 级到更高的修订包级别(在本示例中为版本 8 | | | | 修订包 5)。有关安装必需的版本 8 修订包的 | | | | 指示信息,请通过访问 DB2 支持 Web 站点查 | | | | 看相应的“修订包自述文件”。 | +----------+--------------+-------------------------------------------+ DB2 支持 Web 站点地址是 http://www.ibm.com/software/data/db2/udb/support.html DB2 Web 工具 对于下列语言,要求 DB2 Web 工具支持的应用程序服务器符合 Servlet 2.3 规范: * 日语 * 韩国语 * 简体中文 * 繁体中文 * 俄语 * 波兰语 在应用修订包之后绑定 Query Patroller 程序包 如果安装了 Query Patroller,则在应用了修订包并执行了所有修订包安装后任 务之后,执行下列步骤: 1. 作为具有 DBADM 权限的用户登录。 2. 切换至恰当的目录: * INSTPATH/bnd(Linux 和 UNIX) * INSTPATH\bnd(Windows) 其中 INSTPATH 是 DB2 UDB 实例路径。 3. 运行下列命令: db2 connect to dbname db2 bind @qpserver.lst blocking all grant public 位于修订包 3 级别或更新级别的 Query Patroller 安装 Query Patroller 是用于控制针对 DB2 UDB 数据库的查询流的查询管理系统。在 DB2 UDB 版本 8.1.2 中,DB2 Query Patroller 变成了一个独立的产品。它不再 是 DB2 仓库管理器的一个组件。 如果安装了 DB2 UDB 版本 8 修订包 3 或更新版本,然后安装 DB2 Query Patroller Base 或 GA 版,则必须重新应用 DB2 UDB 修订包 3 或更新版本。否 则,Query Patroller 更改不会被应用于您所处的 DB2 UDB 修订包级别。 如果要安装 Query Patroller 服务器,在重新应用 DB2 UDB 修订包级别之后还 必须更新 DB2 UDB 实例。在更新了这些实例之后,必须重新启动它们。 Query Patroller 服务器安装 当您安装 Query Patroller 服务器时,请注意以下事项: * 如果使用 DB2 安装向导从选择安装类型窗口中选择根据计算机使用情况窗口, 并从选择使用此计算机的方式窗口中选择服务器,将不会安装 Query Patroller 中心。如果想要安装 Query Patroller 中心,则从选择安装类型 窗口选择完整安装或定制安装安装类型。 * DB2 Query Patroller Guide使用“根据计算机使用情况”安装类型中的安装 面板来演示如何使用 DB2 安装向导安装 Query Patroller 服务器。不必使用 “根据计算机使用情况”安装类型来安装 install Query Patroller 服务器。 可使用“完整”或“定制”安装类型来安装 Query Patroller 服务器。 * 安装了 Query Patroller 客户机工具的 DB2 客户机必须连接至安装了 Query Patroller 服务器的分区。在典型分区数据库环境中,Query Patroller 服务 器安装在所有分区上,所以可选择任何分区作为协调程序分区并且仍能够使用 Query Patroller 客户机工具。 在 Query Patroller 中定义新的数据库分区组 在分区环境中安装 Query Patroller 期间定义新的表空间时,可选择现有数据库 分区组。或者,可对新的表空间设置新的数据库分区组。如果选择设置新的数据 库分区组,只能在安装面板上的列表框中对新的数据库分区组选择一个数据库分 区。如果想要将其它分区添加到新的数据库分区组中,必须在安装完成后手工添 加它们。 Query Patroller 客户机工具安装 对于 DB2 客户机,不需要安装 Query Patroller 客户机工具就可将查询提交给 Query Patroller 服务器。 重新创建数据库的测试版 如果在 DB2 UDB 版本 8.2 的测试版中创建了数据库,则必须在版本 8.2 的正式 版本中重新创建它们。 这包括重新创建 DB2 Geodetic Extender V8.2 的空间数据库。 安装本地语言版本的 DB2 UDB 的 MDAC 文件 如果在安装本地语言版本的 DB2 Universal Database(DB2 通用数据库,UDB) 版本 8.2 之前未安装本地语言版本的 Microsoft Data Access Components(MDAC) 2.7,则缺省情况下 DB2 UDB 将安装英语版本的 MDAC 文件。如果操作系统并 非英语版本,则此安装将导致 Windows ODBC Data Source Administrator 面板 显示为未翻译的语言版本。要解决这个问题,从下列 Microsoft Web 站点安装“ MDAC 2.7 RTM - Refresh”捆绑软件: http://msdn.microsoft.com/data/downloads/updates/default.aspx。 选择要安装的语言,下载所需的可执行文件并运行它。此过程将安装已翻译的 ODBC Data Source Administrator 文件。 DB2 Universal Database(DB2 通用数据库)工作组服务器版的 DB2 许可证策略 因特网许可证策略对 DB2 Universal Database(DB2 通用数据库)工作组服务器 版无效。如果需要因特网用户的许可证,则需要购买 DB2 Universal Database (DB2 通用数据库)工作组服务器无限制版。 安装其它亚洲字体(Linux) IBM 提供用于 Linux 的附加字体包,包含对亚洲字符的附加双字节字符集(DBCS) 支持。对于仅安装显示特定于国家或地区的字符所需字体的某些版本的 Linux, 这些字体程序包是必需的。 如果运行 db2setup 命令并发现 DB2 安装向导界面中缺少字符,则很可能是 Linux 系统未安装所有必需的字体。要使 db2setup 命令能够正确引用嵌入在安装 CD 中的字体,执行下列任务: 1. 输入以下命令: export JAVA_FONTS=//db2//java/jre/lib/fonts 其中 是安装映像的位置,而 是前缀为 Linux 的 目录。 2. 重新运行 db2setup 命令。 如果在安装后使用 DB2 GUI 工具时注意到缺少字符,则安装随 DB2 产品提供的 必需字体。这些字体可在下列任何 CD 上的 fonts 目录中找到: * IBM Developer Kit, Java Technology Edition (64-bit) for AIX 5L * 对应您所使用的操作系统的 DB2 嵌入式应用程序服务器和应用程序(XML 注 册表、Web 管理工具和 Java 分布式调试器) 在 fonts 目录中,有两种字型可用:Times New Roman WorldType 和 Monotype Sans Duospace WorldType。对于每种字型,都有一种特定于国家或地区的字体。 下表列示在 fonts 目录中以压缩格式提供的八种字体。 表 6. 其它亚洲字体的文件名 +-------------------------+---------------------+---------------------+ | 字体 | 字体文件名 | 国家或地区 | +-------------------------+---------------------+---------------------+ | Times New Roman WT J | tnrwt_j.zip | 日本及其它国家或地 | | | | 区 | +-------------------------+---------------------+---------------------+ | Times New Roman WT K | tnrwt_k.zip | 韩国 | +-------------------------+---------------------+---------------------+ | Times New Roman WT SC | tnrwt_s.zip | 中国(简体中文) | +-------------------------+---------------------+---------------------+ | Times New Roman WT TC | tnrwt_t.zip | 台湾(繁体中文) | +-------------------------+---------------------+---------------------+ | Monotype Sans Duospace | mtsansdj.zip | 日本及其它国家或地 | | WT J | | 区 | +-------------------------+---------------------+---------------------+ | Monotype Sans Duospace | mtsansdk.zip | 韩国 | | WT K | | | +-------------------------+---------------------+---------------------+ | Monotype Sans Duospace | mtsansds.zip | 中国(简体中文) | | WT SC | | | +-------------------------+---------------------+---------------------+ | Monotype Sans Duospace | mtsansdt.zip | 台湾(繁体中文) | | WT TC | | | +-------------------------+---------------------+---------------------+ 注: 这些字体不会替换系统字体。这些字体与 DB2 Universal Database(DB2 通 用数据库)配合使用。您不能将这些字体用于一般的或无限制的销售或分 发。 过程 要安装另一亚洲字体: 1. 解压缩字体包。 2. 将字体包复制至 /opt/IBMJava2-141/jre/lib/fonts目录。如果该目录不存在, 则需要创建它。 3. 输入以下命令: export JAVA_FONTS=/opt/IBMJava2-141/jre/lib/fonts 至少需要对您所在国家或地区的每种字型安装一种字体。如果您在中国、韩国或 台湾,则使用特定于国家或地区的版本;否则,使用字体的日语版本。如果系统 上有空间,安装所有这八种字体。 配置开发中心以使用 Java Development Kit(Linux) 在某些情况下,DB2 Universal Database(DB2 通用数据库)不会在客户机操作 系统上安装 Java Development Kit。要使用“开发中心”在这些客户机上开发 Java 存储过程,必须将“开发中心”指向已安装的 Java Development Kit 的位置。 遵循下列步骤以标识 Java Development Kit 的位置: 1. 在“开发中心”中,选择项目 -> 环境设置菜单项。 2. 在“环境设置”笔记本中,选择进程节点。 3. 在“进程”页的 Java 主目录部分中,选择将用来构建和运行 Java 存储过程 的 JDK 级别。 4. 在目录字段中,指定在客户机上已存在或可访问的所选 JDK 的安装目录路径。 5. 如果该客户机用于在多个 DB2 服务器上开发 Java 存储过程,您可能需要选 择其它 JDK 级别并指定它们的安装位置,这取决于这些服务器使用的 JDK 级别。 在 DB2 服务器上,Java Development Kit 安装可能未将某些 Java 库链接到系统 /usr/lib 子目录中。这些链接是构建和运行 Java 存储过程所需的。 以下示例显示了如何创建指向 Linux 客户机上的 Java Development Kit 的链接: # Setup the links to the .so files cd /usr/lib ln -s /opt/IBMJava2-131/jre/bin/libhpi.so ln -s /opt/IBMJava2-131/jre/bin/libjava.so ln -s /opt/IBMJava2-131/jre/bin/libjitc.so ln -s /opt/IBMJava2-131/jre/bin/libxhpi.so ln -s /opt/IBMJava2-131/jre/bin/libzip.so ln -s /opt/IBMJava2-131/jre/bin/classic/libjvm.so 在 United Linux 1.0 和 SuSE Linux 分发产品上创建组和用户标识 要为在 United Linux 1.0 和 SuSE Linux 分发产品上安装 DB2 UDB 版本 8.2 而创建组和用户标识,分别使用 groupadd 和 useradd 命令。版本 8.2《安装和 配置补遗》中有关使用 mkgroup 和 mkuser 命令创建组和用户标识的说明都是不 正确的。 帮助系统守护进程在使用 db2_install 命令进行安装之后未启动(UNIX 和 Linux) 如果要使用 db2_install 命令在 UNIX 和 Linux 平台上安装 DB2 信息中心,帮 助系统守护进程(db2icd)在安装之后未启动。您需要手工启动帮助系统守护进 程或重新启动计算机以访问该文档。 请参阅《发行说明》的『文档更新 | 安装和配置』一节中标题为『DB2 信息中心 守护进程』的主题。 Ready for Tivoli enablement(UNIX) 如果您购买带有 Ready for Tivoli(R) 徽标的 IBM 软件产品,则可以通过各种 Tivoli 产品管理这些 IBM 软件产品。Tivoli 产品允许您自动发现、监视和编目 一个或多个 Ready for Tivoli 应用程序。 属于 Ready for Tivoli 的 IBM 软件产品可通过诸如 IBM Tivoli Configuration Manager 这样的产品进行管理。IBM Tivoli Monitoring for Databases 支持所 有主要数据库,包括 DB2 Universal Database(DB2 通用数据库,UDB)、Oracle 和 Informix(R)。 要了解其它信息,请使用浏览器查看 IBM Web 站点,网址为: http://www.ibm.com/software/tivoli/ Ready for Tivoli 设备和 DB2 UDB 版本 8 要安装和配置设备,Tivoli 管理员应执行下列步骤: 1. 此 DB2 产品的 Tivoli Ready 签名文件的名称为 xxx.sys。从修订包 4 起, 这些特征符文件将会在每个修订包(而不是每个版本)发布时刷新。确认这些 特征符文件已安装在以下目录中: %install DB2DIR%/tivready 2. 在打算监视的所有计算机上安装和配置 Tivoli GEM 2.2 Tivoli Ready Enablement。要下载 Tivoli Ready Enablement 以及详细的安装和使用指示 信息,可通过浏览器访问以下站点: http://www.ibm.com/software/sysmgmt/products/support/ 3. 高级数据库可管理性是通过 IBM Tivoli Monitoring for Databases 来实现 的。ITM for Databases 产品使用新的高级版本“分布式监视”产品(称为 IBM Tivoli Monitoring 或 ITM),并在使用此新监视引擎的基础上提供显著 的监视增强功能。ITM for Databases 通过前摄分析组件(PAC)提供 DB2 UDB 支持。此 PAC 与 DB2 UDB 紧密集成并提供一组无缝集成的监视器以便于快速 部署和激活。DBA 还可以定义定制监视器、阈值和任务。 要了解其它信息,请访问站点:http://www.ibm.com/software/tivoli/ 要了解其它 Tivoli 产品的信息,请访问站点: http://www.ibm.com/software/tivoli/ 安装映像缩小工具(Windows) db2iprune 命令行实用程序可缩小 DB2 Universal Database(DB2 通用数据库, UDB)Windows 产品安装映像的大小。该工具对于 DB2 UDB 的大规模部署特别有 用。该工具对于在应用程序中嵌入 DB2 UDB 也很有用。 db2iprune 工具由一个输入文件和一个可执行文件组成。输入文件(.prn)包含 可除去组件的完整列表,用于指示您想要从安装映像中除去哪些功能部件和语言。 然后 db2iprune 可执行文件(db2iprune.exe)会除去与这些功能部件和语言 相关联的柜文件。这将生成新的较小的 DB2 UDB 映像,可使用常规安装方法进行 安装。修订包也是使用常规方法应用的。在安装修订包时,它仅检测和更新使用 db2iprune 安装的组件。 db2iprune 工具位于 DB2 UDB 产品安装 CD 上的 \db2\windows\utilities\db2iprune 目录中。此目录还包含自述文件。有关如何 使用 db2iprune 的详细指示信息,请参阅 db2iprune 自述文件。 DB2 Universal Database(DB2 通用数据库)版本 8 HTML 文档安装限制(Windows) 在 Windows 上,不要在已安装 DB2 UDB 版本 7(或较早版本)产品的工作站或 服务器上安装 DB2 Universal Database(DB2 通用数据库,UDB)版本 8 HTML 文档。安装程序会检测较早版本并除去较早产品。 先前安装已更新为最新级别(Windows) 如果安装了较早版本 8 级别的 DB2 产品,安装映像会检测该产品并将它更新为 最新级别。 DB2 .NET 数据提供程序的系统需求(Windows) 在使用 DB2 Universal Database(DB2 通用数据库,UDB)安装程序来安装 DB2 .NET 数据提供程序之前,必须先在计算机上安装 .NET Framework。如果未安装 .NET Framework,则 DB2 UDB 安装程序将不会注册 DB2 .NET 数据提供程序。 如果安装了 DB2 UDB 且未安装 .NET Framework,则不会注册 DB2 .NET 数据提 供程序。如果以后才安装 .NET Framework,则可运行 db2nmpreg 可执行文件来 注册该提供程序。此可执行文件驻留在 sqllib\bin 目录中。不存在任何参数。 要注册 DB2 .NET 数据提供程序,从任何命令窗口输入 db2nmpreg。 作为非管理员安装 DB2 版本 8 客户机和 DB2 Connect PE(Windows) 在安装 DB2 管理客户机、DB2 应用程序开发客户机或 DB2 Connect 个人版时, 如果存在下列情况,则必须更新 Windows TCP/IP services 文件: * 在安装设置中选择了数据仓储功能 * 执行安装的用户标识不是目标计算机上的管理员组的成员 * 将在下列任一操作系统上安装该产品:Windows NT、Windows 2000、Windows XP 或 Windows Server 2003。 如果所有这些情况都存在,则需要将下列条目添加到 Windows TCP/IP services 文件: 表 7. Windows TCP/IP services 文件中的必需条目 +----------------------------------+----------------------------------+ | 端口名 | 端口号 | +----------------------------------+----------------------------------+ | vwkernel | 11000/tcp | +----------------------------------+----------------------------------+ | vwd | 11001/tcp | +----------------------------------+----------------------------------+ | vwlogger | 11002/tcp | +----------------------------------+----------------------------------+ 如果没有这些条目,“数据仓库中心”就不能正常工作。 迁移节点 迁移 DB2 Universal Database(DB2 通用数据库)(Windows) 下列步骤显示在 Windows 上迁移 DB2 Universal Database(DB2 通用数据库, UDB)的先决条件的正确顺序。 先决条件 在迁移之前: 1. 查看迁移建议、限制和空间建议。 2. 在迁移 DB2 UDB 之前记录配置设置。 3. 更改诊断错误级别。 4. 验证数据库是否可以进行 DB2 UDB 迁移了。 5. 备份数据库。 6. 如果要使用复制,则必须将所有 DB2 UDB 日志文件归档。 7. 必须具有 SYSADM 权限。 8. 使 DB2 服务器脱机以便进行 DB2 UDB 迁移。 注: 从版本 8.1 开始,DB2_HASH_JOIN 注册表变量缺省情况下将为 ON。有关详 细信息,请参阅『文档更新』这一节中的『管理:性能』这一子节。 在使用 DataJoiner 或复制时迁移 DB2 Universal Database(DB2 通用数据库) 如果想要迁移正在运行 DB2 UDB 复制的 Capture 或 Apply 程序的 DataJoiner(R) 或 DB2 Universal Database(DB2 通用数据库,UDB)Linux 版、 UNIX 版、 版和 Windows 版的实例,则必须在迁移 DB2 UDB 或 DataJoiner 实例之前准备迁移复制环境。进行必要准备的详细指示信息包括在 DB2 DataPropagator(TM) V8 的迁移文档中。DB2 DataPropagator V8 的迁移文档可在 http://www.ibm.com/software/data/dpropr/ 中找到。 将 DB2 版本 8 Windows 32 位数据库迁移至 Windows 64 位 本主题列示了将 32 位计算机上的 32 位 DB2 版本 8 数据库迁移至 64 位 Windows 操作系统上的 64 位数据库的步骤。 先决条件 * 必须在 64 位计算机上安装 DB2 版本 8 的 64 位版本。 * 确保 32 位 Windows 系统正在运行 DB2 版本 8。 过程 要迁移至在 64 位 Windows 上的 DB2 版本 8: 1. 在 32 位 Windows 系统上备份 DB2 版本 8 数据库。 2. 在 64 位 Windows 系统上复原 DB2 版本 8 备份(在步骤 #1 中创建的)。 注: 除了将 DB2 UDB 从 32 位系统迁移到 64 位系统之外,下列迁移也是可行的: * 在 Windows 的不同版本之间迁移 * 在 DB2 UDB 的不同版本之间迁移 * 一次迁移所有内容 * 迁移回到 32 位 在以下 IBM 红皮书中提供了详细信息:Scaling DB2 UDB on Windows Server 2003。在以下 URL 中可以找到此红皮书: http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg247019.html 从先前版本迁移 XML Extender 如果您正在使用较早版本的 DB2 XML Extender,则在借助已更新的 XML Extender 发行版使用现有的启用 XML 的数据库之前必须迁移要对 XML Extender 启用的每 个数据库。每个新修订包都包含所有先前修订包的更新。 在运行迁移程序之前,创建该数据库的备份。 要迁移启用 XML 的数据库和启用 XML 的列,完成下列步骤。 1. 从 DB2 命令行输入: db2 connect to database_name db2 bind dxxinstall/bnd/@dxxMigv.lst db2 bind dxxinstall/bnd/@dxxbind.lst 其中 dxxinstall 是安装 DB2 Universal Database(DB2 通用数据库)的目 录路径。 2. 从 DB2 命令行输入: dxxMigv database_name 数据库迁移(HP-UX on IA64) 在整个版本 8.x 发行版中,DB2 Universal Database(DB2 通用数据库,UDB) HP-UX on IA64 版都不支持数据库迁移。 在 DB2 UDB HP-UX on IA64 版上,不支持将版本 7 DB2 备份映像复原为版本 8 实例。 卸载信息 以静默方式卸载 DB2 UDB(Windows) 要使用 msiexec 命令以静默方式除去 DB2 产品: msiexec /x /qn 其中 表示想要除去的产品的代码。 以下是 DB2 产品代码的列表: DB2 Universal Database(DB2 通用数据库)企业服务器版(ESE) {D8F53726-C7AD-11D4-9155-00203586D551} DB2 Universal Database(DB2 通用数据库)工作组服务器版(WSE) {7A28F948-4945-4BD1-ACC2-ADC081C24830} DB2 Universal Database(DB2 通用数据库)精简版(EXP) {58169F10-CA30-4F40-8C6D-C6DA8CE47E16} DB2 Universal Database(DB2 通用数据库)个人版(PE) {C0AA883A-72AE-495F-9601-49F2EB154E93} DB2 仓库管理器(WM) {84AF5B86-19F9-4396-8D99-11CD91E81724} DB2 Data Links Manager(DLM) {1D16CA65-F7D9-47E5-BB26-C623A44832A3} 关系连接(RCON) {273F8AB8-C84B-4EE6-85E7-D7C5270A6D08} DB2 Connect 企业版(CEE) {9C8DFB63-66DE-4299-AC6B-37D799A728A2} DB2 Connect 个人版(CPE) {F1912044-6E08-431E-9B6D-90ED10C0B739} DB2 管理客户机(ADMCL) {ABD23811-AA8F-416B-9EF6-E54D62F21A49} DB2 应用程序开发客户机(ADCL) {68A40485-7F7F-4A91-9AB6-D67836E15CF2} DB2 运行时客户机(RTCL) {63F6DCD6-0D5C-4A07-B27C-3AE3E809D6E0} DB2 Run-Time Client Lite(RTLITE) {07C9CEE7-4529-4E60-95D3-6B6EF6AC0E81} DB2 Eclipse 文档(DOCE) {FE2D4758-041C-4E4E-95B3-529E4E1EAF3E} DB2 Query Patroller(QP) {7A8BE511-8DF3-4F22-B61A-AF0B8755E354} Life Sciences Data Connect(LSDC) {DD30AEB3-4323-40D7-AB39-735A0523DEF3} DB2 Cube Views(CUBE) {C8FEDF8F-84E8-442F-A084-0A0F6A772B52} DB2 Spatial Extender(SE) {F6846BF9-F4B5-4BB2-946D-3926795D5749} 示例 如果想要除去 DB2 UDB 企业版,则输入以下命令 msiexec /x {D8F53726-C7AD-11D4-9155-00203586D551} /qn 下列 DB2 产品代码在 DB2 UDB 版本 8.2 中不再受支持: * WMC {5FEA5040-22E2-4760-A88C-73DE82BE4B6E} * DOC {73D99978-A255-4150-B4FD-194ECF4B3D7C} 用于使用静默卸载除去 DB2 信息中心的产品代码(Windows) 在 Windows 上使用静默卸载除去 DB2 信息中心时,使用以下产品代码: {FE2D4758-041C-4E4E-95B3-529E4E1EAF3E} 局限性 IMPORT REPLACE 不会响应 NOT LOGGED INITIALLY 子句 IMPORT 命令的 REPLACE 选项不会响应 CREATE TABLE 语句的 NOT LOGGED INITIALLY(NLI)子句或 ALTER TABLE 语句的 ACTIVATE NOT LOGGED INITIALLY 子句。 如果带有 REPLACE 操作的导入与调用 NLI 子句的 CREATE TABLE 或 ALTER TABLE 语句是在同一事务中执行的,则该导入将不响应 NLI 子句。所有插入都将作记录。 变通方法 1 使用 DELETE 语句删除该表的内容,然后使用 INSERT 语句调用导入。 变通方法 2 删除该表并重新创建它,然后使用 INSERT 语句调用导入。 此局限性适用于 DB2 UDB 版本 7 和 DB2 UDB 版本 8。 使用 ODBC 将数据导出至文件仓库程序 使用 ODBC 将数据导出至文件仓库程序不支持下列 Sybase 数据类型: * BIT * BINARY * VARBINARY 在开发中心的集成 SQL 调试器中不受支持的数据类型 下列数据类型在集成到开发中心的“SQL 调试器”中不受支持: * 对于 DB2 Universal Database(DB2 通用数据库,UDB)Linux 版、UNIX 版、 版和 Windows 版,CHAR FOR BIT DATA、VARCHAR FOR BIT DATA 和 GRAPHIC 数据类型不受支持。 * 对于 DB2 UDB z/OS 版,GRAPHIC 数据类型不受支持,并且用作参数的 BLOB 和 CLOB 数据类型也不受支持。用作局部变量的 BLOB 和 CLOB 是受支持的。 开发中心中的结构类型 “开发中心”不再支持创建结构类型。 开发中心对于 64 位操作系统的局限性 开发中心不支持针对 64 位服务器调试 Java 存储过程。调试 SQL 存储过程在 64 位 Windows 操作系统上受支持。对于 64 位服务器,不支持开发 OLE DB 或 XML 用户定义的函数。 开发中心(Linux) 不能使用开发中心调试在任何 Linux 分发产品(32 位、64 位、Intel(TM)、 zSeries(R) 或 iSeries(TM))上运行的 Java 存储过程。 调试具有双引号的存储过程 开发中心不支持对存储过程名称、模式或具体名称中带有双引号(")的任何存储 过程进行调试。 支持在开发中心中编译 Java 例程所需的路径设置 开发中心不能编译 Java 例程,除非它知道您的开发者工具箱版本的安装位置。 在“开发中心”第一次启动时,开发者工具箱版本的缺省目录被写至 $HOME/.ibm/db2/dc/DB2DC.settings 文件。您可以将这些目录复制至 $USER.settings 文件并使用 Unicode 编辑器来修改它们,也可以创建指向缺省 位置中的开发者工具箱目录的符号链接。 同时运行和调试 Java 存储过程的开发中心局限性 开发中心不支持同时运行和调试若干 Java 存储过程。在开发中心中,可以同时 运行多个 Java 存储过程,也可以调试单个 Java 存储过程;不能在运行一个 Java 存储过程的同时调试另一个 Java 存储过程。缺省情况下,KEEPFENCED 数 据库管理器配置关键字设置为 KEEPFENCED=YES,正如调试 SQL 存储过程要求的 那样。当关键字 KEEPFENCED 具有缺省值 YES 时,例程进程就会保持活动并且 JVM 端口冲突就会发生。当使用缺省 KEEPFENCED=YES 数据库管理器配置设置时, 在下列任何一种情况下,Java 存储过程会导致 JVM 异常并将会失败: * 在开发中心中构建 Java 存储过程然后调试它 * 一个用户正在运行 Java 存储过程,而在初始 Java 存储过程仍在运行的同时 另一个用户正在调试 Java 存储过程 * 一个用户正在调试 Java 存储过程,而在初始 Java 存储过程正被调试的同时 另一个用户正在运行 Java 存储过程 要解决此局限性,通过运行以下命令确保将 KEEPFENCED 数据库管理器配置关键 字设置为 KEEPFENCED=NO: db2 update dbm cfg using KEEPFENCED NO db2stop db2start 当将 KEEPFENCED 设置为 NO 时,db2fmp 进程将在 Java 存储过程调用完成时关 闭,DB2 Universal Database(DB2 通用数据库)将启动新的 db2fmp 进程来处 理下一个例程调用。这确保在开始调试 Java 存储过程时将没有现有的 JVM 处于 调试方式。 KEEPFENCED=YES 设置是构建 SQL 存储过程以进行调试以及调试 SQL 存储过程所 必需的。当 KEEPFENCED=NO 时,仍可构建和执行 SQL 存储过程,但不能调试它们。 PHP 应用程序中的游标 PHP 解释器代表应用程序创建游标,该游标在缺省情况下被创建为可滚动键集驱 动游标。在某些情况下,这可能导致返回意外结果。为避免此情况,对用于更新 数据的所有 SELECT 语句显式指定“FOR READ ONLY”子句。其它方法包括设置 CLI 配置参数“Patch2=6”、“Patch2=42”或“DisableKeysetCursor=1”。但是, 每种方法都可能带来不同后果。有关这些配置关键字的详细信息,请参阅 CLI Guide and Reference 文档。 AM_GET_LOCK_RPT 过程在分区数据库环境中不受支持(AIX) 在 AIX 32 上,AM_GET_LOCK_RPT 过程在分区数据库环境中不受支持。通过直接 调用 SNAPSHOT_APPL、SNAPSHOT_APPL_INFO、SNAPSHOT_LOCK 和 SNAPSHOT_LOCKWAIT 表函数可以获得相同的监视器数据。 四个不受支持的 SQL 管理例程 下列 SQL 管理例程在此发行版中不受支持: * APP 过程 * INSTALLAPP 过程 * SERVER 过程 * UNINSTALLAPP 过程 CLI 程序包的绑定选项局限性 如果使用下列任何列表文件绑定 CLI 程序包,某些绑定选项可能无法生效: db2cli.lst、ddcsmvs.lst、ddcs400.lst、ddcsvm.lst或 ddcsvse.lst。由于 CLI 程序包由 CLI、ODBC、JDBC、OLE DB、.NET 和 ADO 应用程序使用,对 CLI 程序 包的任何更改都会影响所有这些类型的应用程序。因此,在绑定 CLI 程序包时, 缺省情况下仅支持绑定选项的子集。受支持的选项包括:ACTION、COLLECTION、 CLIPKG、OWNER 和 REPLVER。影响 CLI 程序包的所有其它绑定选项将被忽略。 要使用缺省情况下不受支持的绑定选项创建 CLI 程序包,以不同于缺省集合标识 NULLID 的集合标识指定 COLLECTION 绑定选项。于是所有指定绑定选项都会被接 受。例如,要使用 KEEPDYNAMIC YES 绑定选项(该选项在缺省情况下不受支持) 创建 CLI 程序包,输入以下命令: db2 bind @db2cli.lst collection newcolid keepdynamic yes 为了让 CLI/ODBC 应用程序访问在新集合中创建的 CLI 程序包,将 db2cli.ini 初始化文件中的 CurrentPackageSet CLI/ODBC 关键字设置为新的集合标识。 要覆盖特定集合标识下已经存在的 CLI 程序包,执行下列任一操作: * 在对此集合标识发出绑定命令之前删除现有 CLI 程序包 * 在发出绑定命令时指定 ACTION REPLACE 绑定选项 指定列名的 CLI LOAD 限制 如果提供给 CLI LOAD 实用程序的 INSERT 语句包括 VALUES 子句,则不能指定 目标列。例如,CLI LOAD 支持以下语句: INSERT into tableA VALUES (?, ?, ?) 但是,不支持将指定目标列的这一语句与 CLI LOAD 实用程序配合使用: INSERT into tableA (col1, col2, col3) VALUES (?, ?, ?) 在尝试连接时报告成功登录失败(AIX) 在 AIX 上使用操作系统认证时,DB2 Universal Database(DB2 通用数据库, UDB)尝试在连接尝试认证成功的情况下报告成功登录至 AIX。在版本 8 修订包 5 之前,如果 DB2 UDB 无法报告成功的登录,则尽管已认证用户,连接也将失败。 从版本 8 修订包 5 开始,将允许连接继续进行,而失败将记录在 db2diag.log 文件中。 版本 8 中的 SNA 支持局限性 从用于 Windows 和 UNIX 操作系统的 DB2 Universal Database(DB2 通用数据 库,UDB)企业服务器版(ESE)版本 8 和用于 Windows 和 UNIX 操作系统的 DB2 Connect 企业版(CEE)版本 8 中撤销了以下支持: * 不能使用通过 SNA 实现的多站点更新(两阶段落实)功能。需要多站点更新 (两阶段落实)的应用程序必须使用 TCP/IP 连接。已经有几个发行版能够使 用 TCP/IP 来对主机或 iSeries 数据库服务器进行多站点更新(两阶段落实)。 在 DB2 UDB ESE 版本 8 中,需要多站点更新(两阶段落实)支持的主机 或 iSeries 应用程序可以使用 TCP/IP 多站点更新(两阶段落实)支持的新 功能。 * DB2 UDB ESE 或 DB2 CEE 服务器不再接受使用 SNA 的客户机连接。从版本 8 修订包 1 开始,DB2 UDB 允许 32 位的 AIX、Solaris Operating Environment、HP-UX 和 Windows 应用程序使用 SNA 访问主机或 iSeries 数 据库服务器。此支持允许应用程序使用 SNA 来访问主机或 iSeries 数据库服 务器,但是只使用一阶段落实。 * 只有通过使用 TCP/IP 才能获得对 DB2 UDB z/OS 版的 Sysplex 支持。 Sysplex 支持并不是通过使用 SNA 连接提供的。 * 当使用 SNA 与主机数据库服务器建立连接时,更改密码支持就不再可用。 * 在下一版本的 DB2 UDB 和 DB2 Connect 中,将撤销所有 SNA 支持。 不支持创建工具目录数据库(适用于 AMD64 的 Linux) 不支持在 Linux(AMD64)上的 64 位 DB2 Universal Database(DB2 通用数据 库,UDB)实例下创建工具目录数据库。不要尝试在 64 位实例下使用下列任何一 种方法来创建工具目录: * 安装 DB2 UDB * 使用 db2isetup 命令更新 64 位实例 * 在安装完成之后发出 CREATE TOOLS CATALOG CLP 命令 从版本 8.1.4 开始,支持在 Linux(AMD64)上的 32 位实例下创建工具目录数 据库。 不支持创建工具目录数据库(AIX、Solaris Operating Environment 和 HP-UX) 不支持在 DB2 Universal Database(DB2 通用数据库,UDB)的安装期间针对 64 位混合平台上的 64 位实例创建工具目录。混合平台为: * AIX * Solaris Operating Environment * HP-UX * 其它同时支持 32 位和 64 位实例的平台 如果您想要针对 64 位实例创建工具目录,则可以在安装 DB2 UDB 之后通过命令 行处理器使用 CREATE TOOLS CATALOG CLP 命令或者使用控制中心来完成。对于 此操作,还需要安装 64 位 IBM Developer Kit for Java。有关更多详细信息, 参阅《DB2 管理指南》的『DB2 管理服务器』一节。 DB2 UDB 精简版和 DB2 工作组服务器版版本 8.2 的内存限制 对于下列产品具有内存限制: * IBM DB2 Universal Database(DB2 通用数据库,UDB)精简版(指定用户选 项)。每台服务器的最大内存为 4GB。 * IBM DB2 UDB 精简版(CPU 选项)。每台服务器的最大内存为 4GB。 * IBM DB2 UDB 工作组服务器版。每台服务器的最大内存为 16GB。 * IBM DB2 UDB 工作组服务器无限制版。每台服务器的最大内存为 16GB。 DB2 UDB 工作组服务器版 64 位服务器实例限制 64 位服务器实例不允许 DB2 Universal Database(DB2 通用数据库,UDB)工作 组服务器版和 DB2 UDB 工作组服务器无限制版。利用这些产品,您可以创建: * 32 位服务器实例 * 32 位或 64 位客户机实例 调度仓库进程使其以一定时间间隔运行 当调度仓库进程使其以一定时间间隔运行时,必须确定在进程中运行所有生产步 骤所花的最长时间,并相应地调度时间间隔。如果进程超过已调度的时间间隔, 则该进程所有的后续调度事件将不会运行,并且不会被重新调度。 装入和导入列页不支持 IXF 文件中的 DBCS 字符 如果使用“装入”向导和“导入”笔记本来设置从包含 DBCS 字符的 IXF 输入文 件的装入和导入,则“列”页将不会正确显示文件中包含的列名。 DB2 UDB 客户机的安全性插件问题和限制(Windows) 当开发将在 Windows 操作系统上的 DB2 客户机中部署的安全性插件时,不要卸 装插件终止函数中的辅助库。此限制适用于所有类型的客户机安全性插件,包括 组、用户标识和密码、Kerberos 和 GSS-API 插件。 卸装 Windows 操作系统上的 DB2 客户机的安全性插件时,DB2 通用数据库的问 题导致了此限制。 不支持由两部分组成的用户标识(Windows ME) 用于 CONNECT 语句和 ATTACH 命令的由两部分组成的用户标识(例如, domainname\username)在 Windows ME 上不受支持。 GUI 工具的最低显示器设置 要使 GUI 工具(例如,控制中心)正常工作,必须至少具有 800*600 的屏幕分 辨率,并且显示器调色板至少具有 32 色。 不要对信息目录中心表进行分区 信息目录管理器使用的表必须包含在单个数据库分区中。将表放置在单一分区中 有许多方法。以下过程就是一种奏效的方法: 1. 打开 DB2 命令行处理器并发出下列命令: a. CREATE DATABASE PARTITION GROUP partition_group_name ON DBPARTITIONNUM partition_number b. CREATE REGULAR TABLESPACE tablespace_name IN DATABASE PARTITION GROUP partition_group_name MANAGED BY SYSTEM USING ('cname') 其中 partition_group_name 在两个命令中是一样的。 2. 单击“开始”->“程序”->“IBM DB2”->“设置工具”->“管理信息目录向导”。 3. 在“选项”页上,在表空间字段中指定表空间名。 GB18030 字符在窗口标题栏中的显示不正确 如果窗口标题栏中有依据 GB18030 中文字符编码标准的字符,这些字符可能显示 为问号或方块。 DYN_QUERY_MGMT 被禁用时的 Query Patroller 局限性 如果禁用数据库配置参数 DYN_QUERY_MGMT,则 Query Patroller 不能执行下列 操作: * 从挂起状态释放查询 * 当正在运行的查询或排队查询在前台时,使该查询在后台运行 当 DYN_QUERY_MGMT 被设置为 DISABLE 时,如果尝试从挂起状态释放查询或将前 台查询更改为后台查询,则将显示一条错误消息并将不会更改该查询的状态。如 果调度挂起的查询以运行并在它们开始运行时禁用 DYN_QUERY_MGMT,则一条错误 消息将被写入 qpdiag.log 文件,并且该查询将保持挂起状态。 Query Patroller 结果表现在使用 DB2QPRT 模式 从修订包 5 开始,所有新的结果表都是使用模式 DB2QPRT 而不是使用提交者的 模式创建的。 将对 DB2QPRT 模式的 DROPIN 特权授予其概要文件是在安装修订包 5 之前创建 的并且具有下列任一权限的操作员: * 具有编辑权限的 MONITORING 特权 * 具有编辑权限的 HISTORICAL ANALYSIS 特权 将在 Query Patroller 第一次使用此模式创建结果表时授予对 DB2QPRT 模式的 DROPIN 特权。 在创建或更新以下操作员的概要文件时还将授予这些操作员对 DB2QPRT 模式的 DROPIN 特权:在安装修订包 5 之后授予具有编辑权限的 MONITORING 特权或授 予具有编辑权限的 HISTORICAL 特权的操作员。 健康指示器限制 如果指示器进入关闭状态,则健康监视器不能为 db2.db2_op_status 健康指示器 执行操作。例如,当指示器正在监视的实例由于显式停止请求和异常终止而变得 不活动时,就会导致这种状态。如果想要实例在任何异常终止之后自动重新启动, 则配置故障监视器以使实例保持高度可用。 已知问题和变通方法 DB2 UDB 工作组服务器未提供 db2nkill 工具 问题 在 DB2 Universal Database(DB2 通用数据库,UDB)工作组服务器版本 8 中未 提供 db2nkill 工具。这可能会导致各种问题,包括在使用“db2gcf -k”命令时 发生故障。 例如,发出“db2gcf -k -i psustr -p 0 -L”命令时将产生以下响应: Instance : psustr DB2 Kill : Failure Partition 0 : Failure db2diag.log 文件中相应的条目为如下所示: 2003-07-06-22.11.40.241991 pid:26366 tid:1 level:2 Common - Generic Control Facility - gcf_kill() probe:220 impact 0x900002C1 DB2 kill service failed data #1 (36 bytes) 'psustr', 0 : could not be killed. 变通方法 相同的方案在 DB2 UDB 企业服务器版上将正常工作。使用与 DB2 UDB 企业服务 器版版本 8 一起提供的 db2nkill 工具。 “db2gcf -k”命令在 DB2 UDB 工作组服务器上失败 问题 db2gcf 命令通常从自动运行的脚本启动、停止或监视 DB2 Universal Database (DB2 通用数据库,UDB)实例(例如,在 HA(高可用性)集群中)。 DB2 UDB 工作组服务器版本 8 未提供 db2nkill 工具。这将导致在使用带有 -k 命令参数的 db2gcf 时失败。 变通方法 “db2gcf -k”命令在企业服务器版(ESE)上将正常运行,这是因为 db2nkill 包括在 DB2 UDB ESE 版本 8 中。 来自 DRDA 包装器的 SQL1224 错误(AIX) 如果 32 位 DB2 Universal Database(DB2 通用数据库,UDB)服务器在 AIX 系 统上运行且在同一系统上运行的应用程序通过 DRDA(R) 包装器进行了多个本地数 据库连接,则该应用程序可能会接收到以下错误: SQL1822N 从数据源“W3_SERVER2”接收到意外错误代码“-1224”。 相关联的文本和标记包括 func="DriverConnect" msg="SQL1224N 不能启动数据库代理进程为请求服务,或者因为数据 库系统关闭或一个强制命令使数据库代理进程终止。" SQLSTATE=560BD 为了避免此错误,将以下条目置于联合配置文件(instance_directory /cfg/db2dj.ini)中: EXTSHM=ON 注: 在向联合配置文件添加条目时,必须停止并重新启动 DB2 UDB 以使更改生效。 或者,可象在 TCP/IP 节点上那样编目本地 DB2 UDB 数据库。例如: CATALOG TCPIP NODE my_node REMOTE my_host SERVER 123; CATALOG DB mydb AT NODE my_node; CREATE WRAPPER drda; CREATE SERVER my_server TYPE DB2/UDB VERSION 8 WRAPPER drda AUTHORIZATION "my_id" PASSWORD "my_pw" OPTIONS(ADD DBNAME 'MYDB'); 热键在 Microsoft Visual Studio .NET Framework 1.1 中不起作用 如果热键在 Microsoft Visual Studio .NET Framework 1.1 中不起作用,可从 Microsoft Web 站点下载最新修订程序。可在 Microsoft Knowledge Base 文档 Q836745 中找到最新修订程序。 简体中文语言环境(AIX) 在下列系统上,AIX 已更改绑定至简体中文语言环境 Zh_CN 的代码集: * AIX V5.1.0000.0011 或更新版本 * 具有维护级别 2 或更新版本的 AIX V5.1.0 代码集已从 GBK(代码页 1386)更改为 GB18030(代码页 5488 或 1392)。由于 DB2 Universal Database(DB2 通用数据库,UDB)AIX 版本身就支持 GBK 代码 集,并且通过 Unicode 还支持 GB18030 代码集,所以 DB2 UDB 将把 Zh_CN 语 言环境的代码集缺省设置为 ISO 8859-1(代码页 819),并且在某些操作中,还 将把语言环境的地域缺省设置为美国(US)。 要消除此局限性,可以使用下面两种方法: * 可以将语言环境的代码集从 GB18030 更改为 GBK,并将地域从美国更改为中 国(其地域标识为 CN,地域代码是 86)。 * 可以使用另一种简体中文语言环境。 如果选择使用第一个选项,则发出下列命令: db2set DB2CODEPAGE=1386 db2set DB2TERRITORY=86 db2 terminate db2stop db2start 如果选择第二个选项,则将语言环境从 Zh_CN 更改为 ZH_CN 或 zh_CN。ZH_CN 语言环境的代码集是 Unicode(UTF-8),而 zh_CN 语言环境的代码集为 eucCN (代码页 1383)。 简体中文语言环境(Red Hat Linux) Red Hat V8 和更新版本(包括 Red Hat Enterprise Linux [RHEL] V2.1 和 V3) 已将简体中文的缺省代码集从 GBK(代码页 1386)更改为 GB18030(代码页 5488 或 1392)。 由于 DB2 Universal Database(DB2 通用数据库,UDB)Linux 版本身就支持 GBK 代码集,并且通过 Unicode 还支持 GB18030 代码集,所以 DB2 UDB 将把它的代 码集缺省设置为 ISO 8859-1(代码页 819),并且在某些操作中,还将把它的地 域缺省设置为美国(US)。 要消除此局限性,可以使用下面两种方法: * 可以将 Red Hat 缺省代码集从 GB18030 更改为 GBK,并将地域从美国更改为 中国(其地域标识为 CN,地域代码是 86)。 * 可以使用另一种简体中文语言环境。 如果选择使用第一个选项,则发出下列命令: db2set DB2CODEPAGE=1386 db2set DB2TERRITORY=86 db2 terminate db2stop db2start 如果选择使用第二个选项,则发出下列任何一个命令: export LANG=zh_CN.gbk export LANG=zh_CN export LANG=zh_CN.utf8 其中,与 zh_CN 相关联的代码集为 eucCN 或代码页 1383,与 zh_CN.utf8 相关 联的代码集为代码页 1208。 Merant 驱动程序管理器不兼容性(UNIX) 当“Merant 驱动程序管理器”访问 UNIX 上的 DB2 ODBC 驱动程序时,存在与 Unicode 支持不兼容的情况。即使应用程序未请求使用 Unicode,这些不兼容情 况也会导致“Merant 驱动程序管理器”使用 Unicode。这种情况可能会导致要求 “Merant 驱动程序管理器”支持非 IBM 数据源的组件(例如,数据仓库中心、 信息目录管理器和 MQSI)遇到问题。在有永久解决方案之前,可使用未启用 Unicode 支持的备用 DB2 ODBC 驱动程序库。 DB2 Universal Database(DB2 通用数据库,UDB)版本 8.1 AIX 版、HP-UX 版和 Solaris Operating Environment 版附带包括了未启用 Unicode 支持的备用 DB2 ODBC 驱动程序库。要使用此备用库,必须创建它的副本,并将副本命名为原始 DB2 ODBC 驱动程序库的名称。 注: 备用(_36)库包含 DB2 JDBC 驱动程序所需要的 Unicode 功能。使用此库 允许 JDBC 应用程序(包括 WebSphere(R) Application Server)与 DB2 UDB 成功配合工作。 要在 AIX、HP-UX 或 Solaris Operating Environment 上切换至非 Unicode ODBC 库,请参阅以下指示信息。由于这是一个手工过程,所以每次更新产品时(包括 应用后续修订包或修改级别之后)都必须执行它。 过程 AIX 要在 AIX 上创建备用库: 1. 以实例所有者身份,使用 db2stop force 命令来关闭所有数据库实 例。 2. 使用 DB2 管理服务器(DAS)实例标识,通过使用 db2admin stop force 命令来关闭 DAS 实例。 3. 备份 /usr/lpp/db2_81/lib 目录中的原始 db2.o 文件。 4. 使用 root 用户权限,发出 slibclean 命令。 5. 将文件 db2_36.o 复制为备份文件 db2.o,并确保所有权和许可权 仍保持一致。使用以下命令: cp db2_36.o db2.o -r--r--r-- bin:bin for db2.o 要切换回到原始对象,请遵循同一过程,但请使用备份文件,而不是 db2_36.o 文件。 Solaris Operating Environment 要在 Solaris Operating Environment 中创建备用库: 1. 以实例所有者身份,使用 db2stop force 命令来关闭所有数据库实 例。 2. 使用 DB2 管理服务器(DAS)实例标识,通过使用 db2admin stop force 命令来关闭 DAS 实例。 3. 备份 /opt/IBMdb2/V8.1/lib 目录中的原始 libdb2.so.1 文件。 4. 将文件 libdb2_36.so.1 复制为备份文件 libdb2.so.1,并确保所 有权和许可权仍保持一致。使用以下命令: cp libdb2_36.so.1 libdb2.so.1 -r-xr-xr-x bin:bin libdb2.so.1 5. 对每个数据库实例发出 dasupdt 命令,并对 DAS 实例 发出 dasupdt 命令。 要切换回到原始对象,请遵循同一过程,但请使用备份文件,而不是 libdb2_36.so.1 文件。 HP-UX PA-RISC 要在 HP-UX PA-RISC 上创建备用库: 1. 使用 db2stop force 命令来关闭所有数据库实例。 2. 使用 db2admin stop force 命令关闭 DB2 管理服务器(DAS)实例。 3. 备份 /opt/IBMdb2/V8.1/lib 目录中的原始 libdb2.sl 文件。 4. 将文件 libdb2_36.sl 复制为备份文件 libdb2.sl,并确保所有权 和许可权仍保持一致。使用以下命令来确保一致性: cp libdb2_36.sl libdb2.sl -r-xr-xr-x bin:bin for libdb2.sl 5. 对每个数据库实例发出 dasupdt 命令,并对 DAS 实例 发出 dasupdt 命令。 要切换回到原始对象,请遵循同一过程,但请使用备份文件,而不是 libdb2_36.sl 文件。 HP-UX on IA64 要在 HP-UX on IA64 上创建备用库: 1. 使用 db2stop force 命令来关闭所有数据库实例。 2. 使用 db2admin stop force 命令关闭 DB2 管理服务器(DAS)实例。 3. 备份 /opt/IBMdb2/V8.1/lib 目录中的原始 libdb2.so 文件。 4. 将文件 libdb2_36.so 复制为备份文件 libdb2.so,并确保所有权 和许可权仍保持一致。使用以下命令来确保一致性: cp libdb2_36.so libdb2.so -r-xr-xr-x bin:bin for libdb2.so 5. 对每个数据库实例发出 dasupdt 命令,并对 DAS 实例 发出 dasupdt 命令。 要切换回原始对象,遵循同一过程(使用备份文件而不是 libdb2_36.so 文件)。 其它 UNIX 操作系统 如果您需要关于 DB2 UDB 和其它 UNIX 操作系统上的“Merant 驱动程 序管理器”的帮助,请与 IBM 支持机构联系。 NFS APAR IY32512 - 不可用线程(AIX) AIX 5 NFS APAR IY32512 可能导致 db2stop 命令在带有大量分区的系统上停止。 在接收到要求阻止对已经锁定的文件的锁定的大量请求的服务器上,锁定守护进 程可能会不作响应。如果所有可用已锁定线程已分配给等待锁定变为可用的线程, 于是在发生解锁请求时没有可用线程来完成此工作,就可能发生这种情况。 如果发生这种情况,必须重新启动已停止的节点。针对这种情况,DB2 Universal Database(DB2 通用数据库)的变通方法是使用 db2stop 命令的 NODENUM 选项 停止这些节点(一次停止一个)。 SQLFLAG(STD) 预编译器选项错误 如果启用 SQLFLAG(STD) 预编译选项,则会导致以下错误:当运行预编译程序 DSNHPC 时发生异常终止 C6 错误。 当使用开发中心来创建要在 DB2 Universal Database(DB2 通用数据库)z/OS 版版本 8 上运行的 SQL 存储过程时,除去 SQLFLAG(STD)预编译选项。 DB2 Connect 定制顾问程序 尽管在《DB2 Connect 用户指南》中作了说明,但是 DB2 Connect 定制顾问程序 在版本 8.2 中不再受支持。 创建工具目录数据库失败(HP-UX) 问题 当在 HP-UX 上安装 DB2 Universal Database(DB2 通用数据库, UDB)版本 8.2 时,如果在 32 位实例下运行 CREATE TOOLS CATALOG 命令,并且 DB2 管理服务器 jdk_path 配置参数指向 HP-UX SDK 1.4, 则该命令将产生 SQLCODE -22209。发生这种故障的因为,缺省情况下 DB2 UDB 版本 8.2 将安装 HP-UX SDK 1.4,但是,版本 8.2 32 位实 例需要 HP-UX SDK 1.3 才能成功地运行 CREATE TOOLS CATALOG 命令。 当安装 DB2 UDB 版本 8.1 修订包 7 时,如果您将 DB2 管理服务器 jdk_path 配置参数手工更新为指向 HP-UX SDK 1.4,或者如果您先删 除然后再重新创建 DB2 管理服务器(DAS),也会发生此故障。之所以 发生故障是因为在任何一种情况下 jdk_path 配置参数都更改为指向 HP-UX SDK 1.4。 DB2 UDB 版本 8.2 32 位实例要求成功运行 HP-UX SDK 1.3。 变通方法 1 在 64 位实例下创建工具目录。 变通方法 2 通过执行下列步骤在 32 位实例下创建工具目录: 1. 从以下 HP-UX Web 站点下载 HP-UX SDK 1.3: http://www.hp.com/products1/unix/java/ 2. 安装 HP-UX SDK 1.3。 3. 将 DB2 管理服务器 jdk_path 配置参数更新为指向 HP-UX SDK 1.3。 例如: db2 update admin config using JDK_PATH /opt/java1.3 4. 重新启动 DB2 管理服务器。 db2admin stop db2admin start 5. 在 32 位实例下重新运行 CREATE TOOLS CATALOG 命令。 在 DB2 GUI 工具中显示印度字符 如果使用 DB2 GUI 工具时显示印度字符时有问题,则您可能没有在您的系统上安 装必需的字体。 DB2 Universal Database(DB2 通用数据库,UDB)已打包以下 IBM TrueType 和 OpenType 对应印度语言字体以供您使用。这些字体可在下列任何 CD 上的 font 目录中找到: * IBM Developer Kit, Java Technology Edition (64-bit) for AIX 5L * 对应您所使用的操作系统的 DB2 嵌入式应用程序服务器和应用程序(XML 注 册表、Web 管理工具和 Java 分布式调试器) 这些字体仅与 DB2 UDB 结合使用。您不能将这些字体用于一般的或无限制的销售 或分发: 表 8. 与 DB2 UDB 打包在一起的印度字体 +-----------------------+----------------------+----------------------+ | 字型 | 字形 | 字体文件名 | +-----------------------+----------------------+----------------------+ | Devanagari MT for IBM | 中 | devamt.ttf | +-----------------------+----------------------+----------------------+ | Devanagari MT for IBM | 粗体 | devamtb.ttf | +-----------------------+----------------------+----------------------+ | Tamil | 中 | TamilMT.ttf | +-----------------------+----------------------+----------------------+ | Tamil | 粗体 | TamilMTB.ttf | +-----------------------+----------------------+----------------------+ | Telugu | 中 | TeluguMT.ttf | +-----------------------+----------------------+----------------------+ | Telugu | 粗体 | TeleguMTB.ttf | +-----------------------+----------------------+----------------------+ 有关如何安装字体和修改 font.properties 文件的详细指示信息位于 IBM Development Kit for Java 文档的 Internationalization 一节。 此外,下列 Microsoft 产品还带有可与 DB2 GUI 工具配合使用的印度字体: * Microsoft Windows 2000 操作系统 * Microsoft Windows XP 操作系统 * Microsoft Publisher * Microsoft Office zSeries 服务器不支持 GUI 工具(Linux) 除了 DB2 安装向导之外,在运行 Linux 操作系统的 zSeries 服务器上,GUI 工 具不能工作。此局限性包含通常从“安装”启动板启动的任何项,例如,“快速 导览”。 如果要对这些系统之一使用 GUI 工具,则在具有不同系统配置的客户机系统上安 装管理工具,并使用此客户机来连接 zSeries 服务器。 用引号将包含数字的 DB2 信息中心搜索项引起来 为了在 DB2 信息中心中获得精确的搜索结果,必须用引号将包括数字的搜索项引 起来。 例如,如果搜索以下词条,将接收不到任何结果: 1.4.1 但是,如果用引号将该语句括起来,将接收到相应的结果: "1.4.1" 搜索以下词条将返回额外主题: DB20000I 但搜索以下词条将正常工作: "DB20000I" 导入标记语言文件时未生成的信息目录中心日志文件 如果在将标记语言文件导入到信息目录中心时不生成信息目录中心日志文件,则 执行下列故障诊断步骤: 当从命令行运行 db2icmimport 时: * 如果不生成输出文件(.xml、.out、.err 或 .log),则命令行上 可能有错。验证前五个自变量 UserId、Password、Database、 Catalog 和 Tagfile 是正确的。通过输入 db2icmimport 查看语法。 如果这不能解决问题,则修改 db2icmimport 以捕获 db2javit 命令的输出,方法是使用 -g 选项将输出保存至文件。例如: db2javit -j:com.ibm.db2.common.icm.tag.IcmImport -w: -i: -o:"-Xmx128m -Xms32m" -g:"d:\temp\myimport.trc" ... * 如果不生成日志文件,则通常是存在语法分析错误。查看 .xml 文 件和 .out 文件。若有可能,将“:COMMIT.CHKPID(DEBUG)”命令插 入到标记语言文件的开头。此命令生成调试报告消息,可检查 .xml 和 .out 文件以获取语法分析错误。 * 在语法分析之后,错误应出现在 .log 文件中。当生成调试报告时, 查看 .log 文件和 .out 文件以获取信息。 * 总是检查 .err 文件以查看是否存在运行时错误。 当使用信息目录中心 GUI 导入标记语言文件时: * 当使用 GUI 界面来导入标记语言文件时,不会生成 .out 或 .err 文件。 * 如果生成 .log 或 .xml 文件,通过使用这些文件尝试调试。 * 如果不生成 .log 或 .xml 文件或者所作的措施不起作用,则从命 令行运行导入过程以获取更多信息。 绑定 Query Patroller 程序包 如果在应用修订包之后不绑定 Query Patroller 程序包,则没有 DBADM 权限或 适当的 Query Patroller 特权的用户在使用 Query Patroller 中心或 Query Patroller 命令行时可能会遇到以下错误: SQL0001N - 绑定或预编译未成功完成。 如果正在使用 Query Patroller 中心,就会在 qpdiag.log 文件中记录 SQL0001N 错误。如果正在使用 Query Patroller 命令行,SQL0001N 会被返回给控制台。 存在自动绑定代码,以便可以启动自动绑定。然而,当正在连接的用户没有执行 Query Patroller 程序包中所有语句的必需特权时,自动绑定会失败。此问题的 症状是 Query Patroller 中心中缺少文件夹。 要避免此问题,在应用了修订包之后,应由具有 DBADM 权限或必需特权的用户手 工绑定 qpserver.lst 程序包。 Query Patroller 没有端口可用(Windows) 如果 Windows XP 或 Windows 2003 上没有其它可用端口,在 Query Patroller 中提交的查询可能会接收到 SQL 代码 -29007。随着访问 Query Patroller 的客 户机的数量增加,发生此错误的可能性也会增加。如果发生这种情况,按如下所 示设置下列注册表变量: MaxUserPort=65534 TcpTimedWaitDelay=30 并重新启动系统以使更改生效。 安全环境(Windows) 如果您正在 Windows 上使用 DB2 Universal Database(DB2 通用数据库,UDB), 并且您不是 Windows 系统上的管理员,则可能会遇到文件许可权问题。如果接 收到 SQL1035N、SQL1652N 或 SQL5005C 错误消息,则可能的原因和变通方法显 示在以下信息中: 用户对 sqllib 目录没有足够的权限 问题 用户在尝试打开 DB2 CLP 或命令窗口时接收到 SQL1035N 或 SQL1652N 错误。DB2 UDB 代码(核心文件)被安装到写特权受限制的 目录结构中,但是某些 DB2 UDB 工具需要在 DB2INSTPROF 目录中写和 创建文件。 变通方法 创建可以在其中至少授予用户 MODIFY 许可权的新目录,并使用 db2set -g db2tempdir 来指向该新目录,或者在 Windows 系统环境中设置 db2tempdir 变量。 即使用户属于 SYSADM_GROUP,用户也没有足够的权限来写至 sqllib\ 目录 问题 用户在尝试更新数据库管理器配置文件(update dbm cfg)时接收 到 SQL5005C 系统错误。即使已将此用户添加至 SYSADM_GROUP,此用 户也没有必需的 NTFS 许可权来写至 sqllib\instance_dir 目录。 第一个变通方法 至少授予用户对 instance_dir 目录的文件系统级别的 MODIFY 许可权。 第二个变通方法 创建新目录,可在该目录中至少授予用户 MODIFY 许可权。使用 db2set db2instprof 命令来指向该新目录。您将需要重新创建实例以便将信息 存储在 db2instprof 指定的新实例目录下面,或者将需要把旧实例目 录移至新目录。 XML Extender 样本程序已重命名 有些 XML Extender 样本程序可能与其它已安装的程序同名。意外调用与 XML Extender 样本程序同名的另一程序可能会损坏 XML 文件。以下列表显示了旧的 XML Extender 样本程序名以及将不太可能会导致冲突的新替换程序名。确保使用 新样本程序名而不是旧样本程序名以防止损坏 XML 文件。 表 9. XML Extender 的替换样本程序(Windows) +----------------------------------+----------------------------------+ | 旧程序(不使用) | 新程序(使用) | +----------------------------------+----------------------------------+ | insertx.exe | dxxisrt.exe | +----------------------------------+----------------------------------+ | retrieve.exe | dxxretr.exe | +----------------------------------+----------------------------------+ | retrieve2.exe | dxxretr2.exe | +----------------------------------+----------------------------------+ | retrievec.exe | dxxretrc.exe | +----------------------------------+----------------------------------+ | shred.exe | dxxshrd.exe | +----------------------------------+----------------------------------+ | tests2x.exe | dxxgenx.exe | +----------------------------------+----------------------------------+ | tests2xb.exe | dxxgenxb.exe | +----------------------------------+----------------------------------+ | tests2xc.exe | dxxgenxc.exe | +----------------------------------+----------------------------------+ 表 10. XML Extender 的替换样本程序(Linux 和 UNIX) +----------------------------------+----------------------------------+ | 旧程序(不使用) | 新程序(使用) | +----------------------------------+----------------------------------+ | insertx | dxxisrt | +----------------------------------+----------------------------------+ | retrieve | dxxretr | +----------------------------------+----------------------------------+ | retrieve2 | dxxretr2 | +----------------------------------+----------------------------------+ | retrievec | dxxretrc | +----------------------------------+----------------------------------+ | shred | dxxshrd | +----------------------------------+----------------------------------+ | tests2x | dxxgenx | +----------------------------------+----------------------------------+ | tests2xb | dxxgenxb | +----------------------------------+----------------------------------+ | tests2xc | dxxgenxc | +----------------------------------+----------------------------------+ 将新的样本程序与样本 sqx 文件配合使用 前面列示的可执行文件的源代码(.sqx 文件)位于安装的 samples\db2xml\c 目 录中。源文件仍用它们的旧名称标记。如果您对源代码进行更改,则将新编译的 可执行文件(用旧名称)复制到 sqllib\bin 目录中。 在 Windows 平台上,必须建立另一个副本,将它重命名为上面的新名称,然后将 它复制到 bin 目录。这两个副本都会替换 bin 目录中的现有文件。例如,在编 译了新版本的 shred.exe 之后,需要建立两个副本并替换 bin 目录中的文件: 一个标记为 shred.exe,另一个重命名为 dxxshrd.exe。 在 Linux 和 UNIX 平台上,只需要用新编译版本替换具有旧名称的文件。如果从 这些样本创建新的可执行文件,则必须将新文件从 \SQLLIB\samples\db2xml\c\ 目录复制到 \SQLLIB\bin\ 目录中,然后建立其它副本,并根据前面的表重命名 这些副本。 分解 XML Extender 中包含非唯一属性和元素名称的文档 现在可以分解包含非唯一属性或非唯一元素名称的映射至不同的列(具有相同或 不同的表)的文档而不会接收到 DXXQ045E 错误。以下是具有非唯一属性和非唯 一元素名称的 XML 文档的一个示例: John Smith Jane Doe xxxx-xxxx 2 12.50 yyyy-yyyy 4 24.99 伴随的 DAD(它将重复的元素和属性映射至不同的列)如下:
order_tab.order_id=detail_tab.order_id
detail_tab" />
在分解了前面的文档之后,表的内容将如以下示例所示: ORDER _TAB: ORDER_ID CUST_ID CUST_NAME SALESP_ID SALESP_NAME 0001-6789 1111 John Smith 1234 Jane Doe DETAIL_TAB: ORDER_ID ITEMNO QUANTITY UNIT_PRICE 0001-6789 xxxx-xxxx 2 12.50 0001-6789 yyyy-yyyy 4 24.99 注: 要将多个元素和属性映射至同一个表的同一列,为该表定义别名并在 DAD
元素的其中一个映射中使用该别名。 使用 DB2 Connect 时 SNA 与 TCP/IP 之间的差别 当使用 SNA 连接至 OS/390 系统时,主机 VTAM(R) 层将在建立新的连接时自动 执行落实。自动落实将让主机端线程状态为不活动的,并且该线程立即成为不活 动的。 但是,当使用 TCP/IP 连接至 OS/390 系统时,没有自动落实。在建立连接之后, 应用程序本身必须执行显式落实以让线程在主机上成为不活动的。如果没有显 式落实,则线程将进入空闲线程超时状态。 建议的变通方法是重新编写应用程序以便在连接之后在该连接成为空闲的情况下 执行显式落实。 文档更新 管理:实现 远程客户机的认证注意事项 认证类型 DATA_ENCRYPT_CMP 旨在允许前发行版中不支持数据加密的客户机使用 SERVER_ENCRYPT 认证而不是使用 DATA_ENCRYPT 来连接至服务器。这种认证在下 面三种情况下不工作: * 客户机级别为版本 7.2。 * 网关级别为版本 8 修订包 7 或更新版本。 * 服务器为版本 8 修订包 7 或更新版本。 在这种情况下,客户机无法连接至服务器。要允许进行连接,必须将客户机升级 到版本 8,或者将网关级别升级到版本 8 修订包 6 或更早版本。 直接 I/O(DIO)和并发 I/O(CIO)支持 直接 I/O(DIO)可以提高内存性能,因为它不必在文件系统级别进行高速缓存。 此过程减少了 CPU 开销,从而使更多内存可用于数据库实例。 并发 I/O(CIO)不但具有 DIO 的优点,而且还减轻了写访问权的序列化。 DB2 Universal Database(DB2 通用数据库,UDB)在 AIX 上支持 DIO 和 CIO; 而在 HP-UX、Solaris Operating Environment、Linux 和 Windows 上支持 DIO。 关键字 NO FILE SYSTEM CACHING 和 FILE SYSTEM CACHING 是 CREATE 和 ALTER TABLESPACE SQL 语句的一部分,它允许您指定对每个表空间是使用 DIO 还是 CIO。 当 NO FILE SYSTEM CACHING 有效时,DB2 UDB 尽可能尝试使用 CIO。在不支持 CIO 的情况下(例如,如果使用了 JFS),则使用 DIO 代替。 有关更多信息,参阅位于以下 URL 的文章“Improve database performance on file system containers in IBM DB2 UDB Stinger using Concurrent I/O on AIX”: http://www.ibm.com/developerworks/db2/library/techarticle/dm-0408lee/ 分发器技术和自动进行客户机重新路由 以下信息是《管理指南:实现》 附录 B『使用自动客户机重新路由』的一部分: DB2 Universal Database(DB2 通用数据库)Linux 版、UNIX 版、 版和 Windows 版的自动客户机重新路由功能允许客户机应用程序在与服务器通信中断时通过以 下方法进行恢复:自动重新建立客户机与服务器之间的数据库连接,从而使应用 程序能够继续工作,并将发生中断的情况降到最低程度。 当从客户机连接至服务器失败时,客户机的重新连接请求将由分发器或分派器( 例如,WebSphere EdgeServer)分发给已定义的一组系统 可以在类似下面的环境中使用分发器技术: 客户机 --> 分发器技术 -->(DB2 Connect 服务器 1 或 DB2 Connect 服务器 2 )--> DB2 z/OS 版 其中: * 分发器技术组件具有 TCP/IP 主机名 DThostname * DB2 Connect 服务器 1 具有 TCP/IP 主机名 GWYhostname1 * DB2 Connect 服务器 2 具有 TCP/IP 主机名 GWYhostname2 * DB2 z/OS 服务器具有 TCP/IP 主机名 zOShostname 客户机是使用 DThostname 来进行编目的,以便利用分发器技术来访问任何一个 DB2 Connect 服务器。加入分发器技术就可以决定是使用 GWYhostname1 还是 GWYhostname2。一旦作出了决定,客户机就可以与这两个 DB2 Connect 网关的其 中一个网关进行直接套接字连接。一旦与所选择的 DB2 Connect 服务器建立了套 接字连接,您就建立了客户机至 DB2 Connect 服务器,该服务器至 DB2 z/OS 的 典型连接。 例如,假定分发器选择 GWYhostname2。这将生成以下环境: 客户机 --> DB2 Connect 服务器 2 --> DB2 z/OS 如果发生任何通信故障,分发器不会重试任何连接。如果想在这样的环境中对数 据库启用“自动客户机重新路由”功能,则应该将 DB2 Connect 服务器(DB2 Connect 服务器 1 或 DB2 Connect 服务器 2)中相关联的一个或多个数据库的 备用服务器设置为分发器(DThostname)。然后,如果 DB2 Connect 服务器 1 由于任何原因而锁定,则会触发“自动客户机重新路由”,并且在分发器同时作 为主服务器和备用服务器的情况下重试客户机连接。此选项允许您使用“DB2 自 动客户机重新路由”功能来组合和维护分发器功能。将备用服务器设置为除了分 发器主机名以外的主机仍然将为客户机提供“自动客户机重新路由”功能。但是, 客户机将与已定义的备用服务器建立直接连接,从而未使用分发器技术,这就 消除了分发器及其所带来的价值。 “自动客户机重新路由”将拦截下列 sqlcode: * sqlcode -20157 * sqlcode -1768(原因码 = 7) 有关在 DB2 Connect 服务器上进行编目的自动客户机重新路由注意事项 考虑涉及到与 DB2 Connect 服务器的备用服务器连接时,需要考虑下列两项: * 第一个注意事项涉及到使用 DB2 Connect 服务器代表远程和本地客户机访问 主机或 iSeries 数据库。在这种情况下,系统数据库目录条目中的备用服务 器连接信息可能会变得混乱。为使混乱程度降至最低,考虑在系统数据库目录 中编目两个条目来表示同一主机或 iSeries 数据库。为远程客户机编目一个 条目,为本地客户机编目另一个条目。 * 第二个注意事项是从目标服务器返回的备用服务器信息仅保留在高速缓存中。 如果 DB2 进程终止,高速缓存信息将会丢失,因此备用服务器信息也会丢失。 本地系统帐户支持(Windows) 在本地系统帐户(LSA)的上下文中运行的应用程序在所有 Windows 平台上都受 支持,但是 Windows ME 除外。 由两部分组成的用户标识支持 CONNECT 语句和 ATTACH 命令支持由两部分组成的用户标识。符合 SAM 的用户标 识的限定符为 NetBIOS 式名称,最大长度为 15 个字符。此功能在 Windows ME 上不受支持。 有关 Kerberos 支持的更多信息 Linux 先决条件 文档中报告的有关 Linux Kerberos 支持的先决条件的信息不准确。提供的 DB2 Kerberos 安全性插件对于带有 IBM Network Authentication Service(NAS)1.4 Client 的 Red Hat Enterprise Linux Advanced Server 3 是受支持的。 zSeries 和 iSeries 兼容性 对于与 zSeries 和 iSeries 的连接,必须使用 AUTHENTICATION KERBEROS 参数 编目数据库并且必须显式指定 TARGET PRINCIPAL 参数名。 zSeries 和 iSeries 都不支持相互认证。 Windows 问题 * 因为 Windows 检测和报告某些错误的方式的关系,下列情况将导致意外客户 机安全性插件错误(SQL30082N, rc=36): * 到期帐户 * 无效密码 * 到期密码 * 管理员强制进行的密码更改 * 禁用帐户 而且,在所有情况下,DB2 管理日志或 db2diag.log 都将指示“登录失败” 或“登录被拒绝”。 * 如果还在本地定义了域帐户名,显式指定域名和密码的连接将失败并显示以下 错误: 不能与“本地安全性权限”联系 该错误是最先定位本地用户的 Windows 造成的。解决方案是在连接字符串中 完全限定该用户。例如: name@DOMAIN.IBM.COM * Windows 帐户的名称中不能包括 @ 字符,因为该字符被 DB2 Kerberos 插件 用作域分隔符。 * 在与非 Windows 平台互操作时,确保所有 Windows 域服务器帐户和所有 Windows 客户机帐户被配置为使用 DES 加密。如果用于启动 DB2 服务的帐户 未配置为使用 DES 加密,则 DB2 服务器将无法接受 Kerberos 上下文。特别 是,DB2 Universal Database(DB2 通用数据库)将会失败并带有意外服务器 插件错误,而且会记录 AcceptSecurityContext API 返回 SEC_I_CONTINUTE_ NEEDED(0x00090312L)。 要确定 Windows 帐户是否配置为使用 DES 加密,查看活动目录下的帐户配置 。如果帐户属性已更改,可能需要重新启动。 * 如果客户机和服务器都在 Windows 上,则可在本地系统帐户下启动 DB2 服务 。但是,如果客户机和服务器在不同域中,则连接可能会失败并带有无效目标 主体名称错误。变通方法是在客户机上按以下格式使用全限定服务器主机名和 标准域名显式编目目标主体名称: host/@ 例如: host/myhost.domain.ibm.com@DOMAIN.IBM.COM 否则,必须在有效域帐户下启动 DB2 服务。 管理:性能 新的系统环境变量(Linux) 修订包 8 中添加了 DB2_MAPPED_BASE 和 DB2DBMSADDR 系统环境变量。 仅建议高级用户才使用这些注册表变量。 DB2_MAPPED_BASE 变量名 DB2_MAPPED_BASE 值 0 OR(十六进制)31 位和 32 位地址范围中的虚拟地址 OR NULL(未 设置) 操作系统 x86 上的 Linux 和 zSeries 上的 Linux(31 位) 描述 DB2_MAPPED_BASE 注册表变量可以用来增大可用于 DB2 Universal Database(DB2 通用数据库,UDB)的邻接虚拟地址空间量,这是通过 重新定位特定进程的共享库的连接地址来实现的。邻接虚拟地址空间对 于使可用于 DB2 UDB 的数据库共享内存量达到最大化是很重要的。此 变量仅对于将 mapped_base 文件包括在 proc 文件系统中的进程标识 目录的分发有效。 如果未设置此变量,则 DB2 UDB 将尝试把共享库重新定位至虚拟地址 0x20000000。 如果新地址将共享库放在地址空间中较低的位置,则还可以将该注册表 变量设置为 31 位和 32 位地址空间范围内的任何虚拟地址(十六进制)。 注: 不正确的地址会导致 DB2 UDB 产生严重问题,这些问题包括无法 启动 DB2 UDB,甚至无法连接至数据库。不正确的地址就是与内 存中已经在使用的区域相冲突的地址或者是预先指定为用于其它 某些用途的地址。要解决此问题,可使用以下命令来将 DB2_MAPPED_BASE 变量重新设置为 NULL: db2set DB2_MAPPED_BASE= 以下消息在 db2diag.log 文件中可能会多次出现,这是因为对每个逻 辑节点都需要进行一次此更改: ADM0506I DB2 已自动将“mapped_base”内核参数从 “0x40000000(hex) 1073741824(dec)”更新为建议值 “0x20000000(hex) 536870912(dec)”。 仅当成功设置了该注册表变量时才会出现此消息,并且它将包括共享库 被重新定位至的地址。 DB2DBMSADDR 变量名 DB2DBMSADDR 值 0x09000000 到 0xB0000000 范围内的虚拟地址,其增量为 0x10000 操作系统 x86 上的 Linux 和 zSeries 上的 Linux(31 位) 描述 以十六进制格式指定缺省数据库共享内存地址。 注: 不正确的地址会导致 DB2 UDB 产生严重问题,这些问题包括无法 启动 DB2 UDB,甚至无法连接至数据库。不正确地址的示例就是 与内存中已经在使用的区域相冲突的地址或者是预先指定为用于 其它某些用途的地址。要解决此问题,可使用以下命令来将 DB2DBMSADDR 变量重新设置为 NULL: db2set DB2DBMSADDR= 可以将此变量与 DB2_MAPPED_BASE 一起设置,也可以单独设置此变量, 以便精细调整 DB2 UDB 进程的地址空间布局。此变量将把实例共享 内存的位置从它在虚拟地址 0x10000000 的当前位置更改为给定的新值。 新增通信注册表变量 已在版本 8.2 中添加了 DB2TCP_CLIENT_RCVTIMEOUT 注册表变量。 表 11. 通信变量 +---------------------------+-------------+---------------------------+ | 变量名 | 操作系统 | 值 | +---------------------------------------------------------------------+ | 描述 | +---------------------------+-------------+---------------------------+ | DB2TCP_CLIENT_RCVTIMEOUT | 所有 | 缺省值为 0(未设置) | | | | 值:0 至 32767 秒 | +---------------------------------------------------------------------+ | 指定 TCP/IP 接收操作中客户机等待数据的秒数。 | | 如果注册表变量未设置或已设置为零,则没有超时。如果 TCP/IP 接收在超 | | 时值到期之前返回数据,则应用程序将如常继续。如果超时值到期仍未返回 | | 数据,则连接关闭。 | | | | 注: 此注册表变量仅适用于 DB2 客户机和 DB2 网关的客户端。它不适用于 | | DB2 服务器。 | +---------------------------------------------------------------------+ 新增性能变量 已在版本 8.2 中添加了 DB2_LARGE_PAGE_MEM 性能变量。 表 12. 性能变量 +---------------------------+-------------+---------------------------+ | 变量名 | 操作系统 | 值 | +---------------------------------------------------------------------+ | 描述 | +---------------------------+-------------+---------------------------+ | DB2_LARGE_PAGE_MEM | 仅 AIX 5.x | 缺省值为 NULL | | | 64 位 | 使用 * 指示应使用大页内存 | | | | 的所有适用内存区域或者应 | | | Linux | 使用大页内存的特定内存区 | | | | 域的用逗号分隔的列表。可 | | | | 用区域根据操作系统有所变 | | | | 化。在 64 位 AIX 5.x 上, | | | | 可指定下列区域:DB、DBMS | | | | 或 PRIVATE。在 Linux 上, | | | | 可指定以下区域:DB。 | +---------------------------------------------------------------------+ | 大页内存仅对于 DB2 Universal Database(DB2 通用数据库,UDB)AIX 5L | | 版 64 位版和 DB2 UDB Linux 版才是受支持的。 | | DB2_LARGE_PAGE_MEM 注册表变量用于在 AIX 5.x 或带有适当内核支持的任 | | 何 Linux 体系结构上运行时启用大页支持。此注册表变量不推荐使用 | | DB2_LGPAGE_BP 注册表变量,该变量只能用于对数据库共享内存区域启用大 | | 页内存。现在,可通过设置 DB2_LARGE_PAGE_MEM=DB 启用大页内存。提到使 | | 用 DB2_LGPAGE_BP 注册表变量启用大页的任何说明可被视为设置 DB2_LARGE | | _PAGE_MEM=DB。 | | 大页的使用主要是为了改进性能以获取高性能计算应用程序。使用大量虚拟 | | 内存的密集内存存取型应用程序可以通过使用大页来提高性能。为使 DB2 | | UDB 能够使用大页,必须先将操作系统配置为使用大页。 | | 启用大专用页将显著增加 DB2 UDB 内存使用量,而每个 DB2 UDB 代理进程 | | 将至少消耗 1 个大页(16MB)的物理内存。要对 64 位 DB2 UDB AIX 版上 | | 的代理进程专用内存启用大页(DB2_LARGE_PAGE_MEM=PRIVATE 设置),除了 | | 在操作系统上配置大页之外,还必须满足下列条件: | | * 实例所有者必须拥有 CAP_BYPASS_RAC_VMM 和 CAP_PROPOGATE 功能。 | | * 内核必须支持允许进程在运行时修改其页大小的接口。 . | | 在 64 位 DB2 UDB AIX 版上,启用此变量将降低共享内存段的大小,使数据 | | 库内存的需求降至最低。缺省情况是创建 64 GB 内存段:有关更多详细信息 | | ,请参阅数据库共享内存大小(database_memory)数据库配置参数。这将避 | | 免在 RAM 中插入过量的共享内存。 | | 通过设置此变量,动态增加总数据库共享内存配置(例如,增加缓冲池的大 | | 小)的能力将受到限制。 | | 在 Linux 上,还需要有 libcap.so 库可用。必须先安装此库才能使此选项 | | 起作用。如果此选项已打开,且该库不在系统上,则 DB2 UDB 将禁用大内核 | | 页并继续如常运作。 | | 在 Linux 上,要验证大内核页是否可用,发出以下命令: | | cat /proc/meminfo | | | | 如果可用,应出现下列三行(带有不同数字,这取决于在机器上配置的内存 | | 量): | | HugePages_Total: 200 | | HugePages_Free: 200 | | Hugepagesize: 16384 KB | | | | 如果没看到这几行,或者如果 HugePages_Total 为 0,则需要配置操作系统 | | 或内核。 | +---------------------------------------------------------------------+ SQL 编译器变量 以下更新适用于《管理指南:性能》的附录 A『DB2 注册表和环境变量』中的主 题“SQL 编译器变量”: 当 DB2 编译器变量 DB2_MINIMIZE_LISTPREFETCH 和 DB2_INLIST_TO_NLJN 的其 中一个变量或两个变量都设置为 ON 时,它们都保持活动,即使指定了 REOPT(ONCE) 也是如此。 配置参数更新 以下是对配置参数文档的更新: 认证 - 认证类型 认证类型(认证)数据库管理器配置参数还接受下列值: * DATA_ENCRYPT 服务器接受加密的 SERVER 认证方案和用户数据的加密。认证与 SERVER_ENCRYPT 的工作方式完全相同。 当使用此认证类型时,以下用户数据是加密的: * SQL 语句。 * SQL 程序变量数据。 * 来自处理 SQL 语句的服务器的输出数据并且包括对数据的描述。 * 从查询获得的某些或所有应答集数据。 * 大对象(LOB)数据流动。 * SQLDA 描述符。 * DATA_ENCRYPT_CMP 服务器接受加密的 SERVER 认证方案和用户数据的加密。另外,此认证类型允 许与不支持 DATA_ENCRYPT 认证类型的较早产品兼容。这些产品允许使用 SERVER_ENCRYPT 认证类型来进行连接,并且不对用户数据进行加密。支持新 的认证类型的产品必须使用该认证类型。此认证类型仅在服务器的数据库管理 器配置文件中有效,而在 CATALOG DATABASE 命令上使用该认证类型是无效的。 util_impact_lim - 实例影响策略 从 DB2 Universal Database(DB2 通用数据库)版本 8.2 开始,实例影响策略 (util_impact_lim)数据库管理器配置参数的缺省值就从 100 更改为 10。 sysadm_group、sysmaint_group、sysctrl_group 和 sysmon_group 在所有平台上,下列数据库管理器配置参数全部都可以接受长度为 30 个字节 (或更少)的组名: * 系统管理权限组名(sysadm_group) * 系统维护权限组名(sysmaint_group) * 系统控制权限组名(sysctrl_group) * 系统监视权限组名(sysmon_group) “数据库管理器配置参数总结”这一主题中的表包含这些数据库管理器配置参数 的不正确的数据类型。所有情况下的正确值都是 char(30)。 estore_seg_sz - 扩展存储器内存段大小 在基于 Windows 的平台上,扩展存储器内存段大小数据库(estore_seg_size) 配置参数的最大大小为 16 777 216。 hadr_timeout - HADR 超时值 HADR 超时值(hadr_timeout)数据库配置参数的正确上限为 4 294 967 295。 locklist - 锁定列表的最大存储器 锁定列表的最大存储器(locklist)数据库配置参数的文档指出仅对本地客户机 服务的 Windows 64 位和 32 位服务器的最大值为 60 000。此值是不正确的,应 该为 524 288。 num_db_backups - 数据库备份数 数据库备份数(num_db_backups)数据库配置参数的值的范围不正确。正确范围是 0 到 32 767。 SQLDBCONF 数据库配置参数文件 从 DB2 Universal Database(DB2 通用数据库,UDB)版本 8.1 到版本 8.2 之 后, DB2 UDB 将使用新的 16 KB 数据库配置参数文件,其名称为 SQLDBCONF。 (在版本 8.1 中,数据库配置参数文件只有 4 KB,其名称为 SQLDBCON)。 对 DB2_HASH_JOIN 缺省值的更改 从版本 8.1 开始,注册表变量 DB2_HASH_JOIN 缺省情况下将设置为 ON。 应该使用散列连接变量,但是需要调整它才能获得最佳性能。 如果可以避免散列循环和溢出至磁盘,则散列连接性能将是最佳的。要调整散列 连接性能,估计可用于 sheapthres 参数的最大内存量,然后调整 sortheap 参 数。增大该参数的值,以尽可能避免存在太多散列循环和磁盘溢出,但是,不要 达到 sheapthres 参数指定的限制。 有关更多信息,请参阅《管理指南:性能》手册中的“连接方法”主题。 不推荐使用 DB2NTNOCACHE 注册表变量 先前通过 DB2NTNOCACHE 实现的功能可通过在 CREATE TABLESPACE 或 ALTER TABLESPACE 语句上指定 NO FILE SYSTEM CACHING 子句在表空间级别实现。有关 用法的详细信息,参阅 SQL Reference。DB2NTNOCACHE 注册表变量在将来的发行 版中会被除去。 说明表和说明信息的组织 说明表可能对多个用户是公共的。但是,可对一个用户定义这些说明表,并可对 使用相同名称的每个其它用户定义别名以指向定义的表。或者,可在 SYSTOOLS 模式下定义说明表。如果在用于动态 SQL 的用户会话标识或用于静态 SQL 的语 句授权标识下未发现任何其它说明表或别名,则说明设施将缺省为 SYSTOOLS 模 式。共享公用说明表的每个用户必须对那些表有插入许可权。公用说明表的读许 可权通常也应限于分析说明信息的用户。 捕获说明信息的准则 如果在编译 SQL 语句时请求说明数据,则捕获该数据。考虑您期望在请求说明数 据时如何使用捕获的信息。 捕获说明表中的信息 * 动态 SQL 语句: 在下列任何一种情况下捕获说明表信息: * 将 CURRENT EXPLAIN MODE 专用寄存器设置为: * YES:SQL 编译器捕获说明数据并执行该 SQL 语句。 * EXPLAIN:SQL 编译器捕获说明数据但不执行该 SQL 语句。 * RECOMMEND INDEXES:SQL 编译器捕获说明数据,而建议的索引将放置在 ADVISE_INDEX 表中,但不会执行该 SQL 语句。 * EVALUATE INDEXES:SQL 编译器使用用户放置在 ADVISE_INDEX 表中的 索引进行求值。在 EVALUATE INDEXES 方式中,说明所有动态语句,就 象这些虚拟索引是可用的。如果虚拟索引可提高语句性能的话,SQL 编 译器将选择使用虚拟索引。否则,忽略这些索引。要了解已提出的索引 是否有用,复查 EXPLAIN 结果。 * REOPT:当主机变量、专用寄存器或参数标记的实际值可用时,SQL 编 译器会在执行时进行语句重新优化期间捕获静态或动态 SQL 语句的说 明数据。 * 已在 BIND 或 PREP 命令上指定了 EXPLAIN ALL 选项。SQL 编译器在运行 时捕获动态 SQL 的说明数据,即使 CURRENT EXPLAIN MODE 专用寄存器设 置为 NO 时也是如此。SQL 语句还会执行查询并返回查询结果。 db2CfgGet API 中的附加返回码 collate_info 参数 整理信息参数仅可使用 db2CfgGet API 显示。它不能通过命令行处理器或控制中 心来显示。 配置类型 数据库 参数类型 参考 此参数提供 260 个字节的数据库整理信息。前面 256 个字节指定数据库整理顺 序,其中字节“n”包含代码点的排序权重,该代码点在数据库代码页中的基本十 进制表示为“n”。 最后 4 个字节包含关于整理顺序类型的内部信息。collate_info 的最后 4 个字 节是整数。该整数依据平台的字节存储顺序。可能的值包括: * 0 - 该顺序包含非唯一权重 * 1 - 该顺序包含所有唯一权重 * 2 - 该顺序是标识顺序,其字符串是按字节进行比较的。 * 3 - 顺序为 NLSCHAR,用于对 TIS620-1(代码页 874)泰国语数据库中的字 符进行排序。 * 4 - 顺序为 IDENTITY_16BIT,实现“CESU-8 Compatibility Encoding Scheme for UTF-16: 8-Bit”算法,该算法是在 Unicode Technical Consortium Web 站点 http://www.unicode.org上的 Unicode Technical Report #26 中指定的。 * X'8001' - 顺序为 UCA400_NO,实现基于 Unicode 标准版本 4.00 的 UCA (Unicode 整理算法)其规范化隐式设置为 ON。 * X'8002' - 顺序为 UCA400_LTH,实现基于 Unicode 标准版本 4.00 的 UCA (Unicode 整理算法)并按皇家泰国语字典顺序对所有泰国语字符排序。 * X'8003' - 顺序为 UCA400_LSK,实现基于 Unicode 标准版本 4.00 的 UCA (Unicode 整理算法)并对所有斯洛伐克语字符作适当排序。 如果使用此内部类型信息,在另一平台上检索有关数据库的信息时需要考虑字节 反向。 可在创建数据库时指定整理顺序。 自动设置缺省预取大小和更新缺省值 从 DB2 Universal Database(DB2 通用数据库,UDB)版本 8.2 开始,可以对表 空间使用 AUTOMATIC 预取大小。当表空间的容器数更改时,DB2 UDB 将自动更新 预取大小。 扩展了 DB2_PARALLEL_IO 注册表变量的语法,以识别具有不同 I/O 并行性特征 的容器。通过扩展的语法,不同表空间的容器可以具有不同的 I/O 并行性特征。 当为表空间指定的预取大小为 AUTOMATIC 时,将使用每个表空间的 I/O 并行性 特征。如果启用了 DB2_PARALLEL_IO 注册表变量,但是未使用用于标识表空间的 特定 I/O 并行性特征的扩展语法,则假定使用缺省级别的并行性。缺省级别为 RAID 5(6+1)。 仅当发出了用于更改表空间的预取大小或者更改容器数(使用 ADD/DROP/BEGIN NEW STRIPE SET/ADD TO NEW STRIPE SET)的 ALTER TABLESPACE 语句时,才会 刷新优化器使用的预取大小信息。如果每个容器注册表设置的物理磁盘数发生更 改,则应该发出 ALTER TABLESPACE
PREFETCHSIZE AUTOMATIC 语句来刷新优化器信息(除非已经发出了用于刷新优化器信息的 ALTER TABLESPACE 语句)。 如果重定向或者复原了表空间以使用不同的容器数,则通过发出 ALTER TABLESPACE
PREFETCHSIZE AUTOMATIC 语句来刷新优化器信 息。如果一个表空间中具有多个条形集,则使用条形集中的最大容器数来计算预 取大小。如果通过计算获得的预取大小超过了最大大小(32 767 页),则将小于 最大值的容器数的最大乘积用作预取大小。 在 DB2 UDB 企业服务器版环境中,如果表空间使用 AUTOMATIC 预取大小,则不 同数据库分区上的预取大小可能不同。这种情况是存在的,这是因为不同的数据 库分区用来计算预取大小的容器数可能不同。为了生成查询存取方案,优化器使 用数据库分区组中的第一个分区的预取大小。 管理:计划 受支持的地域代码和代码页 在《管理指南:计划》中的附录 B『本地语言支持(NLS)』中,称为『受支持的 地域代码和代码页』的主题中具有用于每个地域的表。有两个表需要更新: 中国(PRC),地域标识:CN 应该将“中国(PRC),地域标识:CN”表中的 Linux GBK 行的代码页从 1383 更改为 1386。 即,该行的内容现在应该为: 1386 D-4 GBK 86 zh_CN.GBK Linux 日本,地域标识:JP 已修订了“日本,地域标识:JP”的表。 应该除去以下语言环境名: 954 D-1 eucJP 81 japanese Solaris 以下是修订之后的表: 表 13. 日本,地域标识:JP +----------+----------+----------+----------+---------------+---------+ | 代码页 | 组 | 代码集 | 地域代码 | 语言环境 | 操作系 | | | | | | | 统 | +----------+----------+----------+----------+---------------+---------+ | 932 | D-1 | IBM-932 | 81 | Ja_JP | AIX | +----------+----------+----------+----------+---------------+---------+ | 943 | D-1 | IBM-943 | 81 | Ja_JP | AIX | +----------+----------+----------+----------+---------------+---------+ | 954 | D-1 | IBM-euc | 81 | ja_JP | AIX | | | | JP | | | | +----------+----------+----------+----------+---------------+---------+ | 1208 | N-1 | UTF-8 | 81 | JA_JP | AIX | +----------+----------+----------+----------+---------------+---------+ | 930 | D-1 | IBM-930 | 81 | - | 主机 | +----------+----------+----------+----------+---------------+---------+ | 939 | D-1 | IBM-939 | 81 | - | 主机 | +----------+----------+----------+----------+---------------+---------+ | 5026 | D-1 | IBM-502 | 81 | - | 主机 | | | | 6 | | | | +----------+----------+----------+----------+---------------+---------+ | 5035 | D-1 | IBM-503 | 81 | - | 主机 | | | | 5 | | | | +----------+----------+----------+----------+---------------+---------+ | 1390 | D-1 | | 81 | - | 主机 | +----------+----------+----------+----------+---------------+---------+ | 1399 | D-1 | | 81 | - | 主机 | +----------+----------+----------+----------+---------------+---------+ | 954 | D-1 | eucJP | 81 | ja_JP.eucJP | HP-UX | +----------+----------+----------+----------+---------------+---------+ | 5039 | D-1 | SJIS | 81 | ja_JP.SJIS | HP-UX | +----------+----------+----------+----------+---------------+---------+ | 954 | D-1 | EUC-JP | 81 | ja_JP | Linux | +----------+----------+----------+----------+---------------+---------+ | 932 | D-1 | IBM-932 | 81 | - | OS/2(R) | +----------+----------+----------+----------+---------------+---------+ | 942 | D-1 | IBM-942 | 81 | - | OS/2 | +----------+----------+----------+----------+---------------+---------+ | 943 | D-1 | IBM-943 | 81 | - | OS/2 | +----------+----------+----------+----------+---------------+---------+ | 954 | D-1 | eucJP | 81 | ja | SCO | +----------+----------+----------+----------+---------------+---------+ | 954 | D-1 | eucJP | 81 | ja_JP | SCO | +----------+----------+----------+----------+---------------+---------+ | 954 | D-1 | eucJP | 81 | ja_JP.EUC | SCO | +----------+----------+----------+----------+---------------+---------+ | 954 | D-1 | eucJP | 81 | ja_JP.eucJP | SCO | +----------+----------+----------+----------+---------------+---------+ | 943 | D-1 | IBM-943 | 81 | ja_JP.PCK | Solaris | +----------+----------+----------+----------+---------------+---------+ | 954 | D-1 | eucJP | 81 | ja | Solaris | +----------+----------+----------+----------+---------------+---------+ | 1208 | N-1 | UTF-8 | 81 | ja_JP.UTF-8 | Solaris | +----------+----------+----------+----------+---------------+---------+ | 943 | D-1 | IBM-943 | 81 | - | Windows | +----------+----------+----------+----------+---------------+---------+ | 1394 | D-1 | | 81 | - | | +----------+----------+----------+----------+---------------+---------+ DB2 Universal Database(DB2 通用数据库)支持的 XA 功能 DB2 Universal Database(DB2 通用数据库,UDB)支持在 X/Open CAE 规范分布 式事务处理:XA 规范中定义的 XA91 规范,但是以下情况例外: * 异步服务 XA 规范允许该接口使用异步服务,这样可以在稍后的某个时间检查请求的结 果。数据库管理器要求以同步方式调用请求。 * 注册 XA 接口允许以两种方式来注册 RM:静态注册和动态注册。DB2 UDB 支持动态 和静态注册。DB2 UDB 提供了两个开关: * db2xa_switch,用于动态注册 * db2xa_switch_static,用于静态注册 * 关联迁移 DB2 UDB 不支持控制线程之间的事务迁移。 XA 开关用法和位置 由于 XA 接口需要,数据库管理器提供类型为 xa_switch_t 的 db2xa_switch 和 db2xa_switch_static 外部 C 变量以将 XA 切换结构返回至 TM。不是返回各种 XA 函数的地址,而是返回下列字段: 字段 值 名称 数据库管理器的产品名。例如,DB2 UDB AIX 版。 标志 对于 db2xa_switch,已设置 TMREGISTER | TMNOMIGRATE 显式声明 DB2 UDB 使用动态注册,且 TM 不应该使用关联迁 移。隐式声明不支持异步操作。 对于 db2xa_switch_static,已设置 TMNOMIGRATE 显式声明 DB2 UDB 使用动态注册,且 TM 不应该使用关联迁 移。隐式声明不支持异步操作。 版本 必须为零。 使用 DB2 Universal Database(DB2 通用数据库)XA 开关 XA 体系结构要求“资源管理器”(RM)提供开关,该开关使“XA 事务管理器” (TM)可以访问 RM 的 xa_ 例程。RM 开关使用称为 xa_switch_t 的结构。该开 关包含 RM 的名称、指向 RM 的 XA 入口点的非 NULL 指针、标志和版本号。 基于 Linux 和 UNIX 的系统 可以通过下面两种方法之一来获得 DB2 Universal Database(DB2 通用数据库, UDB)的开关: * 通过更高一级的间接方法。在 C 程序中,可在使用 db2xa_switch 之前定义 以下的宏来完成: #define db2xa_switch (*db2xa_switch) #define db2xa_switch_static (*db2xa_switch) (在使用 db2xa_switch 或 db2xa_switch_static 之前)。 * 通过调用 db2xacic 或 db2xacicst DB2 UDB 提供这些 API,它们返回 db2xa_switch 或 db2xa_switch_static 结构的地址。此函数的原型为: struct xa_switch_t * SQL_API_FN db2xacic( ) struct xa_switch_t * SQL_API_FN db2xacicst( ) 不管使用哪种方法,必须将应用程序与 libdb2 链接。 Windows NT 指向 xa_switch 结构 db2xa_switch 或 db2xa_switch_static的指针作为 DLL 数据导出。这意味着使用此结构的 Windows NT 应用程序必须以下列三种方法中 的一种来引用它: * 通过更高一级的间接方法。在 C 程序中,可在使用 db2xa_switch 之前定义 以下的宏来完成: #define db2xa_switch (*db2xa_switch) #define db2xa_switch_static (*db2xa_switch) (在使用 db2xa_switch 或 db2xa_switch_static 之前)。 * 如果使用 Microsoft Visual C++ 编译器,则可以将 db2xa_switch 或 db2xa_switch_static 定义为: extern __declspec(dllimport) struct xa_switch_t db2xa_switch extern __declspec(dllimport) struct xa_switch_t db2xa_switch_static * 通过调用 db2xacic 或 db2xacicst DB2 UDB 提供此 API,它返回 db2xa_switch 或 db2xa_switch_static 结构 的地址。此函数的原型为: struct xa_switch_t * SQL_API_FN db2xacic( ) struct xa_switch_t * SQL_API_FN db2xacicst( ) 使用这些方法中任何一种,必须将应用程序与 db2api.lib 链接。 C 代码示例 以下代码说明在任何 DB2 UDB 平台上通过 C 程序访问 db2xa_switch 或 db2xa_switch_static 的不同方法。务必将应用程序与适当的库链接。 #include #include struct xa_switch_t * SQL_API_FN db2xacic( ); #ifdef DECLSPEC_DEFN extern __declspec(dllimport) struct xa_switch_t db2xa_switch; #else #define db2xa_switch (*db2xa_switch) extern struct xa_switch_t db2xa_switch; #endif main( ) { struct xa_switch_t *foo; printf ( "%s \n", db2xa_switch.name ); foo = db2xacic(); printf ( "%s \n", foo->name ); return ; } 更新了 xa_open 字符串格式的 TPM 和 tp_mon_name 值 已经更新了下表中的内部设置列,以反映控制线程(TOC)的设置。 TOC 是所有 DB2 UDB XA 连接绑定至的实体。 * 将它的值设置为 T 时,在特定 OS 线程下建立的所有 DB2 UDB XA 连接对于 该线程都是唯一的。多个线程不能共享 DB2 UDB 连接。每个 OS 线程必须建 立它自己的一组 DB2 UDB XA 连接。 * 将它的值设置为 P 时,所有 DB2 UDB XA 连接对于 OS 进程都是唯一的,并且 OS 线程之间可以共享所有 XA 连接。 表 14. TPM 和 tp_mon_name 的有效值 +-----------------+----------------+----------------------------------+ | TPM 值 | TP 监视器产品 | 内部设置 | +-----------------+----------------+----------------------------------+ | CICS(R) | IBM TxSeries | AXLIB=libEncServer(对于 Windows | | | CICS | ) | | | | =/usr/lpp/encina/lib/libEncServ | | | | er | | | | (对于 Linux 和 UNIX 系统) | | | | HOLD_CURSOR=T | | | | CHAIN_END=T | | | | SUSPEND_CURSOR=F | | | | TOC=T | +-----------------+----------------+----------------------------------+ | ENCINA | IBM TxSeries | AXLIB=libEncServer(对于 Windows | | | Encina(R) 监视 | ) | | | 器 | =/usr/lpp/encina/lib/libEncServ | | | | er | | | | (对于 Linux 和 UNIX 系统) | | | | HOLD_CURSOR=F | | | | CHAIN_END=T | | | | SUSPEND_CURSOR=F | | | | TOC=T | +-----------------+----------------+----------------------------------+ | MQ | IBM | AXLIB=mqmax | | | MQSeries(R) | (对于 Windows) | | | | =/usr/mqm/lib/libmqmax_r.a | | | | (对于 AIX 线程应用程序) | | | | =/usr/mqm/lib/libmqmax.a | | | | (对于 AIX 非线程应用程序) | | | | =/opt/mqm/lib/libmqmax.so | | | | (对于 Solaris) | | | | =/opt/mqm/lib/libmqmax_r.sl | | | | (对于 HP 线程应用程序) | | | | =/opt/mqm/lib/libmqmax.sl | | | | (对于 HP 非线程应用程序) | | | | =/opt/mqm/lib/libmqmax_r.so | | | | (对于 Linux 线程应用程序) | | | | =/opt/mqm/lib/libmqmax.so | | | | (对于 Linux 非线程应用程序) | | | | HOLD_CURSOR=F | | | | CHAIN_END=F | | | | SUSPEND_CURSOR=F | | | | TOC=P | +-----------------+----------------+----------------------------------+ | CB | IBM Component | AXLIB=somtrx1i(对于 Windows) | | | Broker | =libsomtrx1 | | | | (对于 Linux 和 UNIX 系统) | | | | HOLD_CURSOR=F | | | | CHAIN_END=T | | | | SUSPEND_CURSOR=F | | | | TOC=T | +-----------------+----------------+----------------------------------+ | SF | IBM San | AXLIB=ibmsfDB2 | | | Francisco | HOLD_CURSOR=F | | | | CHAIN_END=T | | | | SUSPEND_CURSOR=F | | | | TOC=T | +-----------------+----------------+----------------------------------+ | TUXEDO | BEA Tuxedo | AXLIB=libtux | | | | HOLD_CURSOR=F | | | | CHAIN_END=F | | | | SUSPEND_CURSOR=F | | | | TOC=T | +-----------------+----------------+----------------------------------+ | MTS | Microsoft | 不必为 MTS 配置 DB2 UDB。DB2 UDB | | | Transaction | 的 ODBC 驱动程序会自动检测 MTS。 | | | Server | | +-----------------+----------------+----------------------------------+ | JTA | Java 事务 API | 不必为 Enterprise Java Server(E | | | | JS)(例如,IBM WebSphere)配置 | | | | DB2 UDB。DB2 UDB 的 JDBC 驱动程 | | | | 序会自动检测此环境。因此,忽略此 | | | | TPM 值。 | +-----------------+----------------+----------------------------------+ 对代码页 923 和 924 激活转换表 下表包含与代码页 923 和 924 相关联的代码页转换表文件的列表。每个文件的 格式都是 XXXXYYYY.cnv 或 ibmZZZZZ.ucs,其中 XXXXX 是源代码页号,而 YYYY 是目标代码页号。文件 ibmZZZZZ.ucs 支持代码页 ZZZZZ 和 Unicode 之间的转 换。 过程 要激活特定代码页转换表,将该转换表文件重命名或复制至其新名称(如在第二 列中所示)。 例如,要在将 8859-1/15(Latin 1/9)客户机连接至 Windows 1252 数据库时支 持欧元符号,则需要重命名或复制 sqllib/conv/ 目录中的下列代码页转换表文 件: * 从 09231252.cnv 重命名或复制至 08191252.cnv * 从 12520923.cnv 重命名或复制至 12520819.cnv * 从 ibm00923.ucs 重命名或复制至 ibm00819.ucs 表 15. 代码页 923 和 924 的转换表文件 +----------------------------------+----------------------------------+ | sqllib/conv/ 目录中的 923 和 924 | 新名称 | | 转换表文件 | | +----------------------------------+----------------------------------+ | 04370923.cnv | 04370819.cnv | +----------------------------------+----------------------------------+ | 08500923.cnv | 08500819.cnv | +----------------------------------+----------------------------------+ | 08600923.cnv | 08600819.cnv | +----------------------------------+----------------------------------+ | 08630923.cnv | 08630819.cnv | +----------------------------------+----------------------------------+ | 09230437.cnv | 08190437.cnv | +----------------------------------+----------------------------------+ | 09230850.cnv | 08190850.cnv | +----------------------------------+----------------------------------+ | 09230860.cnv | 08190860.cnv | +----------------------------------+----------------------------------+ | 09231043.cnv | 08191043.cnv | +----------------------------------+----------------------------------+ | 09231051.cnv | 08191051.cnv | +----------------------------------+----------------------------------+ | 09231114.cnv | 08191114.cnv | +----------------------------------+----------------------------------+ | 09231252.cnv | 08191252.cnv | +----------------------------------+----------------------------------+ | 09231275.cnv | 08191275.cnv | +----------------------------------+----------------------------------+ | 09241252.cnv | 10471252.cnv | +----------------------------------+----------------------------------+ | 10430923.cnv | 10430819.cnv | +----------------------------------+----------------------------------+ | 10510923.cnv | 10510819.cnv | +----------------------------------+----------------------------------+ | 11140923.cnv | 11140819.cnv | +----------------------------------+----------------------------------+ | 12520923.cnv | 12520819.cnv | +----------------------------------+----------------------------------+ | 12750923.cnv | 12750819.cnv | +----------------------------------+----------------------------------+ | ibm00923.ucs | ibm00819.ucs | +----------------------------------+----------------------------------+ 启用欧元的代码页的转换表文件 下列各表列示已增强为支持欧元货币符号的转换表。如果想要禁用欧元支持,下 载标题为“转换表文件”的列中指示的转换表文件。 阿拉伯语 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 864, 17248 | 1046, 9238 | 08641046.cnv, | | | | 10460864.cnv, | | | | IBM00864.ucs | +-------------------+----------------------+--------------------------+ | 864, 17248 | 1256, 5352 | 08641256.cnv, | | | | 12560864.cnv, | | | | IBM00864.ucs | +-------------------+----------------------+--------------------------+ | 864, 17248 | 1200, 1208, 13488, | IBM00864.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ | 1046, 9238 | 864, 17248 | 10460864.cnv, | | | | 08641046.cnv, | | | | IBM01046.ucs | +-------------------+----------------------+--------------------------+ | 1046, 9238 | 1089 | 10461089.cnv, | | | | 10891046.cnv, | | | | IBM01046.ucs | +-------------------+----------------------+--------------------------+ | 1046, 9238 | 1256, 5352 | 10461256.cnv, | | | | 12561046.cnv, | | | | IBM01046.ucs | +-------------------+----------------------+--------------------------+ | 1046, 9238 | 1200, 1208, 13488, | IBM01046.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ | 1089 | 1046, 9238 | 10891046.cnv, | | | | 10461089.cnv | +-------------------+----------------------+--------------------------+ | 1256, 5352 | 864, 17248 | 12560864.cnv, | | | | 08641256.cnv, | | | | IBM01256.ucs | +-------------------+----------------------+--------------------------+ | 1256, 5352 | 1046, 9238 | 12561046.cnv, | | | | 10461256.cnv, | | | | IBM01256.ucs | +-------------------+----------------------+--------------------------+ | 1256, 5352 | 1200, 1208, 13488, | IBM01256.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ 波罗的语 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 921, 901 | 1257 | 09211257.cnv, | | | | 12570921.cnv, | | | | IBM00921.ucs | +-------------------+----------------------+--------------------------+ | 921, 901 | 1200, 1208, 13488, | IBM00921.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ | 1257, 5353 | 921, 901 | 12570921.cnv, | | | | 09211257.cnv, | | | | IBM01257.ucs | +-------------------+----------------------+--------------------------+ | 1257, 5353 | 922, 902 | 12570922.cnv, | | | | 09221257.cnv, | | | | IBM01257.ucs | +-------------------+----------------------+--------------------------+ | 1257, 5353 | 1200, 1208, 13488, | IBM01257.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ 白俄罗斯语 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 1131, 849 | 1251, 5347 | 11311251.cnv, | | | | 12511131.cnv | +-------------------+----------------------+--------------------------+ | 1131, 849 | 1283 | 11311283.cnv | +-------------------+----------------------+--------------------------+ Cyrillic +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 855, 872 | 866, 808 | 08550866.cnv, | | | | 08660855.cnv | +-------------------+----------------------+--------------------------+ | 855, 872 | 1251, 5347 | 08551251.cnv, | | | | 12510855.cnv | +-------------------+----------------------+--------------------------+ | 866, 808 | 855, 872 | 08660855.cnv, | | | | 08550866.cnv | +-------------------+----------------------+--------------------------+ | 866, 808 | 1251, 5347 | 08661251.cnv, | | | | 12510866.cnv | +-------------------+----------------------+--------------------------+ | 1251, 5347 | 855, 872 | 12510855.cnv, | | | | 08551251.cnv, | | | | IBM01251.ucs | +-------------------+----------------------+--------------------------+ | 1251, 5347 | 866, 808 | 12510866.cnv, | | | | 08661251.cnv, | | | | IBM01251.ucs | +-------------------+----------------------+--------------------------+ | 1251, 5347 | 1124 | 12511124.cnv, | | | | 11241251.cnv, | | | | IBM01251.ucs | +-------------------+----------------------+--------------------------+ | 1251, 5347 | 1125, 848 | 12511125.cnv, | | | | 11251251.cnv, | | | | IBM01251.ucs | +-------------------+----------------------+--------------------------+ | 1251, 5347 | 1131, 849 | 12511131.cnv, | | | | 11311251.cnv, | | | | IBM01251.ucs | +-------------------+----------------------+--------------------------+ | 1251, 5347 | 1200, 1208, 13488, | IBM01251.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ 爱沙尼亚语 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 922, 902 | 1257 | 09221257.cnv, | | | | 12570922.cnv, | | | | IBM00922.ucs | +-------------------+----------------------+--------------------------+ | 922, 902 | 1200, 1208, 13488, | IBM00922.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ 希腊语 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 813, 4909 | 869, 9061 | 08130869.cnv, | | | | 08690813.cnv, | | | | IBM00813.ucs | +-------------------+----------------------+--------------------------+ | 813, 4909 | 1253, 5349 | 08131253.cnv, | | | | 12530813.cnv, | | | | IBM00813.ucs | +-------------------+----------------------+--------------------------+ | 813, 4909 | 1200, 1208, 13488, | IBM00813.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ | 869, 9061 | 813, 4909 | 08690813.cnv, | | | | 08130869.cnv | +-------------------+----------------------+--------------------------+ | 869, 9061 | 1253, 5349 | 08691253.cnv, | | | | 12530869.cnv | +-------------------+----------------------+--------------------------+ | 1253, 5349 | 813, 4909 | 12530813.cnv, | | | | 08131253.cnv, | | | | IBM01253.ucs | +-------------------+----------------------+--------------------------+ | 1253, 5349 | 869, 9061 | 12530869.cnv, | | | | 08691253.cnv, | | | | IBM01253.ucs | +-------------------+----------------------+--------------------------+ | 1253, 5349 | 1200, 1208, 13488, | IBM01253.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ 希伯莱语 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 856, 9048 | 862, 867 | 08560862.cnv, | | | | 08620856.cnv, | | | | IBM0856.ucs | +-------------------+----------------------+--------------------------+ | 856, 9048 | 916 | 08560916.cnv, | | | | 09160856.cnv, | | | | IBM0856.ucs | +-------------------+----------------------+--------------------------+ | 856, 9048 | 1255, 5351 | 08561255.cnv, | | | | 12550856.cnv, | | | | IBM0856.ucs | +-------------------+----------------------+--------------------------+ | 856, 9048 | 1200, 1208, 13488, | IBM0856.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ | 862, 867 | 856, 9048 | 08620856.cnv, | | | | 08560862.cnv, | | | | IBM00862.ucs | +-------------------+----------------------+--------------------------+ | 862, 867 | 916 | 08620916.cnv, | | | | 09160862.cnv, | | | | IBM00862.ucs | +-------------------+----------------------+--------------------------+ | 862, 867 | 1255, 5351 | 08621255.cnv, | | | | 12550862.cnv, | | | | IBM00862.ucs | +-------------------+----------------------+--------------------------+ | 862, 867 | 1200, 1208, 13488, | IBM00862.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ | 916 | 856, 9048 | 09160856.cnv, | | | | 08560916.cnv | +-------------------+----------------------+--------------------------+ | 916 | 862, 867 | 09160862.cnv, | | | | 08620916.cnv | +-------------------+----------------------+--------------------------+ | 1255, 5351 | 856, 9048 | 12550856.cnv, | | | | 08561255.cnv, | | | | IBM01255.ucs | +-------------------+----------------------+--------------------------+ | 1255, 5351 | 862, 867 | 12550862.cnv, | | | | 08621255.cnv, | | | | IBM01255.ucs | +-------------------+----------------------+--------------------------+ | 1255, 5351 | 1200, 1208, 13488, | IBM01255.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ Latin1 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 437 | 850, 858 | 04370850.cnv, | | | | 08500437.cnv | +-------------------+----------------------+--------------------------+ | 850, 858 | 437 | 08500437.cnv, | | | | 04370850.cnv | +-------------------+----------------------+--------------------------+ | 850, 858 | 860 | 08500860.cnv, | | | | 08600850.cnv | +-------------------+----------------------+--------------------------+ | 850, 858 | 1114, 5210 | 08501114.cnv, | | | | 11140850.cnv | +-------------------+----------------------+--------------------------+ | 850, 858 | 1275 | 08501275.cnv, | | | | 12750850.cnv | +-------------------+----------------------+--------------------------+ | 860 | 850, 858 | 08600850.cnv, | | | | 08500860.cnv | +-------------------+----------------------+--------------------------+ | 1275 | 850, 858 | 12750850.cnv, | | | | 08501275.cnv | +-------------------+----------------------+--------------------------+ Latin2 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 852, 9044 | 1250, 5346 | 08521250.cnv, | | | | 12500852.cnv | +-------------------+----------------------+--------------------------+ | 1250, 5346 | 852, 9044 | 12500852.cnv, | | | | 08521250.cnv, | | | | IBM01250.ucs | +-------------------+----------------------+--------------------------+ | 1250, 5346 | 1200, 1208, 13488, | IBM01250.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ 简体中文 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 837, 935, 1388 | 1200, 1208, 13488, | 1388ucs2.cnv | | | 17584 | | +-------------------+----------------------+--------------------------+ | 1386 | 1200, 1208, 13488, | 1386ucs2.cnv, | | | 17584 | ucs21386.cnv | +-------------------+----------------------+--------------------------+ 繁体中文 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 937, 835, 1371 | 950, 1370 | 09370950.cnv, | | | | 0937ucs2.cnv | +-------------------+----------------------+--------------------------+ | 937, 835, 1371 | 1200, 1208, 13488, | 0937ucs2.cnv | | | 17584 | | +-------------------+----------------------+--------------------------+ | 1114, 5210 | 850, 858 | 11140850.cnv, | | | | 08501114.cnv | +-------------------+----------------------+--------------------------+ 泰国语 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 874, 1161 | 1200, 1208, 13488, | IBM00874.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ 土耳其语 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 857, 9049 | 1254, 5350 | 08571254.cnv, | | | | 12540857.cnv | +-------------------+----------------------+--------------------------+ | 1254, 5350 | 857, 9049 | 12540857.cnv, | | | | 08571254.cnv, | | | | IBM01254.ucs | +-------------------+----------------------+--------------------------+ | 1254, 5350 | 1200, 1208, 13488, | IBM01254.ucs | | | 17584 | | +-------------------+----------------------+--------------------------+ 乌克兰语 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 1124 | 1251, 5347 | 11241251.cnv, | | | | 12511124.cnv | +-------------------+----------------------+--------------------------+ | 1125, 848 | 1251, 5347 | 11251251.cnv, | | | | 12511125.cnv | +-------------------+----------------------+--------------------------+ Unicode +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 813, 4909 | IBM00813.ucs | | 13488, 17584 | | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 862, 867 | IBM00862.ucs | | 13488, 17584 | | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 864, 17248 | IBM00864.ucs | | 13488, 17584 | | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 874, 1161 | IBM00874.ucs | | 13488, 17584 | | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 921, 901 | IBM00921.ucs | | 13488, 17584 | | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 922, 902 | IBM00922.ucs | | 13488, 17584 | | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 1046, 9238 | IBM01046.ucs | | 13488, 17584 | | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 1250, 5346 | IBM01250.ucs | | 13488, 17584 | | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 1251, 5347 | IBM01251.ucs | | 13488, 17584 | | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 1253, 5349 | IBM01253.ucs | | 13488, 17584 | | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 1254, 5350 | IBM01254.ucs | | 13488, 17584 | | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 1255, 5351 | IBM01255.ucs | | 13488, 17584 | | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 1256, 5352 | IBM01256.ucs | | 13488, 17584 | | | +-------------------+----------------------+--------------------------+ | 1200, 1208, | 1386 | ucs21386.cnv, | | 13488, 17584 | | 1386ucs2.cnv | +-------------------+----------------------+--------------------------+ 越南语 +-------------------+----------------------+--------------------------+ | 数据库服务器 | 数据库客户机 | 转换表文件 | | CCSID/CPGID | CCSID/CPGID | | +-------------------+----------------------+--------------------------+ | 1258, 5354 | 1129, 1163 | 12581129.cnv | +-------------------+----------------------+--------------------------+ API 参考 SYNCPOINT 选项支持 从版本 8 开始,忽略了 sqlesetc、sqleqryc 和 sqlaprep API 的 SYNCPOINT 选项;该选项仅可用于保持向后兼容性。 SQLEDBDESC 结构的新增字段 在 sqlecrea API 中,已添加新字段以支持直接 I/O。 字段名 Unsigned char sqlfscaching 描述 文件系统高速缓存 值 0 对于当前表空间,文件系统高速缓存为 ON 1 对于当前表空间,文件系统高速缓存为 OFF 其它 对于当前表空间,文件系统高速缓存为 ON 对 SQLB-TBSPQRY-DATA 结构中的新增字段的更正 已在 SQLB-TBSPQRY-DATA 结构中添加新字段 unsigned char fsCaching。这一新 字段支持直接 I/O。尽管保留位的大小被指为 32 位,但正确的大小为 31 位。 应用程序开发:构建和运行应用程序 定制 SQL 过程的预编译和绑定选项 可通过使用以下命令设置实例范围的 DB2 注册表变量 DB2_SQLROUTINE_PREPOPTS 来定制 SQL 过程的预编译和绑定选项: db2set DB2_SQLROUTINE_PREPOPTS= 除版本 8.2 中提到的选项之外,还允许使用 REOPT 选项: BLOCKING {UNAMBIG | ALL | NO} DATETIME {DEF | USA | EUR | ISO | JIS | LOC} DEGREE {1 | degree-of-parallelism | ANY} DYNAMICRULES {BIND | RUN} EXPLAIN {NO | YES | ALL} EXPLSNAP {NO | YES | ALL} FEDERATED {NO | YES} INSERT {DEF | BUF} ISOLATION {CS | RR | UR | RS | NC} QUERYOPT optimization-level REOPT {ALWAYS | NONE | ONCE} VALIDATE {RUN | BIND} 必需的 C/C++ 编译选项(Linux on PowerPC 64 位) 编译选项“-m64”是 DB2 Universal Database(DB2 通用数据库)Linux on PowerPC(R) 版上的 64 位实例构建 DB2 C/C++ 应用程序和例程所必需的。 Micro Focus COBOL 存储过程的编译和链接命令(HP-UX) DB2 Universal Database(DB2 通用数据库)版本 8.2 文档中显示的用于在 HP-UX 上使用 Micro Focus COBOL 构建存储过程的编译和链接命令不正确。实际 脚本 sqllib/samples/cobol_mf/bldrtn中包含的编译命令是正确的。编译和链接 命令现在合并成单个命令,使用 -y选项来指定期望的输出是共享库。 Micro Focus COBOL 的最低支持版本(HP-UX) HP-UX 上的 Micro Focus COBOL 编译器和运行时的最低支持版本为 Micro Focus Server Express 2.2 - Service Pack 1及修订包 Fixpack22.02_14 for HP-UX PA-RISC 11.x (32/64bit)。此修订包可从 Micro Focus Support Line Web 站点 http://supportline.microfocus.com 获取 。 为 Micro Focus COBOL 存储过程设置环境变量(Windows) 为在 Windows 上运行 Micro Focus COBOL 外部例程,需要确保 Micro Focus COBOL 环境变量永久设置为系统变量。 过程 要将环境变量设置为系统变量: 1. 打开“控制面板” 2. 选择系统 3. 选择高级选项卡 4. 单击环境变量 5. 将这些变量添加至系统变量列表 在用户变量列表中、在命令提示符下或在脚本中设置环境变量是不够的。 应用程序开发:调用级接口(CLI) MapBigintCDefault CLI/ODBC 配置关键字 关键字描述: 指定 BIGINT 列和参数标记的缺省 C 类型。 db2cli.ini 关键字语法: MapBigintCDefault = 0 | 1 | 2 缺省设置: BIGINT 数据的缺省 C 类型表示法为 SQL_C_BIGINT。 使用说明: MapBigintCDefault 控制在对 BIGINT 列和参数标记指定 SQL_C_DEFAULT 时使用 的 C 类型。此关键字应主要用于 Microsoft 应用程序,例如,Microsoft Access, 它不能处理 8 字节整数。按如下所示设置 MapBigintCDefault: * 0 - 用于缺省 SQL_C_BIGINT C 类型表示法 * 1 - 用于 SQL_C_CHAR C 类型表示法 * 2 - 用于 SQL_C_WCHAR C 类型表示法 此关键字会影响 CLI 函数的行为,其中 SQL_C_DEFAULT 可能被指定为 C 类型, 例如,SQLBindParameter()、SQLBindCol() 和 SQLGetData()。 DescribeOutputLevel CLI/ODBC 配置关键字 关键字描述: 设置 CLI 驱动程序在准备或描述请求期间请求的输出列描述信息的级 别。 db2cli.ini 关键字语法: DescribeOutputLevel = 0 | 1 | 2 | 3 缺省设置: 请求表 16 的级别 2 中列示的描述信息。 使用说明: 此关键字控制 CLI 驱动程序在准备或描述请求期间请求的信息量。缺省情况下, 当服务器接收到描述请求时,它将返回包含在结果集列的表 16 的级别 2 中包含 的信息。但是,应用程序可能不需要此信息的全部或可能需要其它信息。 将 DescribeOutputLevel 关键字设置为能够满足客户机应用程序需要的级别可改 进性能,因为在客户机与服务器之间传送的描述数据被限制为应用程序需要的最 小量。如果 DescribeOutputLevel 设置被设置得过低,可能会对应用程序的功能 有影响(这取决于应用程序的需求)。用来检索描述信息的 CLI 函数在此情况下 不会失败,但返回的信息可能不完整。 DescribeOutputLevel 的受支持设置包括: * 0 - 不会对客户机应用程序返回任何描述信息 * 1 - 在级别 1(请参阅表 16)中归类的描述信息将返回至客户机应用程序 * 2 -(缺省值)在级别 2(请参阅表 16)中归类的描述信息将返回至客户机 应用程序 * 3 - 在级别 3(请参阅表 16)中归类的描述信息将返回至客户机应用程序 下表列示形成服务器在接收到准备或描述请求时返回的描述信息的各个字段。这 些字段被分组成若干级别,而 DescribeOutputLevel CLI/ODBC 配置关键字控制 CLI 驱动程序请求哪些级别的描述信息。 注: 并非所有级别的描述信息都受到 DB2 服务器的支持。所有级别的描述信息在 下列 DB2 服务器上受支持:DB2 Universal Database(DB2 通用数据库, UDB)Linux 版、UNIX 版和 Windows 版版本 8 和更新版本、DB2 UDB z/OS 版版本 8 和更新版本以及 DB2 UDB iSeries 版 V5R3 和更新版本。所有 其它 DB2 服务器仅支持将 DescribeOutputLevel 设置为 2 或 0。 表 16. 描述信息的级别 +-----------------------+----------------------+----------------------+ | 级别 1 | 级别 2 | 级别 3 | +-----------------------+----------------------+----------------------+ | SQL_DESC_COUNT | 级别 1 的所有字段以 | 级别 1 和级别 2 的所 | | SQL_COLUMN_COUNT | 及: | 有字段 | | SQL_DESC_TYPE | SQL_DESC_NAME | 以及: | | SQL_DESC_CONCISE_TYPE | SQL_DESC_LABEL | SQL_DESC_BASE_COLUMN | | SQL_COLUMN_LENGTH | SQL_COLUMN_NAME | _NAME | | SQL_DESC_OCTET_LENGTH | SQL_DESC_UNNAMED | SQL_DESC_UPDATABLE | | SQL_DESC_LENGTH | SQL_DESC_TYPE_NAME | SQL_DESC_AUTO_UNIQUE | | SQL_DESC_PRECISION | SQL_DESC_DISTINCT_TY | _VALUE | | SQL_COLUMN_PRECISION | PE | SQL_DESC_SCHEMA_NAME | | SQL_DESC_SCALE | SQL_DESC_REFERENCE_T | SQL_DESC_CATALOG_NAM | | SQL_COLUMN_SCALE | YPE | E | | SQL_DESC_DISPLAY_SIZE | SQL_DESC_STRUCTURED_ | SQL_DESC_TABLE_NAME | | SQL_DESC_NULLABLE | TYPE | SQL_DESC_BASE_TABLE_ | | SQL_COLUMN_NULLABLE | SQL_DESC_USER_TYPE | NAME | | SQL_DESC_UNSIGNED | SQL_DESC_LOCAL_TYPE_ | | | SQL_DESC_SEARCHABLE | NAME | | | SQL_DESC_LITERAL_SUFF | SQL_DESC_USER_DEFINE | | | IX | D_ | | | SQL_DESC_LITERAL_PREF | TYPE_CODE | | | IX | | | | SQL_DESC_CASE_SENSITI | | | | VE | | | | SQL_DESC_FIXED_PREC_S | | | | CALE | | | +-----------------------+----------------------+----------------------+ 应用程序开发:客户机应用程序编程 OleDbReportIsLongForLongTypes CLI/ODBC 配置关键字 关键字描述: 使用 DBCOLUMNFLAGS_ISLONG 来使 OLE DB 标志 LONG 数据类型。 db2cli.ini 关键字语法: OleDbReportIsLongForLongTypes = 0 | 1 等价语句属性: SQL_ATTR_REPORT_ISLONG_FOR_LONGTYPES_OLEDB 缺省设置: LONG 类型(LONG VARCHAR、LONG VARCHAR FOR BIT DATA、LONG VARGRAPHIC 和 LONG VARGRAPHIC FOR BIT DATA)没有设置 DBCOLUMNFLAGS_ISLONG 标志,这可能会导致在 WHERE 子句中使用这些 列。 使用说明: OLE DB 的客户机游标引擎和 OLE DB .NET 数据提供程序的 CommandBuilder 根据 IBM DB2 OLE DB 提供程序提供的列信息来生成更新和删除语句。如果生成的语句 在 WHERE 子句中包含 LONG 类型,则该语句将失败,这是因为不能在具有等号运 算符的搜索中使用 LONG 类型。将关键字 OleDbReportIsLongForLongTypes 设置 为 1 将使 IBM DB2 OLE DB 提供程序报告设置了 DBCOLUMNFLAGS_ISLONG 标志的 LONG 类型(LONG VARCHAR、LONG VARCHAR FOR BIT DATA、LONG VARGRAPHIC 和 LONG VARGRAPHIC FOR BIT DATA)。这可防止在 WHERE 子句中使用 LONG 列。 OleDbSQLColumnsSortByOrdinal CLI/ODBC 配置关键字 关键字描述: 使 OLE DB 的 IDBSchemaRowset::GetRowset(DBSCHEMA_COLUMNS) 返回 按 ORDINAL_POSITION 列排序的行集。 db2cli.ini 关键字语法: OleDbSQLColumnsSortByOrdinal = 0 | 1 等价语句属性: SQL_ATTR_SQLCOLUMNS_SORT_BY_ORDINAL_OLEDB 缺省设置: IDBSchemaRowset::GetRowset(DBSCHEMA_COLUMNS) 返回按 TABLE_ CATALOG、TABLE_SCHEMA、TABLE_NAME 和 COLUMN_NAME 列排序的行集。 使用说明: Microsoft OLE DB 规范要求 IDBSchemaRowset::GetRowset(DBSCHEMA_COLUMNS) 返回按 TABLE_CATALOG、TABLE_SCHEMA、TABLE_NAME 和 COLUMN_NAME 列排序的 行集。IBM DB2 OLE DB 提供程序遵守该规范。但是,通常已经编写了使用 Microsoft ODBC 桥提供程序(MSDASQL)的应用程序来获取按 ORDINAL_POSITION 排序的行集。将 OleDbSQLColumnsSortByOrdinal 关键字设置为 1 将使提供程序 返回按 ORDINAL_POSITION 排序的行集。 IBM DB2 OLE DB 提供程序的 DB2 数据源属性组 IBM DB2 OLE DB 提供程序已经添加了新的属性组:DB2 数据源。DB2 数据源的属 性集为 DBPROPSET_DB2DATASOURCE。 属性集的 GUID 为 {0x8a80412a,0x7d94,0x4fec,{0x87,0x3e,0x6c,0xd1,0xcd,0x42,0x0d,0xcd}} DBPROPSET_DB2DATASOURCE 具有三种属性: * DB2PROP_REPORTISLONGFORLONGTYPES * DB2PROP_RETURNCHARASWCHAR * DB2PROP_SORTBYORDINAL DB2PROP_REPORTISLONGFORLONGTYPES #define DB2PROP_REPORTISLONGFORLONGTYPES 4 属性组:DB2 数据源 属性集:DB2PROPSET_DATASOURCE 类型:VT_BOOL 典型 R/W:R/W 描述:报告 Long 类型的 IsLong OLE DB 的客户机游标引擎和 OLE DB .NET 数据提供程序的 CommandBuilder 根据 IBM DB2 OLE DB 提供程序提供的列信息来生成更新和删除语句。如果生成的语句 在 WHERE 子句中包含 LONG 类型,则该语句将失败,这是因为不能在具有等号运 算符的搜索中使用 LONG 类型。 表 17. DB2PROP_REPORTISLONGFORLONGTYPES 值 +----------------+----------------------------------------------------+ | 值 | 含义 | +----------------+----------------------------------------------------+ | VARIANT_TRUE | 将使 IBM DB2 OLE DB 提供程序报告设置了 | | | DBCOLUMNFLAGS_ISLONG 标志的 LONG 类型(LONG VARCHA | | | R、LONG VARCHAR FOR BIT DATA、LONG VARGRAPHIC 和 | | | LONG VARGRAPHIC FOR BIT DATA)。这可防止在 WHERE | | | 子句中使用 LONG 列。 | +----------------+----------------------------------------------------+ | VARIANT_FALSE | 没有为 LONG VARCHAR、LONG VARCHAR FOR BIT DATA、LO | | | NG VARGRAPHIC 和 LONG VARGRAPHIC FOR BIT DATA 设置 | | | DBCOLUMNFLAGS_ISLONG。这是缺省情况。 | +----------------+----------------------------------------------------+ DB2PROP_RETURNCHARASWCHAR #define DB2PROP_RETURNCHARASWCHAR 2 属性组:DB2 数据源 属性集:DB2PROPSET_DATASOURCE 类型:VT_BOOL 典型 R/W:R/W 描述:作为 WChar 来返回 Char 表 18. DB2PROP_RETURNCHARASWCHAR 值 +----------------+----------------------------------------------------+ | 值 | 含义 | +----------------+----------------------------------------------------+ | VARIANT_TRUE | OLE DB 将类型为 CHAR、VARCHAR、LONG VARCHAR 或 | | | CLOB 的列描述为 DBTYPE_WSTR。ISequentialStream 中 | | | 隐含的数据的代码页将为 UCS-2。这是缺省值。 | +----------------+----------------------------------------------------+ | VARIANT_FALSE | OLE DB 将类型为 CHAR、VARCHAR、LONG VARCHAR 或 | | | CLOB 的列描述为 DBTYPE_STR。ISequentialStream 中隐 | | | 含的数据的代码页将为客户机的本地代码页。 | +----------------+----------------------------------------------------+ DB2PROP_SORTBYORDINAL #define DB2PROP_SORTBYORDINAL 3 属性组:DB2 数据源 属性集:DB2PROPSET_DATASOURCE 类型:VT_BOOL 典型 R/W:R/W 描述:按序数排序 Microsoft OLE DB 规范要求 IDBSchemaRowset::GetRowset(DBSCHEMA_COLUMNS) 返回按 TABLE_CATALOG、TABLE_SCHEMA、TABLE_NAME 和 COLUMN_NAME 列排序的 行集。IBM DB2 OLE DB 提供程序遵守该规范。但是,通常已经编写了使用 Microsoft ODBC 桥提供程序(MSDASQL)的应用程序来获取按 ORDINAL_POSITION 排序的行集。 表 19. DB2PROP_SORTBYORDINAL 值 +----------------+----------------------------------------------------+ | 值 | 含义 | +----------------+----------------------------------------------------+ | VARIANT_TRUE | 将使提供程序返回按 ORDINAL_POSITION 排序的行集。 | +----------------+----------------------------------------------------+ | VARIANT_FALSE | 将使提供程序返回按 TABLE_CATALOG、TABLE_SCHEMA、TA | | | BLE_NAME 和 COLUMN_NAME 排序的行集。这是缺省值。 | +----------------+----------------------------------------------------+ DB2Binder 语法图中不正确的 URL 语法 在“安装 DB2 通用 JDBC 驱动程序”这一主题中,DB2Binder 语法图不正确地定 义了 DB2 通用 JDBC 驱动程序的 URL 语法。下图中显示了 DB2Binder 的 URL 语法的正确表示: DB2Binder 语法 +----------------------------------------------------------------------+ | >>-java--com.ibm.db2.jcc.DB2Binder------------------------------> | | | | >---url jdbc:db2://server-+---------+-/database-----------------> | | '-:--port-' | | | | >---user user-ID---password password--+---------------+---------> | | '--size integer-' | | | | >--+-----------------------------+------------------------------> | | '--collection collection-name-' | | | | >--+-------------------------------+--+-------+---------------->< | | | .-,------------. | '--help-' | | | V | | | | '--tracelevel ---trace-option-+-' | +----------------------------------------------------------------------+ 重新路由 DB2 通用 JDBC 驱动程序客户机 DB2 Universal Database(DB2 通用数据库,UDB)Linux 版、UNIX 版、 版和 Windows 版中的自动客户机重新路由功能允许客户机应用程序从与服务器的通信 断开恢复,以便它们能继续处理最小的中断。 每当服务器锁定时,连接至该服务器的每个客户机都会接收到一个通信错误,它 会终止连接并导致应用程序错误。如果可用性非常重要,则应具有冗余设置或故 障转移支持。(故障转移是在一个服务器失效时另一个服务器接管操作的能力。 )在任一情况下,DB2 通用 JDBC 驱动程序客户机将尝试重新建立与新服务器或 原始服务器的连接,这可能在故障转移节点上运行。重新建立连接后,应用程序 将接收到 SQLException 异常,通知它事务失败,但是应用程序可以继续进行下 一事务。 限制 * DB2 通用 JDBC 驱动程序客户机重新路由支持仅对使用 javax.sql.DataSource 接口的连接可用。 * 必须在服务器上指定了备用服务器位置之后,客户机应用程序才能从通信中断 恢复。数据库管理员使用 UPDATE ALTERNATE SERVER FOR DATABASE 命令指定 备用服务器。 过程 在数据库管理员在服务器实例中的特定数据库中指定备用服务器位置之后,主服 务器位置和备用服务器位置将在连接时返回至客户机。DB2 通用 JDBC 驱动程序 创建可引用对象 DB2ClientRerouteServerList 的实例,并将该实例存储在它的 瞬态内存中。如果通信中断,DB2 通用 JDBC 驱动程序将尝试使用从服务器返回 的服务器信息来重新建立连接。 clientRerouteServerListJNDIName 数据源属性在客户机上提供附加客户机重新 路由支持;clientRerouteServerListJNDIName 具有两个功能: * 它允许备用服务器信息在 JVM 之间持久存在 * 它提供备用服务器位置以防首次连接至数据库服务器失败 clientRerouteServerListJNDIName 标识对备用服务器信息的 JNDI 资源库中的 DB2ClientRerouteServerList 实例的 JNDI 引用。在成功连接至主服务器之后, clientRerouteServerListJNDIName 提供的备用服务器信息将被来自该服务器的 信息覆盖。如果定义了 clientRerouteServerListJNDIName 属性,则在故障转移 之后,DB2 通用 JDBC 驱动程序将尝试把更新后的信息传播至 JNDI 存储。如果 指定了 clientRerouteServerListJNDIName,则将把在 DB2ClientRerouteServerList 中指定的主服务器信息用于连接。如果未指定主服 务器,则将使用在数据源上指定的 serverName 信息。 DB2ClientRerouteServerList 是具有以下四种属性的可序列化 Java bean: * alternateServerName * alternatePortNumber * primaryServerName * primaryPortNumber 提供了用于访问这些属性的 Getter 和 setter 方法。 DB2ClientRerouteServerList 类的定义为如下所示: package com.ibm.db2.jcc; public class DB2ClientRerouteServerList implements java.io.Serializable, javax.naming.Referenceable { public String[] alternateServerName; public synchronized void setAlternateServerName(String[] alternateServer); public String[] getAlternateServerName(); public int[] alternatePortNumber; public synchronized void setAlternatePortNumber(int[] alternatePortNumberList); public int[] getAlternatePortNumber(); public synchronized void setPrimaryServerName (String primaryServerName); public String getPrimaryServerName (); public synchronized void setPrimaryPortNumber (int primaryPortNumber) public int getPrimaryPortNumber (); } 新建立的故障转移连接是使用原始数据源属性配置的,但是服务器名称和端口号 除外。此外,在原始连接期间修改的任何 DB2 UDB 专用寄存器将在故障转移连接 中使用 DB2 通用 JDBC 驱动程序来重新建立。 在发生通信故障时,DB2 通用 JDBC 驱动程序首先尝试恢复至主服务器。如果恢 复至主服务器失败,驱动程序就会尝试连接至备用位置(故障转移)。重新建立 连接之后,该驱动程序会向应用程序抛出 java.sql.SQLException 及 SQLCODE - 4498,以便对应用程序指示已经自动与备用服务器重新建立了连接。于是该应用 程序重试该事务。 使 DB2ClientRerouteServerList 保持持久的过程 要设置存储器以使 DB2ClientRerouteServerList 保持持久,遵循下列步骤: 1. 创建 DB2ClientRerouteServerList 的实例并将该实例绑定至 JNDI 注册表。 例如: // Create a starting context for naming operations InitialContext registry = new InitialContext(); // Create a DB2ClientRerouteServerList object DB2ClientRerouteServerList address=new DB2ClientRerouteServerList(); // Set the port number and server name for the primary server address.setPrimaryPortNumber(50000); address.setPrimaryServerName("mvs1.sj.ibm.com"); // Set the port number and server name for the alternate server int[] port = {50002}; String[] server = {"mvs3.sj.ibm.com"}; address.setAlternatePortNumber(port); address.setAlternateServerName(server); registry.rebind("serverList", address); 2. 将 DB2ClientRerouteServerList 对象的 JNDI 名称指定给数据源属性 clientRerouteServerListJNDIName。例如: datasource.setClientRerouteServerListJNDIName("serverList"); 定制 DB2 通用 JDBC 驱动程序配置属性 DB2 通用 JDBC 驱动程序配置属性允许您设置具有驱动程序范围作用域的属性值。 这些设置将应用于各个应用程序和数据源实例。可以更改这些设置而不必更改 应用程序源代码或数据源特征。 每个 DB2 通用 JDBC 驱动程序配置属性设置使用以下格式: property=value 如果配置属性以 db2.jcc.override 开头,则该配置属性适用于所有连接并将覆 盖任何具有相同属性名的连接或数据源属性。如果配置属性以 db2.jcc 或 db2.jcc.default 开头,则配置属性值将为缺省值。连接或数据源属性设置将覆 盖该值。 过程 要设置配置属性: * 将配置属性设置为 Java 系统属性。这些设置将覆盖任何其它设置。 对于独立 Java 应用程序,可通过在执行 java 命令时对每个配置属性指定 -Dproperty=value 来将配置属性设置为 Java 系统属性。 * 在您在 db2.jcc.propertiesFile Java 系统属性中指定其名称的资源中设置 配置属性。例如,可对 db2.jcc.propertiesFile 值指定绝对路径名。 对于独立 Java 应用程序,可通过在执行 java 命令时指定 -Ddb2.jcc.propertiesFile=path 选项来设置配置属性。 * 在名为 DB2JccConfiguration.properties 的资源中设置配置属性。标准 Java 资源搜索用于查找 DB2JccConfiguration.properties。仅当未设置 db2.jcc.propertiesFile Java 系统属性时,DB2 通用 JDBC 驱动程序才会搜 索此资源。 DB2JccConfiguration.properties 可能是独立文件,也可能包括在 JAR 文件 中。 如果 DB2JccConfiguration.properties 是独立文件,则 DB2JccConfiguration.properties 的路径必须在 CLASSPATH 并置中。 如果 DB2JccConfiguration.properties 在 JAR 文件中,该 JAR 文件必须在 CLASSPATH 并置中。 可设置下列 DB2 通用 JDBC 驱动程序配置属性。所有属性都是可选的。 db2.jcc.override.traceFile 对 Java 驱动程序代码启用 DB2 通用 JDBC 驱动程序跟踪,并指定跟 踪文件名称所基于的名称。 对 db2.jcc.override.traceFile 属性值指定全限定文件名。 db2.jcc.override.traceFile 属性将覆盖连接或数据源对象的跟踪文 件属性。 例如,对 db2.jcc.override.traceFile 指定以下设置将允许跟踪 DB2 通用 JDBC 驱动程序 Java 代码并记录至名为 /SYSTEM/tmp/jdbctrace 的文件: db2.jcc.override.traceFile=/SYSTEM/tmp/jdbctrace 应在 IBM 软件支持机构的指导下设置跟踪属性。 db2.jcc.sqljUncustomizedWarningOrException 指定 DB2 通用 JDBC 驱动程序在未定制 SQLJ 应用程序运行时所执行 的操作。db2.jcc.sqljUncustomizedWarningOrException 可能具有下 列值: 0 DB2 通用 JDBC 驱动程序不会在未定制 SQLJ 应用程序运行 时生成警告或异常。这是缺省值。 1 DB2 通用 JDBC 驱动程序将在未定制 SQLJ 应用程序运行时 生成警告。 2 DB2 通用 JDBC 驱动程序将在未定制 SQLJ 应用程序运行时 生成异常。 db2secFreeToken 函数已除去 db2secFreeToken 函数(标记拥有的可用内存)不再是 db2secGssapiServerAuthFunctions_1 用户认证插件 API 的一部分。 仔细部署定制安全性插件 如果安全性插件的部署未经过充分编码、复查和测试,则 DB2 Universal Database(DB2 通用数据库,UDB)安装的完整性会受到损坏。DB2 UDB 对于许多 常见类型的故障采取了一些预防措施,但是,它并不能保证在部署用户编写的安 全性插件时具有完整的完整性。 安全性插件 如果要使用您自己的定制安全性插件,可在通过 CLP 发出的连接语句或动态 SQL 语句上使用最多 255 个字符的用户标识。 安全性插件 API 对于 db2secGetGroupsForUser、db2secValidatePassword 和 db2secGetAuthIDs API,输入参数 dbname 可为空,而其对应长度输入参数 dbnamelen 将设置为 0。 安全性插件命名约定(Linux 和 UNIX) 在所有 Linux 和 UNIX 平台上,现在接受将 .so 作为用户编写的安全性插件库 的文件扩展名。 在 AIX 上,安全性插件库可以具有扩展名 .a 或 .so。如果插件库同时存在两个 版本,则使用 .a 版本。 对于 HP-UX on PA-RISC,安全性插件库可以具有扩展名 .sl或 .so。如果插件库 同时存在两个版本,则使用 .sl 版本。 在所有其它 Linux 和 UNIX 平台上,.so 是安全性插件库唯一支持的文件扩展名。 安全性插件库的限制 在 AIX 上,安全性插件库可以具有文件扩展名 .a 或 .so。用于装入插件库的机 制取决于使用哪个扩展名: 具有文件扩展名 .a 的插件库 具有文件扩展名 .a 的插件库被假定为包含共享对象成员的归档。这些 成员必须命名为 shr.o(32 位)或 shr64.o(64 位)。单个归档可同 时包含 32 位和 64 位成员,这允许它在两种类型的平台上进行部署。 例如,要构建 32 位归档式插件库: xlc_r -qmkshrobj -o shr.o MyPlugin.c -bE:MyPlugin.exp ar rv MyPlugin.a shr.o 具有文件扩展名 .so 的插件库 具有文件扩展名 .so 的插件库被假定为动态可装入共享对象。这种对 象是 32 位还是 64 位取决于在构建时使用的编译器和链接程序选项。 例如,要构建 32 位插件库: xlc_r -qmkshrobj -o MyPlugin.so MyPlugin.c -bE:MyPlugin.exp 在除了 AIX 之外的所有平台上,安全性插件库总是被假定为动态可装入的共享对 象。 GSS-API 安全性插件不支持多个流认证 GSS-API 认证仅限于使一个令牌从客户机流至服务器和使一个令牌从服务器流至 客户机。这些令牌是从客户机上的 gss_init_sec_context() 和服务器上的 gss_accept_sec_context() 获得的。尝试更多流的 GSS-API 插件将生成安全性 插件意外错误,从而导致连接失败。 GSS-API 安全性插件不支持消息加密和签名 消息加密和签名在 GSS-API 安全性插件中不可用。 独立应用程序中的事务的隐式结束 所有应用程序终止(正常和异常)隐式回滚未完成的工作单元,不管操作系统如 何都是如此。 分布式事务支持 在 DB2 Universal Database(DB2 通用数据库,UDB)版本 8.2 的“新增内容” 文档中,『DB2 通用 JDBC 驱动程序改进』一节中的分布式事务支持信息中具有 不正确的信息。这一节的最后一句不正确。正确信息应为: 从版本 8.2 开始,DB2 UDB 支持符合 XA 规范的分布式事务处理。此支持实现 Java 2 Platform, Enterprise Edition(J2EE)Java 事务服务(JTS)和 Java 事务 API(JTA)规范。 应用程序开发:服务器应用程序编程 公共语言运行时(CLR)例程执行控制方式(EXECUTION CONTROL 子句) 作为数据库管理员或应用程序开发者,您可能想要通过限制例程在运行时的操作 来保护与 DB2 Universal Database(DB2 通用数据库,UDB)外部例程相关联的 组合件以避免遭到恶意篡改。DB2 .NET CLR 例程支持标识允许例程在运行时执行 的操作类型的执行控制方式的规范。在运行时,DB2 UDB 会检测例程是否尝试执 行超出其指定执行控制方式的作用域的操作,这有助于确定组合件是否受到危害。 要设置 CLR 例程的执行控制方式,在该例程的 CREATE 语句中指定可选 EXECUTION CONTROL 子句。有效方式包括: * SAFE * FILEREAD * FILEWRITE * NETWORK * UNSAFE 要修改现有 CLR 例程中的执行控制方式,执行 ALTER PROCEDURE 或 ALTER FUNCTION 语句。 如果未对 CLR 例程指定 EXECUTION CONTROL 子句,缺省情况下该 CLR 例程会使 用最多限制的执行控制方式 SAFE 运行。使用此执行控制方式创建的例程只能访 问由数据库管理器控制的资源。较少限制的执行控制方式允许例程访问本地文件 系统(FILEREAD 或 FILEWRITE)或网络上的文件。执行控制方式 UNSAFE 指定未 对例程的行为作任何限制。使用 UNSAFE 执行控制方式定义的例程可执行二进制 代码。 这些控制方式表示可允许操作的层次结构,在该层次结构中,较高级别的方式包 括的操作在它下面的级别中是允许的。例如,执行控制方式 NETWORK 允许例程访 问网络上的文件、本地文件系统上的文件以及由数据库管理器控制的资源。尽量 使用最多限制的执行控制方式并避免使用 UNSAFE 方式。 如果 DB2 UDB 在运行时检测到 CLR 例程在尝试其执行控制方式的作用域之外的 操作,DB2 UDB 将返回错误(SQLSTATE 38501)。 只能对 LANGUAGE CLR 例程指定 EXECUTION CONTROL 子句。EXECUTION CONTROL 子句的应用能力的作用域仅限于 .NET CLR 例程本身,并未扩展至它可能调用的 任何其它例程。 公共语言运行时(CLR)例程中的最大十进制精度和小数位 DB2 Universal Database(DB2 通用数据库,UDB)中的 DECIMAL 数据类型的精 度为 31 位,小数位为 28 位。.NET CLR System.Decimal 数据类型被限于 29 位精度和 28 位小数位。因此,DB2 UDB 外部 CLR 例程一定不能将超过 (2^96)-1 的值(可使用 29 位精度和 28 位小数位表示的最高值)指定给 System.Decimal 数据类型变量。如果进行了这种指定,DB2 UDB 将生成运行时错误 (SQLSTATE 22003, SQLCODE -413)。 执行例程 CREATE 语句后,如果 DECIMAL 数据类型参数是使用超过 28 的小数位 定义的,DB2 UDB 将生成错误 (SQLSTATE 42611, SQLCODE -604)。 命令参考 db2inidb - 初始化镜像数据库命令 在发出 db2inidb database as mirror 命令之前,不要发出 db2 connect to database 命令。 在初始化分割镜像数据库之前尝试连接至该数据库将擦除前滚恢复所需的日志文 件。 连接会将数据库设置回暂挂数据库时它所处于的状态。如果在暂挂时数据库被标 记为处于一致状态,则 DB2 Universal Database(DB2 通用数据库)会认为不需 要进行崩溃恢复并且会清空日志以供到将来使用。如果出现这种情况,则尝试前 滚会产生 SQL4970 错误。 db2iupdt 命令的使用说明 从版本 8.2 开始,在使用 db2iupdt 命令更新 DB2 Universal Database(DB2 通用数据库)实例时,必须先停止对该实例运行的所有 DB2 进程。 db2pd - DB2 命令的监视和故障诊断 db2pd 命令的其它参数包括: -hadr 报告高可用性灾难恢复信息。每个已报告元素的描述可在《系统 监视器指南和参考》的『高可用性灾难恢复』一节中找到。 -utilities 报告实用程序信息。每个已报告元素的描述可在《系统监视器指南和参 考》的『实用程序』一节中找到。 db2sqljcustomize 命令的新增参数 db2sqljcustomize 命令有了新参数。 db2sqljcustomize - DB2 SQLJ 概要文件定制程序命令 -storebindoptions 将 -bindoptions 和 -staticpositioned 的值存储在序列化概要文件 中。如果在调用 dbsqljbind 工具时未指定这些值,将使用存储在序列 化概要文件中的值。当使用 .grp文件调用定制程序时,这些值将存储 在各个 .ser 文件中。可使用 db2sqljprint 工具来查看存储的值。 sqlj 命令的新增参数 sqlj 命令有了新参数。 sqlj - DB2 SQLJ 转换程序命令 -db2optimize 指定 SQLJ 转换程序为 DB2 Universal Database(DB2 通用数据库) 而优化的连接上下文类生成代码。此选项将对用户定义的上下文优化代 码,但不会对缺省上下文优化代码。在使用此选项运行 SQLJ 转换程序 时,DB2 通用 JDBC 驱动程序文件 db2jcc.jar 必须在 CLASSPATH 中 以编译生成的 Java 应用程序。 对 SET CLIENT 命令的更新 SET(TM) CLIENT 命令指定后端进程的连接设置。 从版本 8 开始,将忽略此命令的命令参数 SYNCPOINT。为了保持向后兼容性,将 继续包括 SYNCPOINT。 对 PRECOMPILE 命令的更新 PRECOMPILE 命令将处理包含嵌入式 SQL 语句的应用程序源文件。将生成经过修 改的源文件,它包含对 SQL 的主语言调用,并且在缺省情况下将在数据库中创建 程序包。 从版本 8 开始,将忽略此命令的命令参数 SYNCPOINT。为了保持向后兼容性,将 继续包括 SYNCPOINT。 对 UPDATE HISTORY FILE 命令的更新 更新历史文件条目中的位置、设备类型或注释。 命令参数 STATUS 指定条目的新状态。 先前的文档不正确地指出 STATUS 命令参数可以具有值“I”,以将该条目标记为 不活动。有效值包括: A 将条目标记为活动的。 E 将条目标记为已到期。 对 EXPORT 和 IMPORT 命令的更新 EXPORT 和 IMPORT 命令的『必需的连接』子节的完整内容为如下所示: 必需的连接 数据库。如果启用了隐式连接,则会与缺省数据库建立连接。从 Linux、UNIX、 或 Windows 客户机对 Linux、UNIX、 或 Windows 数据库服务器的实用程序访问 必须是通过引擎直接连接,而不能是通过 DB2 Connect 网关或回送来连接。 对 LOAD 命令的更新 INDEXING MODE 参数的 AUTOSELECT 值的完整信息为如下所示: INDEXING MODE AUTOSELECT LOAD 实用程序将自动决定是采用 REBUILD 还是 INCREMENTAL 方式。 将根据装入的数据量和索引树的深度来作出决定。与索引树深度相关的 信息存储在索引对象中。RUNSTATS 不需要填充此信息。AUTOSELECT 是 用来建立索引的缺省方式。 LOAD 实用程序的文件类型修饰符 已经更新了对“generatedoverride”修饰符的描述中的 SET INTEGRITY 命令。 还更新了对“usedefaults”修饰符的描述。 更新为如下所示: 表 20. 用于装入的有效文件类型修饰符:所有文件格式 +-------------------+-------------------------------------------------+ | 修饰符 | 描述 | +-------------------+-------------------------------------------------+ | generatedoverride | 此修饰符指示 LOAD 实用程序接受表中所有生成列的 | | | 用户提供数据(与这些类型的列的常见规则相反)。 | | | 在从另一个数据库系统中迁移数据或者从在 | | | ROLLFORWARD DATABASE 命令上使用 RECOVER DROPPED | | | TABLE 选项恢复的数据中装入表时,使用此修饰符会 | | | 很有用。当使用此修饰符时,如果不可空的生成列却 | | | 没有数据或者具有 NULL 数据,则具有这些列的任何 | | | 行都将被拒绝(SQL3116W)。 | | | 注: 当使用此修饰符时,表将处于 CHECK PENDING( | | | 检查暂挂)状态。要使表脱离 CHECK PENDING(检查 | | | 暂挂)状态而不验证用户提供的值,可在执行装入操 | | | 作之后发出以下命令: | | | SET INTEGRITY FOR < table-name > GENERATED | | | COLUMN | | | IMMEDIATE UNCHECKED | | | 要使表脱离 CHECK PENDING(检查暂挂)状态并强制 | | | 验证用户提供的值,可在执行装入操作之后发出以下 | | | 命令: | | | SET INTEGRITY FOR < table-name > IMMEDIATE | | | CHECKED. | | | | | | 不能将此修饰符与 generatedmissing 或 | | | generatedignore 修饰符配合使用。 | +-------------------+-------------------------------------------------+ | usedefaults | 如果已经指定了目标表列的源列,但是一个或多个行 | | | 实例不包含任何数据,则会装入缺省值。以下是缺少 | | | 数据的一些示例: | | | * 对于 DEL 文件:为列值指定了两个相邻列定界符 | | | (",,")或者指定了用任意空格数隔开的两个相邻列 | | | 定界符(", ,")。 | | | * 对于 DEL/ASC/WSF 文件:没有足够的列数或者对 | | | 于原始规范来说不是足够长的行。 | | | 注: 对于 ASC 文件,NULL 列值并不被认为是显式缺 | | | 少,也不会使用缺省值来替代 NULL 列值。对于数字 | | | 、日期、时间和时间戳记列,NULL 列值是使用全部为 | | | 空格字符来表示的,或者通过对任何类型的列使用 | | | NULL INDICATOR 来指示列为 NULL。 | | | 在没有使用此选项的情况下,如果源列的行实例中不 | | | 包含任何数据,则会发生下面的其中一种情况: | | | * 对于 DEL/ASC/WSF 文件:如果列是可空的,则会 | | | 装入 NULL。如果列是不可空的,则实用程序将拒绝该 | | | 行。 | +-------------------+-------------------------------------------------+ IMPORT 实用程序的文件类型修饰符 “usedefaults”和“codepage=x”修饰符的描述已更新为如下所示: 表 21. 用于导入的有效文件类型修饰符:所有文件格式 +-------------------+-------------------------------------------------+ | 修饰符 | 描述 | +-------------------+-------------------------------------------------+ | usedefaults | 如果已经指定了目标表列的源列,但是一个或多个行 | | | 实例不包含任何数据,则会装入缺省值。以下是缺少 | | | 数据的一些示例: | | | * 对于 DEL 文件:为列值指定了两个相邻列定界符 | | | (",,")或者指定了用任意空格数隔开的两个相邻列 | | | 定界符(", ,")。 | | | * 对于 DEL/ASC/WSF 文件:没有足够的列数或者对 | | | 于原始规范来说不是足够长的行。 | | | 注: 对于 ASC 文件,NULL 列值并不被认为是显式缺 | | | 少,也不会使用缺省值来替代 NULL 列值。对于数字 | | | 、日期、时间和时间戳记列,NULL 列值是使用全部为 | | | 空格字符来表示的,或者通过对任何类型的列使用 | | | NULL INDICATOR 来指示列为 NULL。 | | | 在没有使用此选项的情况下,如果源列的行实例中不 | | | 包含任何数据,则会发生下面的其中一种情况: | | | * 对于 DEL/ASC/WSF 文件:如果列是可空的,则会 | | | 装入 NULL。如果列是不可空的,则实用程序将拒绝该 | | | 行。 | +-------------------+-------------------------------------------------+ 表 22. 用于导入的有效文件类型修饰符:ASCII 文件格式(ASC/DEL) +-------------------+-------------------------------------------------+ | 修饰符 | 描述 | +-------------------+-------------------------------------------------+ | codepage=x | x 是 ASCII 字符串。该值被解释为输出数据集中的数 | | | 据的代码页。在导入操作期间,将此代码页中的字符 | | | 数据转换为应用程序代码页。 | | | 必须满足下列规则: | | | * 对于纯 DBCS(图形)、混合 DBCS 和 EUC,定界 | | | 符仅限于 x00 到 x3F 范围(包括 x00 和 x3F)。 | | | * nullindchar 必须指定在代码点 x20 和 x7F 之间 | | | (包括 x20 和 x7F)的标准 ASCII 集合中包括的字 | | | 符。这表示 ASCII 符号和代码点。 | | | | | | 注: | | | 1. codepage 修饰符不能与 lobsinfile 修饰符配合 | | | 使用。 | | | 2. 如果在将代码页从应用程序代码页转换为数据库 | | | 代码页时进行数据扩充,则数据可能会被截断,并且 | | | 可能会丢失数据。 | +-------------------+-------------------------------------------------+ ATTACH 命令 ATTACH 命令的 USER 参数指定认证标识。在 Windows 操作系统上连接至 DB2 Universal Database(DB2 通用数据库)实例时,可采用与 Microsoft Windows NT Security Account Manager(SAM)兼容的格式来指定用户名。限定符必须为 NetBIOS 式名称,其最大长度为 15 个字符。例如,domainname\username。 RECOVER DATABASE 命令 在版本 8.2 文档的 RECOVER DATABASE 命令的『示例』一节中,时间戳记格式 yyyy:mm:dd:hh:mm:ss 是不正确的。 正确的格式为 yyyy-mm-dd-hh.mm.ss。 UPDATE HISTORY FILE 命令 UPDATE HISTORY FILE 命令会更新历史文件条目中的位置、设备类型、注释或状 态。 已更新的命令语法 >>-UPDATE HISTORY--+-FOR--object-part-+--WITH-------------------> '-EID--eid---------' >--+-LOCATION--new-location--DEVICE TYPE--new-device-type-+---->< +-COMMENT--new-comment---------------------------------+ '-STATUS--new-status-----------------------------------' 已更新命令参数 FORobject-part 对要更新的历史条目指定标识。这是带有可选序号 001 至 999的时间 戳记。 注: 不能用于更新条目状态。要更新条目状态,转而指定 EID。 STATUS new-status 指定条目的新状态。只有备份条目才能更新状态。有效值包括: A 活动。大多数条目是活动的。 I 不活动。不再在活动日志链上的备份映像变得不活动。 E 到期。因为存在的活动映像的数目超出 NUM_DB_BACKUPS 而 不再需要的备份映像被标志为到期。 D 不再可用于恢复的备份映像应标记为已删除。 db2updv8 - 将数据库更新至版本 8 当前级别命令 此命令使用下列方法更新数据库中的系统目录以支持当前级别: * 引入随当前数据库管理器提供的新例程 * 将 ODBC/CLI/JDBC 模式过程编目为可信过程以改进性能和可伸缩性 * 修正 SYSPROC.SNAPSHOT_QUIESCERS 表函数的返回参数中的两个印刷错误: * OUIESCER_TBS_ID 已更正为 QUIESCER_TBS_ID * OUIESCER_STATE 已更正为 QUIESCER_STATE * 修正 LOB 列的列描述符以使记录位与目录表一致 * 创建 SYSIBM.SYSREVTYPEMAPPINGS 视图 * 更新 SYSSTAT.COLUMNS 和 SYSSTAT.TABLES 的视图定义 * 将 SYSCOLDIST.DISTCOUNT 列更新为可更新 * 更新 SYSINDEXES.TBSPACEID 列以便不设置列标志 * 修正 17 个表函数的参数长度。有关函数的完整列表,请参阅《版本 8.2 发 行说明》的 『文档更新 | SQL 管理例程』一节中的『快照 UDF 的列扩展』 主题。 * 将 33 个 SYSPROC 快照 UDF 改变为 THREADSAFE: * SNAPSHOT_DBM * SNAPSHOT_FCM * SNAPSHOT_FCMNODE * SNAPSHOT_SWITCHES * SNAPSHOT_APPL_INFO * SNAPSHOT_APPL * SNAPSHOT_STATEMENT * SNAPSHOT_LOCKWAIT * SNAPSHOT_AGENT * SNAPSHOT_SUBSECT * SNAPSHOT_DATABASE * SNAPSHOT_BP * SNAPSHOT_LOCK * SNAPSHOT_TABLE * SNAPSHOT_DYN_SQL * SNAPSHOT_TBS * SNAPSHOT_TBS_CFG * SNAPSHOT_QUIESCERS * SNAPSHOT_CONTAINER * SNAPSHOT_RANGES * SNAPSHOT_TBREORG * HEALTH_DBM_INFO * HEALTH_DBM_HI * HEALTH_DBM_HI_HIS * HEALTH_DB_INFO * HEALTH_DB_HI * HEALTH_DB_HI_HIS * HEALTH_TBS_INFO * HEALTH_TBS_HI * HEALTH_TBS_HI_HIS * HEALTH_CONT_INFO * HEALTH_CONT_HI * HEALTH_CONT_HI_HIS 权限 sysadm 必需的连接 数据库。此命令自动建立与指定数据库的连接。 命令语法 >>-db2updv8---d--database-name--+--------------------------+----> '--u--userid---p--password-' >--+----+------------------------------------------------------>< '--h-' 命令参数 -d database-name 指定要更新的数据库的名称。 -u userid 指定用户标识。 -p password 指定该用户的密码。 -h 显示帮助信息。当指定了此选项时,其它所有的选项都会被忽略,且只 显示帮助信息。 示例 在安装当前级别(修订包或新版本)之后,通过发出以下命令来更新样本数据库 中的系统目录: db2updv8 -d sample 使用说明 1. 此命令仅可在运行 DB2 Universal Database(DB2 通用数据库)版本 8.1.2 或更新版本的数据库上使用。如果多次发出该命令,将不会报告任何错误,而 且每个目录更新仅应用一次。 2. 要启用新的内置函数,所有应用程序必须与数据库断开连接并且该数据库必须 取消激活(如果它已经激活了的话)。 格式化陷阱文件(Windows) 现有新工具 db2xprt.exe 可供您格式化陷阱文件(*.TRP)。此工具会将 DB2 通 用数据库的二进制陷阱文件格式化为可供人们阅读的 ASCII 文件。陷阱文件在缺 省情况下位于实例目录(DB2INSTPROF)中,在设置了 DIAGPATH 数据库管理器配 置参数的情况下在诊断数据目录路径中。 权限 您必须具有对 DIAGPATH 目录的访问权。 命令语法 >>-db2xprt--+----------+--+----+--+----+--infile--+---------+-->< +-/p--path-+ '-/m-' '-/n-' '-outfile-' '-/v-------' 命令参数 /p path 分号(;)隔开指向二进制文件和 PDB 文件所在位置的路径。 /v 显示版本信息。 /m 格式化内存转储及陷阱文件的剩余部分。 /n 格式化与行号信息无关的数据。 infile 指定输入文件。 outfile 指定输出文件。 数据移动 使用 IMPORT 实用程序时丢失了索引信息 可以使用 IMPORT 实用程序来重新创建通过 EXPORT 实用程序保存的表。 数据移动主题“使用导入来重新创建已导出的表”概述了未保留原始表的属性。 除了已经说明的属性以外,也未保留下列属性: * 索引信息: * 包含列(如果有的话) * 索引名,如果索引是主键索引的话 * 降序顺序,如果索引是主键索引的话(缺省值为升序) 数据恢复和高可用性 高可用性灾难恢复概述 当执行 START HADR、STOP HADR 或 TAKEOVER HADR 命令时,可能会生成相应的 错误代码:SQL01767N、SQL01769N 或 SQL01770N,原因码为 98。该原因码指示 在运行该命令的服务器上没有安装 HADR 的许可证。要更正该问题,使用 db2licm 安装有效的 HADR 许可证,或者安装这样一个版本的服务器:它将有效 HADR 许 可证作为其分发的一部分。 跨平台备份和复原支持 DB2 Universal Database(DB2 通用数据库,UDB)支持跨平台备份和复原操作。 可以将在 DB2 UDB 版本 8 32 位 Windows 平台上创建的数据库复原至 DB2 UDB 版本 8 64 位 Windows 平台,反之亦然。可以将在 DB2 UDB 版本 8 32 位 Linux x86 平台上创建的数据库复原至 DB2 UDB 版本 8 64 位 Linux x86-64 或 IA64 平台,反之亦然。可将在 DB2 UDB 版本 8 AIX、HP-UX、Linux PPC、Linux zSeries 或 Solaris Operating Environment 平台(32 位或 64 位)上创建的 数据库复原至 DB2 UDB 版本 8 AIX、HP-UX、Linux PPC、Linux zSeries 或 Solaris Operating Environment 平台(32 位或 64 位)。 备份至磁带(Linux) Linux 上的 3480 和 3490 磁带设备的最大块大小限制为 61440 个字节 表 23. Linux 上的 3480 和 3490 磁带设备的最大块大小限制 +-----------------+-----------------+----------------+----------------+ | 设备 | 连接 | 块大小限制 | DB2 缓冲区大小 | | | | | 限制(以 4 KB | | | | | 页计) | +-----------------+-----------------+----------------+----------------+ | 3480 | s370 | 61 440 | 15 | +-----------------+-----------------+----------------+----------------+ | 3490 | s370 | 61 440 | 15 | +-----------------+-----------------+----------------+----------------+ Tivoli Storage Manager 当调用 BACKUP DATABASE 或 RESTORE DATABASE 命令时,可以指定想要使用 Tivoli Storage Manager(TSM)产品来管理数据库或表空间备份或复原操作。除 了在下列平台上之外,需要的 TSM 客户机 API 的最低级别为 V4.2.0: * 64 位 Solaris 系统,它需要 TSM 客户机 API V4.2.1。 * 64 位 Windows NT 操作系统,它需要 TSM 客户机 API V5.1。 * 32 位 Linux for iSeries 和 pSeries(R),至少需要 TSM 客户机 API V5.1.5 * 64 位 Linux for iSeries 和 pSeries,至少需要 TSM 客户机 API V5.2.2 * AMD Opteron 系统上的 64 位 Linux,至少需要 TSM 客户机 API V5.2.0。 * 64 位 Linux for zSeries,至少需要 TSM 客户机 API V5.2.2。 HADR 本地主机和本地服务参数的值限制 在准备 update database configuration 命令时对高可用性灾难恢复(HADR)本 地主机和本地服务参数(HADR_LOCAL_SVC 和 HADR_REMOTE_SVC)指定值的情况下 ,这些值必须是未在用于任何其它服务的端口。如果使用 Linux 或 UNIX 命令行 来配置参数,还应在 /etc/services 文件中设置这些值。 高可用性灾难恢复的其它系统需求 如果在主数据库上创建表空间并且备用数据库上的日志回放因为容器不可用而失 败,则主数据库不会接收到指示日志回放失败的错误消息。 要检查日志回放错误,必须在创建新的表空间时监视 db2diag.log 和备用数据库 上的管理日志。 如果发生接管表空间操作,新创建的表空间在新的主数据库上将不可用。要从此 情况恢复,从备份映像复原新的主数据库上的表空间。 在以下示例中,在数据库 MY_DATABASE 被用作新的主数据库之前,将在该数据库 上复原表空间 MY_TABLESPACE: 1. db2 connect to my_database 2. db2 list tablespaces show detail 注: 运行 db2 list tablespaces show detail 命令以显示所有表空间的状态 并获取步骤 5 所需的表空间标识号。 3. db2 stop hadr on database my_database 4. db2 "restore database my_database tablespace (my_tablespace) online redirect" 5. db2 "set tablespace containers for my_tablespace_ID_# ignore rollforward container operations using (path '/my_new_container_path/')" 6. db2 "restore database my_database continue" 7. db2 rollforward database my_database to end of logs and stop tablespace "(my_tablespace)" 8. db2 start hadr on database my_database as primary 高可用性灾难恢复的非复制操作 版本 8.2 文档指出: 未复制 BLOB 和 CLOB;但是,将在备用数据库上为其分配空间。 该句子应为如下所示: 未复制非记录 BLOB 和 CLOB;但是,将在备用数据库上为其分配空间。 HADR 不支持原始日志 高可用性灾难恢复(HADR)不支持对数据库日志文件使用原始 I/O(直接磁盘存 取)。如果使用 START HADR 命令启动 HADR,或者如果在配置了 HADR 的情况下 重新启动数据库,将检测原始日志,相关联的命令将会失败并带有 SQL1768N 原 因码“9”。 数据仓库中心 定义 DB2 仓库源和目标 以下更新会影响两个“数据仓库中心”主题: * 定义 DB2 仓库源 * 定义仓库目标 缺省情况下,当您定义仓库源或仓库目标时,返回的表数目为 250。但是,可以 使用新的环境变量 VWS_MAX_TABLELIST 来设置返回的表的数目。可以返回的表的 最大数目为 40000。根据列表中表名的大小不同,此数目可能会小一些。建议您 指定一个远远小于 40000 的数。 对商业智能教程的更新 验证是否向 ODBC 注册了 DWCTBC 和 TBC_MD 数据库 在版本 8 中,在教程中使用的控制数据库 TBC_MD 不必是系统 ODBC 数据源。但 是,目标数据库或数据源 DWCTBC 必须是系统 ODBC 数据源。 打开定义仓库源笔记本 打开“教程相关源”的“定义仓库源”笔记本的过程已更改。 过程 要打开“教程相关源”的“定义仓库源”笔记本: 1. 从数据仓库中心窗口中右键单击仓库源文件夹。 2. 单击定义 --> ODBC --> DB2 --> DB2 系列。 “定义仓库源”笔记本打开。 打开定义仓库目标笔记本 打开“定义仓库目标”笔记本的过程已更改。 过程 要打开“定义仓库目标”笔记本: 1. 从数据仓库中心窗口中右键单击仓库目标文件夹。 2. 单击定义 --> ODBC --> DB2 --> DB2 系列。 “定义仓库目标”笔记本打开。 设置仓库日志文件的清除限制 日志文件保存一些记录,直到达到指定的计数限制为止。缺省计数限制是 1000 条记录。运行的每个作业通常创建 12 到 15 条日志记录。通过更新“仓库属性 ”页“服务器”选项卡上的当总记录数等于此数目时清除日志字段来将清除限制 设置为满足您的需要的某个数字。 CURSOR 装入的数据仓库中心支持 DB2 Universal Database(DB2 通用数据库)装入步骤现在就允许将视图或表用 作步骤的源,这导致 LOAD FROM CURSOR。 为了映射向导中的列以进行 CURSOR 装入,必须选择根据输入文件中的列位置映 射列单选按钮。 Unicode 仓库控制数据库迁移和局限性 从版本 8.2 的数据仓库中心开始,仓库控制数据库必须是 Unicode 数据库。如果 Unicode 仓库控制数据库来自版本 8.2 之前的数据仓库中心版本,仍然必须通过 使用仓库控制数据库管理工具创建新的 Unicode 控制数据库。 如果迁移来自版本 8.2 之前的数据仓库中心版本的仓库控制数据库,则仓库控制 数据库管理工具将运行 db2move 命令以将数据移至新的 Unicode 控制数据库。 在此过程期间,将出现一个窗口,显示 db2move 命令的进度。此迁移路径仅出现 一次。 数据仓库中心在 Sybase 服务器上不支持 Unicode。 修改于列的日期格式中的更改 在“数据仓库中心”主窗口的详细视图中,修改于列中的日期的格式已作了更新。 修改于列中的日期显示为您的语言环境中的格式,并且包括时间。日期格式中的 这一更改确保对修改于列上的对象的排序正常运行。此更新适用于导航器和详细 信息视图中显示的数据仓库中心对象的大多数列表,例如: * 主题 * 进程 * 仓库模式 * 仓库代理站点 * 程序 * 步骤 * 数据资源 * 用户 * 用户组 在数据仓库中心中定义统计转换程序 要对数据执行统计变换,定义想要使用的统计转换程序。 过程 要定义统计转换程序: 1. 打开“进程技术模型”窗口。 2. 单击转换程序图标并从可用转换程序列表中选择转换程序。 3. 按该转换程序的规则的要求将选择的转换程序链接至仓库源和仓库目标。 每个转换程序都有特定规则,说明该转换程序必须以什么方式链接至仓库源和仓 库目标。有关更多信息,请参阅每个转换程序的文档。 iSeries 仓库代理程序的先决条件 要对 V5R2 和 V5R3 系统上的 DB2 仓库管理器使用 iSeries 仓库代理程序,需 要以下 PTF: PTF SI13558 此数据库 PTF 使 iSeries 上的 CLI 能够处理 Unicode 数据。 DB2 .NET 数据提供程序 DB2Connection.ConnectionString 属性 DB2Connection.ConnectionString 属性还有附加关键字: CurrentSchema 在成功连接之后要使用的模式。成功连接之后,SET CURRENT SCHEMA 语句将发送至 DB2 服务器。这允许应用程序命名 SQL 对象而不必用模 式名来限定它们。 DB2 Connect 新增安全性方案 已经为 APPC 连接添加了新的安全性方案: 认证 GSSPLUGIN 安全性 无 验证 GSS API 安全性插件机制 对图解的更正 下列 DB2 Connect 企业版主题的图解是不正确的: * 使用 DB2 Connect 企业版访问主机或 iSeries DB2 数据 * 从使用 Java 的 Web 访问 DB2 数据 下表概述了对『使用 DB2 Connect 企业版访问主机或 iSeries DB2 数据』主题 中的图解的更正。 表 24. 对『使用 DB2 Connect 企业版访问主机或 iSeries DB2 数据』主题中的 图解的更正 +-------------------+-------------------------------------------------+ | 主题中的位置 | 更正 | +-------------------+-------------------------------------------------+ | 所有四个图解的图 | * 对“DB2 OS/390 版 V5R1”的引用应该为“DB2 | | 注 | OS/390 版版本 6 或更新版本”。 | | | * 对“DB2 AS/400(R) 版 V4R2”的引用应该为“DB2 | | | iSeries 版 V5R1 或更新版本”。 | +-------------------+-------------------------------------------------+ | 第一个图解(图 1 | 所有对“APPC”和“SNA 通信支持”的引用都是不正 | | :DB2 Connect 企 | 确的。DB2 Linux、Unix 和 Windows 服务器(包括 | | 业版) | DB2 Connect 企业版)不支持将 SNA/APPC 作为 DB2 | | | 运行时客户机的入站协议。 | +-------------------+-------------------------------------------------+ 下表概述对『从使用 Java 的 Web 访问 DB2 数据』主题中的图解的更正。 表 25. 对『从使用 Java 的 Web 访问 DB2 数据』主题中的图解的更正 +-------------------+-------------------------------------------------+ | 主题中的位置 | 更正 | +-------------------+-------------------------------------------------+ | 图注 | * 对“DB2 OS/390 版 V5R1”的引用应该为“DB2 | | | OS/390 版版本 6 或更新版本”。 | | | * 对“DB2 AS/400 版 V4R2”的引用应该为“DB2 | | | iSeries 版 V5R1 或更新版本”。 | +-------------------+-------------------------------------------------+ 开发中心 对 DB2 通用类型 2 和类型 4 驱动程序的限制 在版本 8.2 中,已添加支持以允许用户在“开发中心”中使用 DB2 通用类型 2 和类型 4 驱动程序连接至 DB2 Universal Database(DB2 通用数据库,UDB)数 据库。但是,如果尝试使用其中一个驱动程序连接至 iSeries 服务器或者连接至 版本 8.1 或较早版本的 DB2 UDB 服务器,将显示以下错误消息: 与 的连接失败。找不到 IBM DB2 通用驱动程序(JCC)。 有关要使用哪些驱动程序来避免此错误的其它信息,请参阅 DB2 信息中心中标 题为『JDBC 驱动程序』的主题。 GUI 工具 修改语句终止字符 从 DB2 Universal Database(DB2 通用数据库,UDB)版本 8.2 修订包 1(等同 于版本 8.1 修订包 8)开始,可以修改正在命令行处理器(CLP)或者“命令编 辑器”中运行的脚本中的语句终止字符。这种正在开发的修改方法类似于 DB2 UDB OS/390 版中当前提供的方法。以下示例说明可以如何更改每个语句后面的终止字 符: connect to gilroy user newton using password; select * from newton.department; --#SET TERMINATOR : select * from newton.employee: --#SET TERMINATOR @ select * from newton.department@ --#SET TERMINATOR ; select * from newton.department; --#SET TERMINATOR & terminate& 当脚本中包含复合语句时,能够更改终止字符是很重要的。在以下示例中,DB2 UDB 假定它在复合 CREATE TRIGGER 语句中遇到的第一个 ; 是整个 CREATE TRIGGER 语句的终止字符。但是,实际情况并不是这样。它只是复合 CREATE TRIGGER 语句中的其中一个语句的终止字符。 CONNECT TO SAMPLE; DROP TRIGGER newton.NWTTRIGGER; CREATE TRIGGER newton.NWTTRIGGER AFTER DELETE ON newton.NWTTABLE FOR EACH ROW MODE DB2SQL BEGIN ATOMIC insert into newton.nwttable values(0,'0'); insert into newton.nwttable values( -1, '-1'); END; CONNECT RESET; TERMINATE; 以下示例说明可以如何修改脚本中的语句终止字符以获得期望的结果。 CONNECT TO SAMPLE; DROP TRIGGER newton.NWTTRIGGER; --#SET TERMINATOR @ CREATE TRIGGER newton.NWTTRIGGER AFTER DELETE ON newton.NWTTABLE FOR EACH ROW MODE DB2SQL BEGIN ATOMIC insert into newton.nwttable values(0,'0'); insert into newton.nwttable values( -1, '-1'); END@ --#SET TERMINATOR ; CONNECT RESET; 如果不需要脚本在 DB2 OS/390 版上以本地方式运行,或者您的 DB2 UDB 脚本不 连接至 OS/390,则建议不要使用 --#SET TERMINATOR 这种方法来修改语句终止 字符。而是应该使用现有的 -tdX 或 ;-- 选项。 -tdX 选项允许您在使用 CLP 命令调用脚本时指定终止字符。“X”表示正在用作 语句终止字符的字符。例如,在以下命令中: db2 -tvf test.txt -td& 当运行 test.txt 文件中的脚本时,& 将用作语句终止字符。如果该脚本中包含 复合 CREATE TRIGGER 语句,则它将被编写为: CONNECT TO SAMPLE& DROP TRIGGER newton.NWTTRIGGER& CREATE TRIGGER newton.NWTTRIGGER AFTER DELETE ON newton.NWTTABLE FOR EACH ROW MODE DB2SQL BEGIN ATOMIC insert into newton.nwttable values(0,'0'); insert into newton.nwttable values( -1, '-1'); END& CONNECT RESET& TERMINATE& 注: -tdX 选项在“命令编辑器”中不可用。 还可以使用 ;-- 选项来重新编写包含复合 CREATE TRIGGER 语句的脚本,如下所 示: CONNECT TO SAMPLE; DROP TRIGGER newton.NWTTRIGGER; CREATE TRIGGER newton.NWTTRIGGER AFTER DELETE ON newton.NWTTABLE FOR EACH ROW MODE DB2SQL BEGIN ATOMIC insert into newton.nwttable values(0,'0');-- insert into newton.nwttable values( -1, '-1');-- END; CONNECT RESET; TERMINATE; 控制中心的数据库详细信息窗格中的数据库不可用状态 可使用控制中心的详细信息窗格来查看有关数据库的信息。在对象树或内容窗格 中选择数据库将显示其状态总结。在某些情况下,数据库信息可能不可用。不可 用的某些原因将在下表中描述。 表 26. 数据库状态不可用的原因 +--------------------+------------------------------------------------+ | 数据库状态元素 | 不可用状态的可能原因 | +--------------------+------------------------------------------------+ | 上次备份 | * 未对该数据库执行任何备份。 | | | * 用户没有访问此信息的必需权限。 | +--------------------+------------------------------------------------+ | 大小 | * 数据库是版本 8.2 之前的版本。 | | | * 用户没有访问此信息的必需权限。 | +--------------------+------------------------------------------------+ | 容量 | * 数据库是版本 8.2 之前的版本。 | | | * 数据库有多个分区。 | | | * 用户没有访问此信息的必需权限。 | +--------------------+------------------------------------------------+ | 健康 | * 健康监视器未打开。 | | | * 计时延迟。从数据库激活至其健康状态可用大约 | | | 有 5 分钟的延迟。 | +--------------------+------------------------------------------------+ | 维护 | * 数据库是版本 8.2 之前的版本。 | +--------------------+------------------------------------------------+ 生成缺省写至表输出(创建事件监视器) 已将生成按钮添加至“输出选项”对话框,它是从“创建事件监视器”窗口启动 的。单击“生成”按钮会生成缺省写至表输出选项。此输出相当于 db2evtbl 命 令生成的语法。 生成的选项向用户显示在创建事件监视器时将包括哪些表和数据元素。用户可修 改该命令以符合需要。 生成的语法基于“创建事件监视器”窗口中指定的事件监视器名和事件类型。在 生成输出选项语法之前指定事件监视器名和事件类型。 如果事件监视器名和事件类型在生成输出选项之后更改,将显示一条消息,提醒 用户在创建事件监视器之前重新生成输出选项。如果未重新生成输出选项,将根 据先前指定的事件监视器名生成事件表。 信息目录中心 配置样本脚本 ICCConfig.jacl 和 ICCConfig.properties 样本脚本是随带有 DB2 嵌入式应用 程序服务器的 Web 信息目录中心提供的。可使用这些样本脚本来配置带有 WebSphere Application Server 5 的 Web 信息目录中心。这些脚本位于 sqllib\samples\icweb 目录中。 Web 服务器配置 在配置带有 DB2 嵌入式应用程序服务器的 Web 信息目录中心时,如果元数据包 含用于访问服务器上的文件的 URL,必须通过在 Web 服务器配置中使用别名将这 些 URL 映射至正确位置。还必须映射帮助和版权链接。如果使用 DB2 嵌入式应 用程序服务器,则 Web 服务器必须正确配置并运行以使这些链接生效(即使在不 必插入至 Web 服务器的情况下)。 《安装和配置补遗》 DB2 UDB 的应用程序服务器 用于 DB2 Universal Database(DB2 通用数据库,UDB)的应用程序服务器不再 支持远程管理或存储过程。 已更新主题如下所示: 启用 DB2 UDB 的应用程序服务器 启用数据库要执行下列操作: * 连接至指定数据库 * 创建并填充元数据表 * 更新 DBM CFG 参数 JDK_PATH 和 JAVA_HEAP_SZ * 安装 DB2 Web 服务应用程序。 先决条件 在 Linux 上,在安装应用程序之后但是在启用应用程序服务器之前,必须设置 Linux Java 环境。有关设置 Linux Java 环境的详细信息,参阅《应用程序开发 指南:构建和运行应用程序》一书。 过程 要启用 DB2 UDB 的应用程序服务器,执行下列操作: 1. 作为 Linux 或 UNIX 操作系统上的 root 用户或者作为在 Windows 操作系统 上具有 Administrator 特权的用户登录至 DB2 服务器。 2. 对于基于 Linux 和 UNIX- 的操作系统运行以下命令: . /db2instance_path/sqllib/db2profile 其中 db2instance_path 是创建 DB2 UDB 实例的位置。 3. 运行下列命令中的一个: * 对于 Linux 和 UNIX 操作系统: AppServer_install_path/bin/enable.sh -db db_alias -user db_user -password db_password -db2path path_to_sqllib -instance instance_name -easpath path_to_eas -fencedid fenced_userid * 对于 Windows 操作系统: AppServer_install_path\bin\enable -db db_alias -user db_user -password db_password -db2path path_to_sqllib -instance instance_name -easpath path_to_eas 其中: * db_alias 是要启用的数据库的别名。 * db_user 是连接至数据库时要使用的用户标识。 * db_password 是要与用户标识配合使用来连接至数据库的密码。 * path_to_sqllib 是指向 DB2 UDB 实例 SQLLIB 目录的路径。此路径与必 需的 JAR 文件配合使用以更新 DB2EAS。 * instance_name 是 DB2 UDB 实例的名称。 * path_to_eas 是嵌入式应用程序服务器的路径。 * fenced_userid 是受防护的用户的用户标识。 一旦启用了 DB2 UDB 的应用程序服务器,该应用程序服务器就会自动启动。 在本地启动 DB2 UDB 的应用程序服务器 仅应对在 .NET 环境中创建 Web 服务或运行 XML Metadata Registry(XMR)的 系统使用受防护用户标识来启动应用程序服务器。 远程启动 DB2 UDB 的应用程序服务器 本节已被除去。DB2 UDB 的应用程序服务器不再支持远程管理。 在本地停止 DB2 UDB 的应用程序服务器 仅应对在 .NET 环境中创建 Web 服务或运行 XML Metadata Registry(XMR)的 系统使用受防护用户标识来停止应用程序服务器。 远程停止 DB2 UDB 的应用程序服务器 本节已被除去。DB2 UDB 的应用程序服务器不再支持远程管理。 卸载 DB2 UDB 的应用程序服务器 本节已被除去。DB2 UDB 的应用程序服务器不再支持远程管理。 DB2 嵌入式应用程序服务器支持 DB2 嵌入式应用程序服务器的启用数据库必须位于 32 位实例中。从 DB2 嵌入式 应用程序服务器存取的任何数据库可位于 32 位或 64 位实例中。 部署 DB2 Web 工具 在 DB2 Web 工具部署期间,使用 JDK 1.4 的应用程序服务器不再需要定制 CLASSPATH 变量。所有相关性(包括 XML 解析器和转换程序的相关性)现在是使 用 Web 模块部署的,应该按 J2EE 规范从 WEB-INF\lib 目录装入。此更改会影 响两个信息主题: * 在 WebLogic 应用程序服务器上部署 DB2 Web 工具 * 在其它应用程序服务器上部署 DB2 Web 工具 已更新主题如下所示: 在 WebLogic 应用程序服务器上部署 DB2 Web 工具 此任务描述如何在 BEA WebLogic 7.0 上部署和配置 DB2 Web 工具(包括 Web 命令中心和 Web 健康中心)。这些工具在 Web 服务器上作为 Web 应用程序运行 以便通过 Web 浏览器访问 DB2 服务器。 先决条件 在 WebSphere 上安装 DB2 Web 工具之前,确保已经具有: * BEA WebLogic 7.0 应用程序服务器。 * IBM DB2 管理客户机版本 8。 * 符合 HTML 4.0 的 Web 浏览器。 注: DB2 Web 工具是使用 Netscape 4.x、Netscape 6.x、Netscape 7.x、 Mozilla 1.x、Internet Explorer 5.x、Opera 6.x、Konqueror 3.x (Linux)和 EudoraWeb 2.x(Palm OS)测试的。使用某些未经测试的 Web 浏览器可能要求在 servlet 配置中添加显式引用。 限制 以下限制适用于 DB2 Web 工具部署: * 在中间层和 DB2 服务器之间,不支持多种语言和代码页转换。尽管服务器的 语言就是用于显示的语言,但某些字符可能显示不正确。 * 为了在 Web 健康中心中查看数据库、表空间和表空间容器的健康报警,需要 确保数据库是在 Web 应用程序服务器上编目的。 * 使用 Web 浏览器按钮(停止、后退和历史)在使用 DB2 Web 工具时不受支持。 * 如果正在将 Netscape Navigator 4 与 DB2 Web 工具配合使用,浏览器显示 将无法正确刷新。如果遇到此问题,可通过使窗口最小化然后再最大化以刷新 显示。您还可以通过先将浏览器窗口隐藏在另一窗口之下然后再将它在前台打 开的方式来刷新显示内容。 * 要将您自己的别名分配给任何 DB2 Universal Database(DB2 通用数据库, UDB)系统、实例节点或数据库,您必须通过使用“DB2 配置助手”或“DB2 控制中心”,在应用程序服务器上显式对其进行编目。 * 在第一次启动时,DB2 Web 工具初始化所花的时间比后续启动要长得多。这段 等待时间大多数是由于在进行自动编目过程。如果不想使用自动编目功能,可 通过 servlet 配置关闭自动编目来缩短必须等待的时间。 注: servlet 配置参数是在部署描述符文件 web.xml 中提供的。参数名和缺 省值随每一发行版而有所变化。某些应用程序服务器可能允许通过其接 口或通过直接编辑 web.xml 文件来更改这些参数。 * 在使用台式或膝上型计算机浏览器时,输出(结果)缓冲区的绝对最大大小为 1MB,即使它被配置为较大容量时也是如此。如果是 PDA Web 浏览器,则此限 制为 1KB。 * 在 Linux、UNIX、 和 Windows 操作系统上,DB2 Web 工具自动发现并编目与 应用程序服务器处于同一 TCP/IP 网络的任何系统。同一 TCP/IP 网络上的系 统的 IP 地址的前三位相同。这些工具尝试使用原始远程 TCP/IP 主机名编目 DB2 UDB 系统节点。如果存在名称重复,则这些工具指定唯一的随机名称。如 果想要任何其它 DB2 管理服务器可访问,则必须在应用程序服务器上显式编 目它们。这包括不在应用程序服务器所在 TCP/IP 网络上的使用 TCP/IP 的任 何服务器以及不使用 TCP/IP 的任何服务器。 * 在 Linux、UNIX、 和 Windows 操作系统上,DB2 Web 工具尝试自动发现并编 目驻留在已编目 DB2 UDB 系统上的任何 DB2 UDB 实例节点和数据库。可为多 个通信协议配置远程实例,因此,目录将包含已自动编目实例支持的每种协议 的独立节点条目。如果存在名称重复,则这些工具指定唯一的随机名称。 过程 要在 WebLogic 应用程序服务器上安装 DB2 Web 工具: 1. 完成下列操作以通过 WebLogic 管理控制台部署 DB2 Web 工具: a. 启动 WebLogic 管理控制台。 b. 单击窗口的左边窗格中的域 -> 部署 -> Web 应用程序。 c. 单击配置新的 Web 应用程序链接以安装 DB2 Web 工具 Web 应用程序。 d. 浏览文件系统列表以查找 Sqllib\tools\web\db2wa.war。 e. 单击 db2wa.war 文件名旁边的选择。 f. 要从可用服务器列表中选择服务器以容纳 DB2 Web 工具,选择该服务器并 单击箭头以将该服务器移至目标服务器。 注: 必须保留原始的名称 db2wa,因为 DB2 Web 工具已经对其进行硬编码。 g. 单击配置和部署。 h. 等待应用程序服务器刷新所选服务器上的 Web 应用程序的部署状态。如果 成功,则应该会显示 Deployed=true 2. 调用 DB2 Web 工具 Web 应用程序,它位于: http://server_name:app_server_port_number/db2wa 例如,http://server_name:7001/db2wa。 在其它应用程序服务器上部署 DB2 Web 工具 此任务描述如何在其它应用程序服务器(例如,Tomcat 4.0 和 Macromedia JRun 4.0)上部署和配置 DB2 Web 工具(包括 Web 命令中心和 Web 健康中心)。这 些工具在 Web 服务器上作为 Web 应用程序运行以便通过 Web 浏览器访问 DB2 服务器。 先决条件 在安装 DB2 Web 工具之前,确保已经具有: * 应用程序服务器,例如: * Tomcat 4.0 Servlet/JSP 容器(http://jakarta.apache.org/tomcat/) * Macromedia JRun 4.0 * IBM DB2 管理客户机版本 8。 * 符合 HTML 4.0 的 Web 浏览器。 限制 以下限制适用于 DB2 Web 工具部署: * 在中间层和 DB2 服务器之间,不支持多种语言和代码页转换。尽管服务器的 语言就是显示的语言,但某些字符可能显示不正确。 * 为了在 Web 健康中心中查看数据库、表空间和表空间容器的健康报警,需要 确保数据库是在 Web 应用程序服务器上编目的。 * 使用 Web 浏览器按钮(停止、后退和历史)在使用 DB2 Web 工具时不受支持。 * 如果正在将 Netscape Navigator 4 与 DB2 Web 工具配合使用,浏览器显示 将无法正确刷新。如果遇到此问题,则可以通过先最小化窗口再打开窗口的方 式来刷新显示。您还可以通过先将浏览器窗口隐藏在另一窗口之下然后再将它 在前台打开的方式来刷新显示内容。 * 要将您自己的别名分配给任何 DB2 UDB 系统、实例节点或数据库,您必须通 过使用“DB2 配置助手”或“DB2 控制中心”,在应用程序服务器上显式对其 进行编目。 * 在第一次启动时,DB2 Web 工具初始化所花的时间比后续启动要长得多。这段 等待时间大多数是由于在进行自动编目过程。如果不想使用自动编目功能,可 通过 servlet 配置关闭自动编目来缩短必须等待的时间。 注: servlet 配置参数是在部署描述符文件 web.xml 中提供的。参数名和缺 省值随每一发行版而有所变化。某些应用程序服务器可能允许通过其接 口或通过直接编辑 web.xml 文件来更改这些参数。 * 当使用台式或膝上型计算机浏览器时,输出(结果)缓冲区具有的绝对最大大 小为 1MB,即使将其配置为更大也是这样。如果是 PDA Web 浏览器,则此限 制为 1KB。 * 在 Linux、UNIX、 和 Windows 操作系统上,DB2 Web 工具自动发现并编目与 应用程序服务器处于同一 TCP/IP 网络的任何系统。同一 TCP/IP 网络上的系 统的 IP 地址的前三位相同。这些工具尝试使用原始远程 TCP/IP 主机名编目 DB2 UDB 系统节点。如果存在名称重复,则这些工具指定唯一的随机名称。如 果想要任何其它 DB2 管理服务器可访问,则必须在应用程序服务器上显式编 目它们。这包括不在应用程序服务器所在 TCP/IP 网络上的使用 TCP/IP 的任 何服务器以及不使用 TCP/IP 的任何服务器。 * 在 Linux、UNIX、 和 Windows 操作系统上,DB2 Web 工具尝试自动发现并编 目驻留在已编目 DB2 UDB 系统上的任何 DB2 UDB 实例节点和数据库。可为多 个通信协议配置远程实例,因此,目录将包含已自动编目实例支持的每种协议 的独立节点条目。如果存在名称重复,则这些工具指定唯一的随机名称。 过程 以下是使用应用程序服务器(例如,Tomcat 4.0 或 Macromedia JRun 4.0)安装 DB2 Web 工具的过程: Tomcat 4.0 1. 通过完成下列操作来准备 Tomcat 4.0 配置文件(CLASSPATH): a. 创建新的环境/系统变量 CATALINA_HOME,以包含至 Tomcat 4.0 的路径(根目录)。例如,D:\jakarta-tomcat-4.0.3。 b. 确认“Tomcat Servlet/JSP 容器”工作是否正常: 1) 通过从 Tomcat 的 bin 目录运行 startup.bat 来启动 Tomcat。 2) 通过 Web 浏览器访问主 Web 页面 http://localhost:8080/。 2. 通过查找 DB2 Web 工具安装路径(即, Sqllib\tools\web\db2wa.war)并将 db2wa.war 复制到 Tomcat 的 部署目录(即,Tomcat 的 webapps 目录)中来将 DB2 Web 工具部 署到 Tomcat Servlet/JSP 容器中。 3. 通过完成下列操作在 Tomcat Servlet/JSP 容器上调用 DB2 Web 工 具: a. 打开“DB2 命令窗口”,并将目录更改为 Tomcat 的 bin 目录。 b. 启动 Tomcat,方法是使用 startup.bat 并确认是否已将新目录 (db2wa)添加到 webapps 目录中。 注: 从命令提示符窗口运行 startup.bat 将不设置 DB2PATH。 为启用正在设置的 DB2PATH,需要将 CLASSPATH 行更改 为显式引用 DB2 UDB 安装路径而不是 %DB2PATH% 环境变量。 c. DB2 Web 工具企业应用程序位于 http://localhost:8080/db2wa, 可使用符合 HTML 4.0 的 Web 浏览器访问。 JRun 1. 通过完成下列任务来为 DB2 Web 工具准备新的应用程序服务器: 建议 建议创建新的应用程序服务器,但并非必须创建此服务器。为进行 测试,可使用缺省服务器,而且只需要配置 JVM 类路径和部署。 a. 启动“JRun 管理控制台”,并且作为应用程序服务器管理员登录。 b. 使用位于主页右上角的创建新的服务器来创建新的应用程序服务 器。切勿从 localhost 更改主机名选择。 c. 输入新的服务器名称(DB2WebToolsServer)并单击“JRun 服务 器目录”。系统会自动填写该值。 d. 单击创建服务器按钮。 e. 记录生成的值或输入用于以下方面的新值: * JNDI 提供程序 URL * Web 服务器端口号。这将是在 DB2 Web 工具的 URL 中使用 的值(即,http://localhost:web_server_port_numer/db2wa) * Web 连接器代理端口号 f. 如有必要,请单击更新端口号,然后关闭窗口。 2. 通过完成下列任务在 JRun 应用程序服务器上部署 DB2 Web 工具: a. 启动所选择的用来管理 DB2 Web 工具 Web 应用程序的应用程序 服务器(DB2WebToolsServer,缺省服务器或任何其它服务器, 但是管理服务器除外)。 b. 单击 Web 应用程序,然后单击添加。 c. 浏览部署文件部分以在 DB2 UDB 安装路径中选择 Sqllib\tools\web\db2wa.war 文件。 d. 单击部署,并确认上下文路径是否为 /db2wa。 e. 选择应用程序服务器并确认 DB2 Web 工具应用程序是否出现在 Web 应用程序部分中。不要在此页面上单击应用。 f. 从主页的左上角面板中选择主页链接。 g. 从主页视图中重新启动包含 DB2 Web 工具的应用程序服务器 (DB2WebToolsServer)。 DB2 Web 工具企业应用程序位于 http://localhost: your_web_server_port_numer/db2wa,可使用符合 HTML 4.0 的 Web 浏览器访问。 块设备上的直接 I/O(Linux) 直接 I/O 现在在具有 2.6 内核的 Linux 分发产品的文件系统和块设备上受支持。 块设备上的直接 I/O 是对直接磁盘存取或原始 I/O 指定设备容器的另一方法。 直接 I/O 的性能与原始字符设备方法相当。当 CREATE TABLESPACE 语句对容 器路径指定块设备名时,DB2 Universal Database(DB2 通用数据库,UDB)将在 打开表空间时启用直接 I/O。先前使用原始 I/O 方法实现的相同性能需要使用原 始实用程序将块设备绑定至字符设备。 表 27. 直接 I/O 与原始 I/O 的比较 +----------------------------------+----------------------------------+ | 直接 I/O(新方法) | 原始 I/O(旧方法) | +----------------------------------+----------------------------------+ | CREATE TABLESPACE dms1 | CREATE TABLESPACE dms1 | | MANAGED BY DATABASE | MANAGED BY DATABASE | | USING (DEVICE '/dev/sda5' | USING (DEVICE '/dev/raw/raw1' | | 11170736) | 11170736) | +----------------------------------+----------------------------------+ 尽管 DB2 UDB 仍然支持原始 I/O 方法,但不推荐使用它,而且可能会在将来的 内核中除去对它的支持。 建议 如果想要利用直接磁盘存取,使用直接 I/O 创建 DMS 设备容器以避免将来发生 迁移问题。 注: Linux/390 上的 DB2 UDB 不支持直接 I/O。 DB2 信息中心守护进程(Linux 和 UNIX) DB2 信息中心守护进程负责控制 DB2 文档服务器。该守护进程是 DB2 信息中心 安装的一部分,由两个文件组成: * db2icd - 初始化脚本 * db2ic.conf - 配置文件 这些文件安装在下列位置: AIX /etc/db2icd /var/db2/v81/db2ic.conf HP /sbin/init.d/db2icd /var/opt/db2/v81/db2ic.conf Solaris Operating Environment /etc/init.d/db2icd /var/db2/v81/db2ic.conf Linux /etc/init.d/db2icd /var/db2/v81/db2ic.conf 启动或停止信息中心守护进程(AIX、Solaris Operating Environment、HP、Linux) 唯一需要手工启动或停止该守护进程的情况就是您想要更改该守护进程的配置变 量。通常,按照在安装 DB2 信息中心期间创建的运行级别,该守护进程会在系统 启动时启动。 过程 要停止和启动信息中心守护进程: 1. 如果守护进程已经在运行,则停止它。在命令行处输入: INIT_DIR/db2icd stop 其中 INIT_DIR是先前列示的 db2icd 文件的安装目录。 2. 通过编辑 db2ic.conf 文件来更改该守护进程的任何变量。现在可修改提供文 档的 TCP 端口号以及守护进程运行时使用的临时工作空间的位置。 3. 启动该守护进程。在命令行处输入: INIT_DIR/db2icd start 其中 INIT_DIR是先前列示的 db2icd 文件的安装目录。 当守护进程启动时,它将使用新的环境变量。 还可选择立即关闭并重新启动该守护进程。在命令行处输入: INIT_DIR/db2icd restart 其中 INIT_DIR是先前列示的 db2icd 文件的安装目录。 可随时检查该守护进程的状态。在命令行处输入: INIT_DIR/db2icd status 其中 INIT_DIR是先前列示的 db2icd 文件的安装目录。该守护进程返回当前状态 并显示守护进程的标识(如果守护进程活动的话)。 响应文件关键字和样本文件 要使用响应文件来安装 DB2 信息中心版本 8.2,使用以下信息: 响应文件关键字(PROD) INFORMATION_CENTER 响应文件名称 db2doce.rsp 响应文件安装错误代码 以下错误代码仅适用于 Windows,而不适用于 Linux 和 UNIX 操作系统。 3010 安装成功,但需要系统重新启动以完成安装。 安装 DB2 服务器必需的用户帐户(Windows) 添加配额 添加配额用户权限在 Windows XP 和 Windows Server 2003 操作系统上已更改为调整进程的内存配额。 DB2 安装程序授予的用户权限 - 调试程序 DB2 安装程序不会授予“调试程序”用户权限。DB2 安装程序将授予下 列用户权限: * 充当操作系统的一部分 * 创建标记对象 * 锁定内存中的页 * 作为服务登录 * 添加配额 * 替换进程级标记 异步 I/O 支持(Linux) 异步 I/O(AIO)支持现在在 Linux(2.6 内核和某些 2.4 内核)上可供裸设备和 O_DIRECT 文件系统使用。AIO 改进了页清除程序性能。可通过发出 db2set 命令 来启用或禁用 Linux 上的 AIO。 要使用 AIO,用户必须安装 libaio-0.3.98 或更新版本并具有支持 AIO 的内核。 用户还必须运行 db2set DB2LINUXAIO=true 命令并重新启动 DB2 Universal Database(DB2 通用数据库)。 修改了 db2ln 命令以创建 DB2 UDB 64 位库链接(Linux 和 UNIX) 在先前级别的 DB2 Universal Database(DB2 通用数据库,UDB)版本 8 中, db2ln 命令在 /usr/lib 和 /usr/include 下创建了某些 DB2 链接。在同时支持 32 位和 64 位 DB2 UDB 实例的平台上,缺省情况下这些链接指向 DB2DIR/lib64 或 DB2DIR/include64 下的库文件或包含文件,其中 DB2DIR 是 DB2 UDB 版本 8 的安装目录。如果不期望使用缺省值,则可以通过运行带有 -w 标志的 db2ln 命 令来指定位宽: db2ln -w 32|64 这可以防止 DB2 UDB 32 位实例在某些平台上与 64 位实例共存。 从 DB2 UDB 版本 8.2 开始,db2ln 命令将在那些平台上的适当目录中创建 DB2 64 位库链接。在此情况下,-w 标志仅用于填充 /usr/include。当 db2ln 命令为 DB2 UDB 库文件创建链接时,在受支持的平台上将同时创建 32 位和 64 位链接。 这允许 32 位和 64 位实例同时存在和运行。 在某些 Linux 分发产品上,libc RPM 命令与 /usr/lib/libdb2.so 或 /usr/lib64/libdb2.so 库一起提供。此库用于 Sleepycat Software 的 Berkeley DB 实现,并且与 IBM 的 DB2 UDB 不相关。但是,此文件将阻止 db2ln 命令和 db2rmln 命令起作用。db2ln 命令不会覆盖该文件,db2rmln 命令不会除去该文 件。在此情况下,要编译使用 DB2 UDB 的应用程序,编译和链接过程需要分别提 供指向 DB2 UDB 的头和库的完整路径。建议采用这种方法,因为它允许对同一计 算机上的 DB2 UDB 的多个发行版进行编译和链接。 有关使用 db2ln 命令的限制的详细信息,请参阅《DB2 UDB 版本 8.2 安装和配置》 手册。 消息参考 ADM 消息更新 ADM12504E 消息 ADM12504E 的描述暗示主数据库上的实例名应该与备用数据库上的实例名相 匹配,这是不正确的。 ADM12504E 无法建立 HADR 主数据库与备用数据库的连接,因为 DB2 实例名不匹 配。更正 HADR_REMOTE_INST 配置参数。 HADR 并未要求主数据库上的实例名与备用数据库上的实例名相匹配。 CLP 消息更新 DB21015E 未在超时时间段创建命令行处理器后端进程请求队列或输入队列。 解释 DB2BQTRY 和 DB2BQTIME 环境变量的值需要增加或命令行处理器后 端程序“db2bp”不能启动。“db2bp”程序必须驻留在正确的数据库管 理器安装路径中,而且用户必须具有对该文件的执行许可权。 在 Linux 和 UNIX 平台上,确保该文件系统具有足够的文件块和索引 节点。 用户响应 更正错误并重新提交该命令。 DBI 消息更新 DBI1060E 无效程序包名 <"pkg-name"> 解释: 输入了不正确的名称。要么该程序包不存在,要么输入的名称不 正确。 用户响应: 检查在分发介质上是否存在给定程序包的名称。如果存在,则检查程序 包名是否有拼写错误。所有程序包名都应该小写。 SQL 消息添加和更新 SQL0121N 对同一 SQL 语句中的赋值多次指定目标名“”。 解释 同一目标名“”被多次指定为 CALL 语句的 OUT 或 INOUT 自变量或在 INSERT 语句的列列表中、UPDATE 语句的 SET 子句中的赋 值的左边或赋值语句的右边指定多次。目标名标识列、SQL 参数、SQL 变量或新的转换变量。 注意,在更新其中多列基于基本表的同一列的视图或在该视图中插入时, 可能会发生此错误。 不能处理该语句。 用户响应 更正该语句的语法以使每个名称只指定一次。 sqlcode : -121 SQL0270N 函数不受支持(原因码 = "") 解释 74 通过时间戳记更新恢复历史文件中的状态字段是不允许的。 用户响应 74 仅通过 EID 更新恢复历史文件中的状态字段。 解释 75 自动统计信息收集在多数据库分区系统、启用 SMP 的系统或 联合系统上不受支持。 用户响应 75 通过将数据库配置参数 AUTO_STATS_PROF 和 AUTO_PROF_UPD 设 置为 OFF 对此数据库禁用自动统计信息收集。 或者将系统更改为在单一数据库分区上未启用 SMP 且并非联合系统的 系统。 SQL0494W 结果集的数目超过定位器的数目。 解释 在 ASSOCIATE LOCATORS 语句上指定的结果集定位器的数目小于存 储过程返回的结果集的数目。将返回前“n”个结果集定位器值,其中 “n”是在 SQL 语句上指定的结果集定位器变量的数目。 SQL 语句成功。 用户响应 增加在 SQL 语句上指定的结果集定位器变量的数目。 sqlcode : +494 sqlstate : 01614 SQL1227N 解释 原因码 4 PAGE_FETCH_PAIRS 的缓冲区大小项的值必须呈升序。 而且,对于 32 位实例,PAGE_FETCH_PAIRS条目中的任何 缓冲区大小值都不能超出表中的页数或 524287 中的较低数 字。对于 64 位实例,PAGE_FETCH_PAIRS条目中的任何缓冲 区大小值都不能超出表中的页数或 2147483674。 SQL1271W SQL1271W 恢复了数据库 "",但是一个或多个表空间在节点 "" 上是脱机的。 解释 在崩溃恢复、数据库级别前滚恢复或表空间级别前滚恢复之后可能 会产生此消息。对于数据库级别前滚恢复,如果指定了 STOP 选项,则 数据库可供使用。指定节点上的一个或多个表空间不可用。在下列任何 情况下都可能会发生这种情况: * 在恢复期间,一个或多个表空间接收到 I/O 错误。 * 恢复之后,一个或多个表空间可能需要存储器定义。 * 一个或多个表空间不可使用,必须删除它们。 * 一个或多个表空间已脱机。 * 复原了其它表空间,而表空间级别前滚恢复已经在进行。 * 将数据库前滚到超过了先前时间点表空间前滚恢复,导致涉及到的 所有表空间都处于复原暂挂状态。 可以使用 LIST TABLESPACES 命令或 db2dart 实用程序来标识在指定 的一个或多个节点上处于脱机状态的表空间。管理通知日志将提供有关 特定表空间的更多信息。 如果 ",..." 显示在节点列表末尾,请参阅管理通知日志以获取完整的 节点列表。 注: 如果您正在使用分区数据库服务器,则一个或多个节点号将指示在 哪个节点或哪些节点上发生了错误。否则,节点号是不适当的, 应该忽略。 用户响应 需要时修复或复原表空间,并运行前滚恢复。如果还是发生相同的错误 ,则尝试脱机运行表空间级别前滚恢复。 SQL1768N 无法启动 HADR。原因码 = "" 解释: 9 数据库被配置为使用原始日志。 用户响应: 9 重新配置数据库以仅将文件系统存储器用于日志文件,而不是使用 原始 I/O(直接磁盘存取)设备。请参阅《管理指南:性能》中 logpath 和 newlogpath 数据库配置参数的讨论。 SQL1790W 找不到至少具有“”页大小的缺省表空间。 解释 过程 NNSTAT 无法创建 SYSPROC.FED_STATS 表来保留已运行的语 句的历史。找不到具有充足页大小(至少“”)的表空间。 用户响应 确保至少具有“”页大小的表空间存在。 sqlcode: +1790 sqlstate: 01670 SQL1791N 指定的服务器定义、模式或昵称对象名不存在。 解释 过程 NNSTAT 接受服务器定义、模式和昵称作为输入,但找不到其 中一个或多个对象(包括对象名)。 用户响应 指定现有服务器定义、模式或昵称并重新提交该语句。 sqlcode: -1791 sqlstate: 42704 SQL2316W 统计概要文件的 Runstats 命令字符串超出其最大大小。Runstats命令字符串将 截断为最大大小并存储在目录表 SYSIBM.SYSTABLE 中。 解释 STATISTICS_PROFILE 列的最大大小为 32768 字节。如果统计概要 文件的 Runstats 命令字符串的大小超出此字节数,Runstats 命令字 符串将截断为最大大小。 实用程序继续处理。 用户响应 请参阅目录表 SYSIBM.SYSTABLES 中的 STATISTICS_PROFILE 列以查看 统计概要文件。如果现有统计概要文件不是所需的,则重新发出 RUNSTATS 实用程序并指定 UPDATE PROFILE 或 UPDATE PROFILE ONLY 选项以修改该概要文件。有关该实用程序选项的信息,请参阅 RUNSTATS 实用程序文档。 SQL3705N 指定的缓冲区大小参数无效。必须将缓冲区大小指定为 0 或 8 至 250000 之间 的数字(包括这两者)。对于多个缓冲区,总缓冲区大小一定不能超出 250000。 SQL5099N SQL5099N 具有新的原因码: 17 - 当数据库处于前滚暂挂状态时,无法禁用日志归档。 SQL20290N SQL 语句引用例程“<例程名>”(特定名称“<特定名>”),但该例程不能在分 区“<分区号>”上运行。 解释 例程“<例程名>”(特定名称“<特定名>”)是使用无效分区号“ <分区号>”调用的。 用户响应 对分区号参数指定 -1 以对当前分区运行该例程。 sqlcode: -20290 sqlstate: 560CA SQL22025N 对 reorgchk 存储过程指定了无效输入自变量。 解释 对于存储过程的第一个自变量,只有“T”和“S”是受支持的。如 果“T”被指定为第一个自变量,则存储过程的第二个自变量必须是充 当 的全限定表名。 用户响应 使用有效输入自变量重新提交。 SQL27994W 专用寄存器缺省列的长度小于目标列长度。装入可能会截断对应于此列(<列号> )的值。 解释 已经对列“<列号>”指定了子句 SESSION_USER、CURRENT_USER、 SYSTEM_USER 或 CURRENT_SCHEMA,但此列是使用小于 128 字节的长度 定义的(仅适用于 SESSION_USER)或者插入到此列中的列值在代码页 转换之后可能超出目标长度。装入可能会截断列值。 用户响应 如果系统标准不允许用户标识(SESSION_USER)超出列长,则此警告可 能会被忽略。为防止出现此警告,列长必须至少为 128 字节。如果代 码页转换导致此寄存器缺省列增长,则增大该列的长度以适应此增长。 Query Patroller 受管查询状态的定义更新 已取消和完成这两种查询状态的含义已更新,如下所示: 已取消 查询已被管理员、提交者或者其概要文件具有带编辑权限的 MONITORING 特权的操作员通过 Query Patroller 中心或 Query Patroller 命令行取消了。只有正在运行、挂起、已释放和已排队的查 询才能够已取消。 完成 成功地完成了查询。 注: 尽管已经完成了查询本身且没有发生错误,但是如果是由外部事件 导致完成的(例如,DB2 force 应用程序),则应用程序可能会 接收到错误。 在运行 Query Patroller 历史数据生成器之前创建说明表 在对 Query Patroller 运行历史数据生成器时,如果说明表已不存在,生成器将 创建它们。但是,强烈建议在运行历史数据生成器之前创建说明表。当创建说明 表时,确保在同一分区上创建它们。在同一分区上活动地创建说明表将提高“说 明”设施的性能。此改进会提高历史数据生成器的性能。 检查 Query Patroller 日志文件以进行历史分析 如果“随时间的推移查询活动”(历史分析)报告的说明运行列显示查询的状态为 未成功运行,则尚未生成有关该查询的历史数据。因此,该查询将不会显示在任 何历史分析报告或图中。如版本 8 中所述,要确定查询未成功的原因,可以检查 qpuser.log 文件。 除了检查 qpuser.log 文件之外,还应检查 qpdiag.log 文件。 历史数据生成器的异常关闭 如果运行历史数据生成器并以异常方式关闭它,将在下一次尝试运行历史数据生 成器时接收到错误。异常关闭的示例有: * DB2 Universal Database(DB2 通用数据库)意外停止 * 发出 db2stop force 命令 * 发出 killdb2 命令 当历史数据生成器异常关闭时,必须在尝试重新运行历史数据生成器之前发出以 下命令: qp -d database generate historical_data stop 其中 database 标识要对其运行命令的数据库。 动态查询类更新 某些查询类操作不再需要停止 Query Patroller 然后重新启动它就可以生效。 在下表中,活动查询是状态为“正在运行”或“已排队”的查询。 表 28. 查询类更改生效的条件 +----------------------------------+----------------------------------+ | 更改的性质 | 更改生效的条件 | +----------------------------------+----------------------------------+ | 添加、除去或更新查询类。 | 如果没有活动查询,则更改立即生效 | | | 。 | +----------------------------------+----------------------------------+ | 更新只涉及对最大查询数的更改的查 | 立即生效,即使存在活动查询也不例 | | 询类。 | 外。 | +----------------------------------+----------------------------------+ | 更新只涉及对最大查询成本的更改的 | 如果存在活动查询,则在下列任一情 | | 查询类。 | 况下更新生效: | | | * 停止 Query Patroller 然后重新 | | | 启动它。 | | | * 没有其它活动查询。 | | | 注: 当存在针对最大查询成本的更改 | | | 暂挂时,任何种类的后续查询类更新 | | | 在满足前面两个条件的其中一个之前 | | | 都不会生效。 | +----------------------------------+----------------------------------+ | 添加或除去查询类。 | 如果存在活动查询,则添加或除去在 | | | 下列任一情况下生效: | | | * 停止 Query Patroller 然后重新 | | | 启动它。 | | | * 没有其它活动查询。 | +----------------------------------+----------------------------------+ 嵌套的查询行为 不能对嵌套的查询进行排队。取而代之,如果嵌套的查询超出通常会导致对它进 行排队的阈值时,它将立即运行。 SQL 语句类型造成的局限性 与前面的文档相反,可对具有以下语句的查询进行排队: * 包含具有主机变量的静态 SQL 的查询 * 包含标识值函数(IDENTITY_VAL_LOCAL)或序列值函数(如 NEXT VALUE FOR 或 PREVIOUS VALUE FOR)的查询 使用终端服务客户机时的分辨率局限性 使用分辨率为 640x480 的终端服务客户机连接至运行 Query Patroller 中心的 远程桌面时,“提交首选项”窗口可能显示为空白。要使“提交首选项”窗口正 常显示,必须使用高于 640x480 的分辨率。 新的查询提交的组支持 从版本 8.2 开始,DB2 Universal Database(DB2 通用数据库,UDB)支持操作 系统组之外的用户组。因此,Query Patroller 中心的“查询提交首选项”窗口 中的要使用的提交者概要文件下拉列表中有一点变化。 如果已登录但没有对应 Query Patroller 用户管理的 DBADM 权限或编辑特权, 则只能为您自己添加或更新提交首选项。在此情况下,要使用的提交者概要文件 下拉列表包含您所属的 DB2 UDB 组(而不仅仅是您所属的操作系统组)的现有提 交者概要文件。 如果已登录并具有对应 Query Patroller 用户管理的 DBADM 权限或编辑特权, 可为其他用户添加或更新提交首选项。在此情况下,要使用的提交者概要文件下 拉列表包含所有现有组提交者概要文件。 Query Patroller 调度局限性 在 Query Patroller 中心中使用调度时,可使用“调度”窗口将调度保存至文件 并在以后导入它们。如果具有使用修订包 6 或较早版本保存的调度,则不能使用 版本 8.2 或更新版本来导入该调度。此局限性是由于随 DB2 UDB 版本 8.2 引入 的 JDK 级别之间的序列化中的更改造成的。 使用 RUN IN BACKGROUND QUERY 命令所需的权限 要运行 RUN IN BACKGROUND QUERY 命令,您必须是一开始提交查询的提交者。 为结果表创建别名 从 Query Patroller V8.1 修订包 5 开始,Query Patroller 停止在与查询提交 者的授权标识相匹配的模式中创建结果表。Query Patroller 转而开始在公共 DB2QPRT 模式中创建结果表。为允许使用提交者的模式引用结果表,Query Patroller V8.2 引入了一个选项,用于自动为 Query Patroller 新创建的每个 结果表创建别名。该结果表是在 DB2QPRT 模式中创建的,而该别名是在与提交者 的授权标识相匹配的模式中创建的。 要打开或关闭此选项,使用 CREATE_RESULT_TABLE_ALIASES 选项发出 UPDATE QP_SYSTEM 命令: >>-UPDATE QP_SYSTEM USING---------------------------------------> >--+-DEFAULT------------------------------+-------------------->< '-CREATE_RESULT_TABLE_ALIASES--+-'Y'-+-' '-'N'-' 除去孤线程结果表别名 使用 CREATE_RESULT_TABLE_ALIASES 选项创建的别名将在删除结果表时自动删除 。但是,在两种情况下可能会删除结果表而不删除相应的别名。 * 在未使用 qp 命令行或 Query Patroller 中心的情况下手工删除结果表时。 * 在并非查询提交者且不具有 DBADM 权限的操作员的权限下使用 qp 命令行或 Query Patroller 中心删除结果表时。 为清除没有对应结果表的别名,已经创建了新命令 REMOVE RESULT_TABLE_ALIASES。 每当结果表作为 Query Patroller 调度结果表清除过程的一部分被清除时,此 命令将自动执行。REMOVE RESULT_TABLE_ALIASES 命令使用以下查询获取要清除 的别名的列表: with a as (select tabschema, tabname from syscat.tables where type = 'A' and tabname like 'QUERY%_RESULTS'), t as (select tabname from syscat.tables where type = 'T' and tabname like 'QUERY%_RESULTS') select all tabschema, tabname from a where not exists (select * from t where t.tabname=a.tabname) 先决条件 您必须具有 DBADM 权限。 过程 1. 发出 REMOVE RESULT_TABLE_ALIASES 命令 此命令除去删除其对应结果表之后仍然存在的所有别名。这些别名一开始是由 Query Patroller 为结果表创建的。 命令语法 >>-REMOVE RESULT_TABLE_ALIASES--------------------------------->< 注: 有关使用命令行界面输入 Query Patroller 命令以及 Query Patroller 命 令的一般语法的信息,请参阅 Query Patroller 命令行界面。 受防护用户标识需要对 qpdiag.log 文件和路径具有写访问权 Query Patroller 使用一些受防护的存储过程,它们可能会将条目记入 qpdiag.log 文件。因此,受防护的用户标识必须具有写入 qpdiag.log 文件以及 qpdiag.log 文件驻留的路径的访问权。 快速入门 验证数据库是否准备好迁移 版本 8.2 的主题中的先决条件部分说明如何验证数据库是否准备好进行迁移: 先决条件 确保在实例所有者主目录中发现的 migration.log 文件包含 以下文本:正在运行的 DB2CKMIG 的版本:版本 8。 此先决条件事实上是在该过程结束时执行的迁移后步骤。 DB2 UDB 的 Common Criteria 认证 已经 Common Criteria 认证的 DB2 UDB 配置的权威信息可在 http://niap.nist.gov/cc-scheme 中找到。 Spatial Extender 验证 Spatial Extender 安装 runGseDemo 样本程序可用来熟悉 DB2 Spatial Extender 的应用程序编程。有关 样本程序用来创建支持空间的数据库并对该数据库中的数据执行空间分析的步骤 的描述,参阅标题为『DB2 Spatial Extender 样本程序』的主题。此主题在信息 中心和《Spatial Extender 和 Geodetic Extender 用户指南和参考》中。 DB2 Spatial Extender 提供另一样本程序 seBankDemoRunBankDemo,它将演示如 何将空间功能添加至现有信息系统。 有关这两个样本程序的更多信息,请参阅下列目录中的自述文件: Windows ~\sqllib\samples\spatial ~\sqllib\samples\spatial\bank Linux 和 UNIX ~/sqllib/spatial ~/sqllib/spatial/bank SQL 管理例程 EXEC_DB2_SCRIPT 过程不可用 文档中当前包括对名为 EXEC_DB2_SCRIPT 的过程的描述。因为此过程不是产品的 一部分,所以不应该考虑它的描述。 GET_DB_CONFIG 是一个存储过程 GET_DB_CONFIG 是一个存储过程,而不是表函数。GET_DB_CONFIG 的文档不正确 地将此过程标识为表函数。以下文本是正确的描述。 模式为 SYSPROC。 GET_DB_CONFIG 过程将返回数据库配置信息。该过程不带任何自变量。它将返回 单个结果集,该结果集具有两行,每个参数都有一列。DBCONFIG_TYPE 列的值为 0 的那一行包含存储在磁盘上的数据库配置参数的值。DBCONFIG_TYPE 列的值为 1 的那一行包含存储在内存中的数据库配置参数的当前值。 此过程需要用户临时表空间,用来创建用于存储结果集的全局临时表。 快照 UDF 的列扩展 快照 UDF 中某些 VARCHAR 和 CLOB 列的大小已更改以符合最大数据库对象名称 标准。 表 29. UDF 的已扩展列 +---------------------------------------------------------------------+ | UDF | +---------------------------+--------------------+--------------------+ | 列名 | 现有列定义 | 已更新列定义 | +---------------------------------------------------------------------+ | SYSFUN.SQLCACHE_SNAPSHOT | +---------------------------+--------------------+--------------------+ | DB_NAME | VARCHAR(8) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | STMT_TEXT | CLOB(64K) | CLOB(16M) | +---------------------------------------------------------------------+ | SNAPSHOT_APPL_INFO | +---------------------------+--------------------+--------------------+ | APPL_NAME | VARCHAR(255) | VARCHAR(256) | +---------------------------+--------------------+--------------------+ | APPL_ID | VARCHAR(32) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | AUTH_ID | VARCHAR(30) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | CLIENT_NNAME | VARCHAR(20) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | CLIENT_PRDID | VARCHAR(20) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | INPUT_DB_ALIAS | VARCHAR(20) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | CLIENT_DB_ALIAS | VARCHAR(20) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | DB_NAME | VARCHAR(8) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | DB_PATH | VARCHAR(256) | VARCHAR(1024) | +---------------------------+--------------------+--------------------+ | EXECUTION_ID | VARCHAR(20) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | CORR_TOKEN | VARCHAR(32) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | TPMON_CLIENT_USERID | VARCHAR(20) | VARCHAR(256) | +---------------------------+--------------------+--------------------+ | TPMON_CLIENT_WKSTN | VARCHAR(20) | VARCHAR(256) | +---------------------------+--------------------+--------------------+ | TPMON_CLIENT_APP | VARCHAR(20) | VARCHAR(256) | +---------------------------+--------------------+--------------------+ | TPMON_ACC_STR | VARCHAR(100) | VARCHAR(200) | +---------------------------------------------------------------------+ | SNAPSHOT_STATEMENT | +---------------------------+--------------------+--------------------+ | CURSOR_NAME | VARCHAR(31) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | CREATOR | VARCHAR(32) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | PACKAGE_NAME | VARCHAR(20) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | STMT_TEXT | CLOB(64K) | CLOB(16M) | +---------------------------------------------------------------------+ | SNAPSHOT_LOCKWAIT | +---------------------------+--------------------+--------------------+ | TABLE_NAME | VARCHAR(35) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | TABLE_SCHEMA | VARCHAR(32) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | APPL_ID_HOLDING_LK | VARCHAR(32) | VARCHAR(128) | +---------------------------------------------------------------------+ | SNAPSHOT_DATABASE | +---------------------------+--------------------+--------------------+ | INPUT_DB_ALIAS | VARCHAR(8) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | DB_NAME | VARCHAR(8) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | DB_PATH | VARCHAR(256) | VARCHAR(1024) | +---------------------------------------------------------------------+ | SNAPSHOT_BP | +---------------------------+--------------------+--------------------+ | BP_NAME | VARCHAR(20) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | DB_NAME | VARCHAR(8) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | INPUT_DB_ALIAS | VARCHAR(8) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | DB_PATH | VARCHAR(256) | VARCHAR(1024) | +---------------------------------------------------------------------+ | SNAPSHOT_LOCK | +---------------------------+--------------------+--------------------+ | TABLE_NAME | VARCHAR(35) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | TABLE_SCHEMA | VARCHAR(32) | VARCHAR(128) | +---------------------------------------------------------------------+ | SNAPSHOT_TABLE | +---------------------------+--------------------+--------------------+ | TABLE_NAME | VARCHAR(35) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | TABLE_SCHEMA | VARCHAR(32) | VARCHAR(128) | +---------------------------------------------------------------------+ | SNAPSHOT_TBREORG | +---------------------------+--------------------+--------------------+ | TABLE_NAME | VARCHAR(35) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | TABLE_SCHEMA | VARCHAR(32) | VARCHAR(128) | +---------------------------------------------------------------------+ | SNAPSHOT_SUBSECT | +---------------------------+--------------------+--------------------+ | STMT_TEXT | CLOB(64K) | CLOB(16M) | +---------------------------------------------------------------------+ | SNAPSHOT_DYN_SQL | +---------------------------+--------------------+--------------------+ | STMT_TEXT | CLOB(64K) | CLOB(16M) | +---------------------------------------------------------------------+ | HEALTH_DBM_INFO | +---------------------------+--------------------+--------------------+ | SERVER_INSTANCE_NAME | VARCHAR(8) | VARCHAR(128) | +---------------------------------------------------------------------+ | HEALTH_DBM_HI | +---------------------------+--------------------+--------------------+ | SERVER_INSTANCE_NAME | VARCHAR(8) | VARCHAR(128) | +---------------------------------------------------------------------+ | HEALTH_DBM_HI_HIS | +---------------------------+--------------------+--------------------+ | SERVER_INSTANCE_NAME | VARCHAR(8) | VARCHAR(128) | +---------------------------------------------------------------------+ | HEALTH_DB_INFO | +---------------------------+--------------------+--------------------+ | DB_NAME | VARCHAR(8) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | INPUT_DB_ALIAS | VARCHAR(8) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ | DB_PATH | VARCHAR(256) | VARCHAR(1024) | +---------------------------------------------------------------------+ | HEALTH_DB_HI | +---------------------------+--------------------+--------------------+ | DB_NAME | VARCHAR(8) | VARCHAR(128) | +---------------------------------------------------------------------+ | HEALTH_DB_HI_HIS | +---------------------------+--------------------+--------------------+ | DB_NAME | VARCHAR(8) | VARCHAR(128) | +---------------------------------------------------------------------+ | HEALTH_DB_HIC | +---------------------------+--------------------+--------------------+ | DB_NAME | VARCHAR(8) | VARCHAR(128) | +---------------------------------------------------------------------+ | HEALTH_DB_HIC_HIS | +---------------------------+--------------------+--------------------+ | DB_NAME | VARCHAR(8) | VARCHAR(128) | +---------------------------+--------------------+--------------------+ 注: SNAPSHOT_DYN_SQL、SNAPSHOT_STATEMENT、SNAPSHOT_SUBSECT 和 SQLCACHE_SNAPSHOT 例程的 STMT_TEXT 的定义已经扩展为 CLOB(16M)仅 为进一步的扩展。语句文本的实际输出将继续截断为 64K。 SQL 参考 CONNECT 语句 显式连接至 Windows 服务器时,TO authorization-name 或 USER host-variable 可使用符合 Microsoft Windows NT Security Account Manager(SAM)的名称指 定。限定符必须为 NetBIOS 式名称,其最大长度为 15 个字符。例如,'Domain\ User'。 说明设施使用的模式 说明设施在限定要填充的说明表时使用下列标识作为要使用的模式: * 动态 SQL 的会话授权标识 * 静态 SQL 的语句授权标识 该模式可能与一组说明表或指向另一模式下的一组说明表的别名相关联。 如果在该模式下找不到任何说明表,说明设施将检查 SYSTOOLS 模式下的说明表 并尝试使用它们。 日期时间值的字符串表示法 时间字符串 时间的字符串表示法是以数字开头的字符串,长度至少为 4 个字符。可包括结尾 空格;可忽略时间的小时部分中的前导零,而秒数可以全部忽略。如果秒数被忽 略,将采用 0 秒隐式规范。因此,13:30 相当于 13:30:00。 时间的有效字符串格式列示在下表中。每个格式是由名称和相关联的缩写标识的。 表 30. 时间的字符串表示法的格式 +---------------------------+-------------+-------------+-------------+ | 格式名 | 缩写 | 时间格式 | 示例 | +---------------------------+-------------+-------------+-------------+ | 国际标准组织 | ISO | hh.mm.ss | 13.30.05 | +---------------------------+-------------+-------------+-------------+ | IBM 美国标准 | USA | hh:mm AM 或 | 1:30 PM | | | | PM | | +---------------------------+-------------+-------------+-------------+ | IBM 欧洲标准 | EUR | hh.mm.ss | 13.30.05 | +---------------------------+-------------+-------------+-------------+ | 日本工业标准公元 | JIS | hh:mm:ss | 13:30:05 | +---------------------------+-------------+-------------+-------------+ | 站点定义 | LOC | 取决于应用 | - | | | | 程序的地域 | | | | | 代码 | | +---------------------------+-------------+-------------+-------------+ 从版本 8.2 开始,“AM”和“PM”可以小写或大写表示。 系统监视器 未启用连接集中器的情况下的去耦应用程序列表 在发出列示应用程序命令时可能会见到去耦应用程序(即使在未启用连接集中器 的情况下)。 运行时回滚进程的进度监视 运行时回滚的进度监视使用应用程序快照提供回滚事件的进度信息。回滚事件包 括两种类型: 工作单元回滚 包括整个事务的显式(用户调用)和隐式(强制)回滚。 保存点回滚 包括语句和应用程序级别保存点。嵌套保存点被视为单个单元,使用最 外部的保存点。 提供的信息包括回滚事件的启动时间、要完成的工作总量和完成的工作。工作度 量为字节。 总工作单元是需要对事务或保存点回滚的日志流的范围。 完成的工作单元显示已回滚的日志流中的相对位置。 对已完成的工作的更新是在处理每个日志记录之后进行的。因为日志记录的大小 有所变化,所以更新并非均匀执行。 GET SNAPSHOT FOR ALL APPLICATIONS 命令中的样本输出 Application Snapshot Application handle = 6 Application status = Rollback Active Start Time = 02/20/2004 12:49:27.713720 Completed Work = 1024000 bytes Total Work = 4084000 bytes Application Snapshot Application handle = 10 Application status = Rollback to Savepoint Start Time = 02/20/2004 12:49:32.832410 Completed Work = 102400 bytes Total Work = 2048000 bytes 注: 如果回滚在快照期间不活动,则回滚元素将不显示出来。 XML Extender 分解大于 1 MB 的文档 不需要通过先删除然后重新创建存储过程 dxxShredXML 来分解大于 1 MB 的文档。 要分解大于 1 MB 的文档,只需调用存储过程 dxxShredXML100MB,它可以将文 档分解成最大为 100 MB。尽管 dxxShredXML100MB 可以处理大型文档,但是可能 需要增大其它资源才能成功地完成该存储过程。要通过样本程序 dxxshrd 来调用 存储过程,使用新标志“-large”。例如: dxxshrd -large mydb xxx.xml 如果 DB2 Universal Database(DB2 通用数据库)的版本早于版本 8 修订包 6, 则必须运行 dxxMigv 来将 XML Extender 迁移至当前级别,这样才能运行新的 存储过程。 使用 XML Extender 配置 MQ XML UDF 必须配置并启用 MQ XML 用户定义的函数(UDF)才能使用它们。 先决条件 通过遵循『安装 DB2 WebSphere MQ 函数』主题中的过程来安装 UDF,可在信息 中心或《IBM DB2 Information Integrator 应用程序开发者指南》中找到该主题。 过程 要使用 XML Extender 配置和启用 MQ XML UDF: 1. 打开 DB2 命令提示符窗口。 2. 通过输入以下命令连接至将使用 MQ XML UDF 的数据库: db2 connect to 3. 切换至安装 DB2 Universal Database(DB2 通用数据库)的路径中的 bnd 目 录,例如: * SQLLIB/bnd(Linux 和 UNIX) * C:\Program Files\IBM\SQLLIB\bnd(Windows) 4. 使用以下命令将数据库绑定至 XML Extender: db2 bind @dbxxbind.lst 5. 使用以下命令绑定数据库以便 XML Extender 使用 MQ XML UDF: db2 bind mqxml.bnd 6. 使用以下命令将数据库绑定至 CLI: db2 bind @db2cli.lst XML Extender 环境变量 DB2DXX_MIN_TMPFILE_SIZE DB2 XML Extender 可将大型文档将在临时文件中以避免在处理时使用大量内存。 在带有大量物理内存的系统上,可避免将文档移至临时文件以降低输入/输出活 动量。环境变量 DB2DXX_MIN_TMPFILE_SIZE 指示 XML Extender 使用内存缓冲区 (而不是临时文件)来处理小于指定值的文档。该变量仅在服务器上适用。如果 多个物理节点参与分区环境,可在每个节点上以不同方式设置该变量以反映安装 在每台计算机上的内存量。如果未设置环境变量,则大于 128 KB 的文档在处理 期间将自动放置在临时文件中。小于 128 KB 的文档将在内存中处理。 DB2XML.XMLVarchar UDT 重新定义 可重新定义用户定义的类型(UDT)DB2XML.XMLVarchar,最大可达 32 KB。要更改 XMLVarchar UDT 的大小,在对 XML Extender 启用数据库之前创建 UDT。 有关更多信息,请参阅《DB2 XML Extender 管理和编程》。 附录A. DB2 UDB 修订包 CD 目录结构 Windows 操作系统 修订包 CD 上的文件位于以下位置: 表 31. Windows 文件 +------------------+--------------------------------------------------+ | 文件 | 位置 | +------------------+--------------------------------------------------+ | DB2 产品文件: | x:\db2 | +------------------+--------------------------------------------------+ | 安装先决条件: | x:\doc\\install.txt | +------------------+--------------------------------------------------+ | 安装先决条件(HT | x:\doc\\install.htm | | ML): | | +------------------+--------------------------------------------------+ | 许可证文件: | x:\db2\license | +------------------+--------------------------------------------------+ | 发行说明: | x:\doc\\release.txt | +------------------+--------------------------------------------------+ | 发行说明(HTML) | x:\doc\\db2ir\index.htm | | : | | +------------------+--------------------------------------------------+ 其中: * x: 指的是 CD 驱动器 * 指的是语言目录,由 5 个字符的代码组成,对应表 33 的其中一种语言 UNIX 操作系统 修订包 CD 上的文件位于以下位置 表 32. UNIX 文件 +------------------+--------------------------------------------------+ | 文件 | 位置 | +------------------+--------------------------------------------------+ | DB2 产品文件: | /cdrom/db2 | +------------------+--------------------------------------------------+ | 安装先决条件: | /cdrom/doc//install.txt | +------------------+--------------------------------------------------+ | 安装先决条件(HT | /cdrom/doc//install.htm | | ML): | | +------------------+--------------------------------------------------+ | 许可证文件: | /cdrom/db2/license | +------------------+--------------------------------------------------+ | 发行说明: | /cdrom/doc//release.txt | +------------------+--------------------------------------------------+ | 发行说明(HTML) | /cdrom/doc//db2ir/index.htm | | : | | +------------------+--------------------------------------------------+ 其中: * /cdrom 指的是安装点 * 指的是语言目录,由 5 个字符的代码组成,对应表 33 的其中一种语言 下表描述语言目录名及其对应语言。 表 33. 目录名及其对应的语言 +----------------+----------------------------------------------------+ | 目录 | 语言 | +----------------+----------------------------------------------------+ | ar_AA | 阿拉伯语 | +----------------+----------------------------------------------------+ | bg_BG | 保加利亚语 | +----------------+----------------------------------------------------+ | cs_CZ | 捷克语 | +----------------+----------------------------------------------------+ | da_DK | 丹麦语 | +----------------+----------------------------------------------------+ | de_DE | 德语 | +----------------+----------------------------------------------------+ | el_GR | 希腊语 | +----------------+----------------------------------------------------+ | en_US | 英语 | +----------------+----------------------------------------------------+ | es_ES | 西班牙语 | +----------------+----------------------------------------------------+ | fi_FI | 芬兰语 | +----------------+----------------------------------------------------+ | fr_FR | 法语 | +----------------+----------------------------------------------------+ | hr_HR | 克罗地亚语 | +----------------+----------------------------------------------------+ | hu_HU | 匈牙利语 | +----------------+----------------------------------------------------+ | it_IT | 意大利语 | +----------------+----------------------------------------------------+ | iw_IL | 希伯莱语 | +----------------+----------------------------------------------------+ | ja_JP | 日语 | +----------------+----------------------------------------------------+ | ko_KR | 韩国语 | +----------------+----------------------------------------------------+ | nl_NL | 荷兰语 | +----------------+----------------------------------------------------+ | no_NO | 挪威语 | +----------------+----------------------------------------------------+ | pl_PL | 波兰语 | +----------------+----------------------------------------------------+ | pt_BR | 巴西葡萄牙语 | +----------------+----------------------------------------------------+ | pt_PT | 葡萄牙语 | +----------------+----------------------------------------------------+ | ro_RO | 罗马尼亚语 | +----------------+----------------------------------------------------+ | ru_RU | 俄语 | +----------------+----------------------------------------------------+ | sk_SK | 斯洛伐克语 | +----------------+----------------------------------------------------+ | sl_SI | 斯洛文尼亚语 | +----------------+----------------------------------------------------+ | sv_SE | 瑞典语 | +----------------+----------------------------------------------------+ | tr_TR | 土耳其语 | +----------------+----------------------------------------------------+ | zh_CN | 简体中文 | +----------------+----------------------------------------------------+ | zh_TW | 繁体中文 | +----------------+----------------------------------------------------+ 注: 1. 目录名可能以大写字母或小写字母显示,这取决于您的操作系统。 2. 此 CD 上可能不会显示先前列表中的所有目录,这是因为并未在所有 CD 上提 供所有语言目录。 3. 从版本 8.2 开始,『安装说明』是《发行说明》中的一节。 附录B. 与 IBM 联系 在中国,请致电下列其中一个号码以与 IBM 联系: * 800-810-1818 或 (010) 84981188 分机 5151,可获得售前客户服务 * 800-810-1818 或 (010) 84981188 分机 5200,可获得售后客户服务 * 800-810-1818 或 (010) 84981188 分机 5017, 可获得市场营销与销售的信息 要查找您所在国家或地区的 IBM 营业处,可在网上查看 IBM 全球联系人目录 (Directory of Worldwide Contacts),网址为:http://www.ibm.com/planetwide B.1 产品信息 有关 DB2 通用数据库产品的信息可通过万维网获取,网址为:http://www- 900.ibm.com/cn/software/db2/ 此站点包含有关 DB2 产品家族、DB2 解决方案、技术前沿与趋势、DB2 服务、成 功案例、市场活动、培训与认证、DB2 开发者园地、合作伙伴、下载中心、资料 库、第三方分析报告、殊荣与奖项、DB2 新闻以及如何购买 DB2 的最新信息。 有关如何在中国以外的国家或地区与 IBM 联系的信息,请访问 IBM Worldwide 页面,网址为:www.ibm.com/planetwide 附录C. 声明 IBM 可能不在所有国家或地区提供本文档中讨论的产品、服务或功能特性。有关 您当前所在区域的产品和服务的信息,请向您当地的 IBM 代表咨询。任何对 IBM 产品、程序或服务的引用并非意在明示或暗示只能使用 IBM 的产品、程序或服务。 只要不侵犯 IBM 的知识产权,任何同等功能的产品、程序或服务,都可以代替 IBM 产品、程序或服务。但是,评估和验证任何非 IBM 产品、程序或服务,则由 用户自行负责。 IBM 公司可能已拥有或正在申请与本文档内容有关的各项专利。提供本文档并未 授予用户使用这些专利的任何许可。您可以用书面方式将许可查询寄往: IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 U.S.A. 有关双字节(DBCS)信息的许可查询,请与您所在国家或地区的 IBM 知识产权部 门联系,或用书面方式将查询寄往: IBM World Trade Asia Corporation Licensing 2-31 Roppongi 3-chome, Minato-ku Tokyo 106, Japan 条款不适用英国或任何这样的条款与当地法律不一致的国家或地区: International Business Machines Corporation“按现状”提供本出版物,不附 有任何种类的(无论是明示的还是暗含的)保证,包括但不限于暗含的有关非侵 权、适销和适用于某种特定用途的保证。某些国家或地区在某些交易中不允许免 除明示或暗含的保证。因此本条款可能不适用于您。 本信息中可能包含技术方面不够准确的地方或印刷错误。此处的信息将定期更改; 这些更改将编入本资料的新版本中。IBM 可以随时对本资料中描述的产品和/或 程序进行改进和/或更改,而不另行通知。 本信息中对非 IBM Web 站点的任何引用都只是为了方便起见才提供的,不以任何 方式充当对那些 Web 站点的保证。那些 Web 站点中的资料不是 IBM 产品资料的 一部分,使用那些 Web 站点带来的风险将由您自行承担。 IBM 可以按它认为适当的任何方式使用或分发您所提供的任何信息而无须对您承 担任何责任。 本程序的被许可方如果要了解有关程序的信息以达到如下目的:(i)允许在独立 创建的程序和其他程序(包括本程序)之间进行信息交换,以及(ii)允许对已 经交换的信息进行相互使用,请与下列地址联系: IBM Canada Limited Office of the Lab Director 8200 Warden Avenue Markham, Ontario L6G 1C7 CANADA 只要遵守适当的条件和条款,包括某些情形下的一定数量的付费,都可获得这方 面的信息。 本资料中描述的许可程序及其所有可用的许可资料均由 IBM 依据 IBM 客户协议、 IBM 国际软件许可协议或任何同等协议中的条款提供。 此处包含的任何性能数据都是在受控环境中测得的。因此,在其他操作环境中获 得的数据可能会有明显的不同。有些测量可能是在开发级的系统上进行的,因此 不保证与一般可用系统上进行的测量结果相同。此外,有些测量是通过推算而估 计的,实际结果可能会有差异。本文档的用户应当验证其特定环境的适用数据。 涉及非 IBM 产品的信息可从这些产品的供应商、其出版说明或其他可公开获得的 资料中获取。IBM 没有对这些产品进行测试,也无法确认其性能的精确性、兼容 性或任何其他关于非 IBM 产品的声明。有关非 IBM 产品性能的问题应当向这些 产品的供应商提出。 所有关于 IBM 未来方向或意向的声明都可随时更改或收回,而不另行通知,它们 仅仅表示了目标和意愿而已。 本信息可能包含在日常业务操作中使用的数据和报告的示例。为了尽可能完整地 说明这些示例,示例中可能会包括个人、公司、品牌和产品的名称。所有这些名 称都是虚构的,与实际商业企业所用的名称和地址的任何雷同纯属巧合。 版权许可: 本信息可能包括源语言形式的样本应用程序,这些样本说明不同操作平台上的编 程方法。如果是为按照在编写样本程序的操作平台上的应用程序编程接口(API) 进行应用程序的开发、使用、经销或分发为目的,您可以任何形式对这些样本程 序进行复制、修改、分发,而无须向 IBM 付费。这些示例并未在所有条件下作全 面测试。因此,IBM 不能担保或暗示这些程序的可靠性、可维护性或功能。 凡这些样本程序的每份拷贝或其任何部分或任何衍生产品,都必须包括如下版权 声明: (C)(贵公司的名称)(年)。此部分代码是根据 IBM 公司的样本程序衍生出来的。 (C) Copyright IBM Corp. (输入年份). All rights reserved. C.1 商标 下列各项是国际商业机器公司在美国和/或其他国家或地区的商标,且已在 DB2 UDB 文档库中的至少一份文档中使用。 ACF/VTAM iSeries AISPO LAN Distance AIX MVS AIXwindows MVS/ESA AnyNet MVS/XA APPN Net.Data AS/400 NetView BookManager OS/390 C Set++ OS/400 C/370 PowerPC CICS pSeries Database 2 QBIC DataHub QMF DataJoiner RACF DataPropagator RISC System/6000 DataRefresher RS/6000 DB2 S/370 DB2 Connect SP DB2 Extender SQL/400 DB2 OLAP Server SQL/DS DB2 Information Integrator System/370 DB2 Query Patroller System/390 DB2 Universal Database SystemView Distributed Relational Tivoli Database Architecture VisualAge DRDA VM/ESA eServer VSE/ESA Extended Services VTAM FFST WebExplorer First Failure Support Technology WebSphere IBM WIN-OS/2 IMS z/OS IMS/ESA zSeries 下列各项是其他公司的商标或注册商标,且已在 DB2 UDB 文档库中的至少一份文 档中使用: Microsoft、Windows、Windows NT 和 Windows 徽标是 Microsoft Corporation 在美国和/或其他国家或地区的商标。 Intel 和 Pentium 是 Intel Corporation 在美国和/或其他国家或地区的商标。 Java 和所有基于 Java 的商标是 Sun Microsystems, Inc. 在美国和/或其他国 家或地区的商标。 UNIX 是 The Open Group 在美国和其他国家或地区的注册商标。 Sleepycat 和此处引用的 Sleepycat 软件产品的名称是 Sleepycat Software, Inc. 的商标、注册商标或服务标记。 其他公司、产品或服务名称可能是其他公司的商标或服务标记。