步骤 5:应用最新的 FixPak
在此时,DB2 运行在 FixPak 2+ 级别。我们要使系统变为最新的 FixPak 级别。要应用 DB2 FixPak,执行下列步骤:
停止所有 DB2 实例和 DB2 Administration Server。su - root
/usr/opt/db2_08_01/bin/db2vwsvr stop # run at each server where DB2 WHM is running
su -
instanceowner
db2stop
db2licd -end # run at each physical server
su -
DASowner
db2admin stop # run at each physical server
su - root
/usr/sbin/slibclean # run at each physical server
使用 root 从 DB2 FixPak 安装映像位置运行 installFixPak。
对所有分区服务器重复步骤 2。
使用 root 将实例所有服务器中 DB2 实例和所有服务器中的 DB2 Administration Server 更新到与 FixPak 一样的代码级别。/usr/opt/db2_08_01/instance/db2iupdt
instancename
/usr/opt/db2_08_01/instance/dasupdt
dasname
发出 db2start和 db2stop 命令。从 $INSTHOME/sqllib/db2dump/db2diag.log 验证 DB2 启动和停止没有错误。
还要应用 Intelligent Miner 补丁。遵循与下载的补丁一起提供的说明。
步骤 6:安装 DB2 客户机
可以使用 DB2 DWE Integrated Installation 安装 DB2 DWE 客户机。使用 CLIENT Install Type 选项。或者可以分别安装每个产品。对于 Windows 客户机,需要分别为 DB2 UDB、DB2 Cube Views 和 DB2 Query Patroller 下载 DB2 FixPak。需要在安装 DB2 Cube Views 和 DB2 Query Patroller Clients 之前将 DB2 FixPak 2+ 或更高版本应用于 DB2 Client。安装之后还需再次应用最新的 FixPak。下面是客户机安装的概括顺序:
DB2 Administration Client --> DB2 UDB FixPak 2+ 或更新版本 --> DB2 Cube Views OLAP Center --> DB2 Query Patroller Client --> DB2 FixPak 5 或更新版本(与服务器的 FixPak 级别相同)
Intelligent Miner Visualization 不需要 DB2 客户机作为先决条件。不过,大多数 Intelligent Miner 用户将可以访问 DB2 数据仓库;通常仅需要 DB2 Runtime Client。
步骤 7:配置 DB2 DWE 组件
直到此时,我们仅在服务器和客户机中安装了产品映像。在服务器中创建了 DB2 实例。但是我们还没有创建任何数据库,没有对每个产品组件做任何配置。
在下面的步骤中,我们将为下列各项创建和配置 DB2 数据库:
DB2 Warehouse Manager Control Database。在本文中,将创建为 DWCTRLDB 。
Information Catalog Manager Database。在本文中,将创建为 IWCATDB 。
Office Connect Report Repository。在本文中,将创建为 OFFCCONN 。
企业数据仓库数据库。在本文中,将创建为 EDWDB 。
然后配置 DB2 DWE 中的每个组件。
创建数据库
创建数据库时,非常重要的是隐式定义系统和临时表空间的位置。创建了数据库后,可以定义其他系统临时表空间、用户表空间和缓冲池。下面是设置数据库和表空间时的一些技巧。
编目和临时表空间使用 SMS 表空间。
对比 SMS 或 DMS 文件表空间,对用户表空间使用 raw DMS 可以提高性能 10% 或更多。
永远不要将同一表空间的多个容器放在同一物理磁盘上。不过,一个物理磁盘可以包含不同表空间的多个容器,但是您应该验证查询将不需要同时访问同一磁盘上的两个表空间。参见图 10。另外,确保每个物理磁盘仅由一个 DB2 分区使用,不与其他 DB2 分区共享。
图 10:数据库分区上的表空间容器布局
确保表空间容器名称在所有数据库分区中惟一,即使它们在不同的服务器中。在表空间定义中使用数据库分区表达式 $N 可以简化 CREATE TABLESPACE 语句。例如,指定容器名称为 'edwdp $N ts1cont1' ,DB2 在数据库分区 0 上创建容器 'edwdp0ts1cont1' ,在数据库分区 1 上创建 'edwdp1ts1cont1' ,在数据库分区 2 上创建 'edwdp2ts1cont1' ,等等。
因为数据仓库应用程序通常一次访问大量连续的行,使用大的页(如 16K 页或 32K 页)通常更好,因为它可以减少 I/O 请求数。不过,页大小大于 row size * 255将浪费磁盘空间和缓冲池,尤其是在大的表中,因为一个页最多只能包含 255 个记录。
创建最少数量的系统临时表空间。临时表空间的页大小应该等于您的主要用户表空间中使用的页大小,应该足够放下查询中的最大行。通常应使临时表空间的页大小与最大的经常使用的表所在的表空间的页面大小相同。
表空间的区段大小应该与 RAID 设备的条带宽度相同或是条带大小的倍数。设置预取大小为:min (512, extend size * # of containers in tablespace in the database partition)
使用单独的文件系统用于记录不同的数据库分区。
为您为表空间定义的每个页大小分配缓冲池。在新的系统中,开始时最好为 DB2 缓冲池和排序分配 75% 的实际内存,为操作系统和其他 DB2 内存区域分配 25% 的实际内存。在这 75% 中,为缓冲池分配 50%,另外 50% 用于排序堆(sheapthres)。然后使排序堆大小等于:sortheap = sheapthres / (# of complex concurrent queries * max # of concurrent sorts
and hash joins in your average query)
注意开始时并发排序和散列连接的最大数目最好在 5 或 6 之间。
可以使用 DB2 Configuration Advisor 对您的环境的初始参数设置进行建议。在大多数情况中,Configuration Advisor 应该带来性能的重大提高。输入是根据分区数目指定。所以如果在服务器中运行 4 个 DB2 分区,则可以指定目标内存为 25% 或更少,因为每个分区消耗服务器资源的 25%。
图 11:Configuration Advisor
如果可能,分配一个数据库分区仅放置编目和小表。这将释放该分区中的一些资源,从而它可以用作协调程序分区或用于运行 DB2 Warehouse Manager 和 Query Patroller 服务器。
对一些 DB2 注册表变量的更改可以提高性能。注意在多服务器环境中,应该在每台服务器中运行 db2set -all 以确保相同 DB2 注册表应用于所有服务器。
DB2_PARALLEL_IO:如果每个表空间中有少量的容器且每个容器跨多个 RAID 磁盘,请使用 DB2_PARALLEL_IO。这将在单个容器中启用并行 I/O;否则 DB2 将每个容器使用一个 I/O 服务器。db2set DB2_PARALLEL_IO=*
DB2_FORCE_FCM_BP:通过启用此注册表为 YES,同一物理服务器中不同分区的 FCM 守护程序之间的通信将通过共享内存完成,而不是通过 UNIX 套接字。这使 DB2 分区间的通信速度更快且减少的共享内存段大小可以用于其他用途,如数据库缓冲池。db2set DB2_FORCE_FCM_BP=YES
下面是用于创建 EDW 数据库的 SQL 示例:
create database EDW on /db2/databases
catalog tablespace managed by system using ('/EDW/catfs0', '/EDW/catfs1')
extendsize 32 prefetchsize 64
temporary tablespace managed by system using ('/EDW/tempdpt $N fs0', '/EDW/tempdpt $N fs1')
extendsize 32 prefetchsize 64
DB2 Warehouse Manager 安装后设置
确保将环境变量 EXTSHM 设为 ON。这是运行 Warehouse Manager 和 Query Patroller 之前必需的操作。
以 db2inst1 登录。停止 DB2 实例。编辑 $INSTHOME/sqllib/db2profile 。添加下列条目:EXTSHM=ON
export EXTSHM
通过在每台服务器上运行 db2set 更新 DB2 注册表。db2set DB2ENVLIST=EXTSHM
从 X-Window,运行 db2wcdbm 来创建和初始化 DB2 Warehouse Manager Control Database。输入下列信息并单击 OK。程序将创建并填充 Warehouse Manager Control 表,其将位于数据分区编号 0 中的单一分区 SMS 表空间中。
New control database: DWCTRLDB
Schema: IWH
User ID: db2inst1
Password: xxxxx
要启动和停止 DB2 Warehouse Manager,以 root 登录,运行:/usr/opt/db2_08_01/bin/db2vwsvr stop
/usr/opt/db2_08_01/bin/db2vwsvr start
(可选)默认情况下,Warehouse Manager Agent 使用 DB2 CLI 访问数据源和目标数据库。使用 DB2 Information Integrator,您可以使用 Warehouse Manager Agent 通过 DB2 CLI 访问 Oracle、Sybase、Microsoft SQL Server 和 Teradata。
不过,如果在多台服务器中安装了 Warehouse Manager Agent,您可能想配置 Agent 在一台服务器中使用 DB2 CLI,而在另一台服务器中使用 ODBC。通过配置 Agent 使用 ODBC,可以使 Agent 通过使用 InterSolv ODBC Driver 直接执行 SQL SELECT 来合并文件。要配置 ODBC,必须创建 odbc.ini 和 ODBCINI 变量。 /usr/opt/db2_08_01/odbc/odbc.ini.intersolv 中提供了示例。使用 root 在您要转换 Agent 使用 O