首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在 Linux 上利用数据分区功能提高可伸缩性和性能(2)

在 Linux 上利用数据分区功能提高可伸缩性和性能(2)

在 SUSE Linux Enterprise Server V9 上安装 DB2 V8.2下面我们来介绍在 SUSE Server(或多服务器)环境中安装和运行 DB2 DPF 所需的步骤。
步骤 1. 检验其他软件包DB2 要求在 Linux 系统上安装以下包:
  • Public domain korn shell (pdksh)
  • Remote shell (rsh)  或 open source secure shell (OpenSSH)
  • IBM Java™ 2 Java Run Time
  • Network File Server (nfs)
使用 rpm 命令来检验这些包是否已安装:
  • rpm -qa | grep pdksh
  • rpm -qa | grep rshrpm -qa | grep openssh
  • rpm -qa | grep IBMjava
  • rpm -qa | grep nfs
步骤 2. 检验内核参数在安装 Linux 之前,请确认目前所推荐的、适合 DB2 的 Linux 版本。链接 “” 显示了受支持的 Linux  发行版。确保安装受推荐、受支持版本的 Linux。
在安装 DB2 时,需要注意一些内核参数:
表 1. 对 DB2 有影响的内核参数内核参数描述kernel.shmmax定义系统范围内允许的最大共享内存段大小,单位为字节kernel.msgmni定义在任何时刻系统上允许的最多消息队列标识符个数fs.file-max定义 Linux 内核最多分配的文件句柄个数kernel.sem定义信号量限制:                    
  • 每个数组的最多信号量个数(semmsl)
  • 系统范围内最多允许的信号量个数(semmns)
  • 每次 semop 调用的最大操作数(semopm)
  • 最多允许的数组个数(semmni)
                **                信号量提供了进程间的低级同步,使得只有一个进程可以访问共享段,从而确保共享段的完整性。
在 Kernel 2.4.18 及以后版本中,file-max 参数的默认值是 8192,因此可能不需要修改它。可以使用以下命令来检查 file-max 值:
cat /proc/sys/fs/file-max
使用 lpcs 命令显示当前的 Linux 内核设置:
lpcs -l
从 DB2 UDB Version 8.2 以后,DB2 在启动时将检查 semmni、msgmni 和 shmmax 参数的值,如果当前值不是最佳的,则更新之。DB2 自动将内核参数设置如下:
  • semmni 被改为 1024。
  • msgmni 被改为 1024。
  • shmmax 被改为 268435456 (32-位) 或 1073741824 (64-位)。
注意,系统范围内最多信号量个数(semmns)等于:
数组的最多个数 (semmni) * 每个数组的最多信号量个数 (semmsl)
在安装 DB2 后,还可以通过 db2pd 命令检验 semni、msgmni、shmmax 参数:
db2pd -osinfo
在性能调优时,可能还需要调整其他内核参数。手册上的规程如下:
  • 以具有 root 权限的用户登录。
  • 创建一个 /etc/sysctl.conf 文件,如果还没有该文件的话。
  • 在 /etc/sysctl.conf 文件中添加内核条目。
  • 运行 sysctl -p 从默认文件 /etc/sysctl.conf 装载 sysctl 设置。
  • 添加 sysctl -p 到一个系统初始化文件中,以便在每次重新启动时设置内核参数。
步骤 3. 检验网络文件 /etc/hosts 包含指定给主机名的地址(包括一个 IP 地址、全限定主机名和主机名)。为了得到最佳性能,应确保所有参与的服务器在 /etc/hosts 文件中都有定义。
步骤 4. 启用远程 shell 实用程序对于数据分区环境,DB2 需要一个远程 shell 实用程序来在远程分区上执行命令。在 DB2 UDB V8.2.2 之前,rsh 实用程序被默认用作远程 shell 机制,用于分区之间的通信。为了强认证和安全网络通信的需要,DB2 UDB V8.2.2 现在允许在一个名为 DB2RSHCMD 的注册表 profile 变量中指定远程 shell 实用程序的完整路径,从而增加了对备用远程 shell 实用程序的支持。
OpenSSH (Open Source Secure Shell) 用于代替 rsh 实用程序,以便在不安全的通道上提供有安全保障的通信。OpenSSH 支持两种类型的加密,即基于主机的认证和公钥认证。关于在 DB2 中使用 OpenSSH 的详细信息,请参考标题为“” 的技术文章,这篇文章解释了如何在 DB2 中启用 OpenSSH。
为支持一个受安全保障的环境,在数据库分区环境中,应该使用 OpenSSH,而不是 rsh。如果选择启用 rsh 服务,那么只需去掉 /etc/inetd.conf 文件中与 in.rshd 服务对应的 "#" 字符。为了重新启动 inetd 服务器,可以输入:
/etc/init.d/inetd restart
步骤 5. 设置 Network File System (NFS)对于一个数据分区配置,必须有一个可供所有参与分区数据库系统的机器使用的文件系统。这个文件系统将用于 DB2 实例的 home 目录。容纳 DB2 实例的机器称作 instance-owning 机器。为了共享该文件系统,必须配置 Network File System。对于 Linux,可以通过发出以下命令来检验 NFS 服务器是否正在运行:
showmount -e hostname
该命令显示在一个 NFS 服务器中定义的文件系统的一个列表。如果 NFS 不在运行,那么将收到以下消息:
showmount: hostname: RPC: Program not registered
可以通过选择 MiscInstallation Server 来使用 YaST 配置 NFS。注意,应该以 root ID 登录。
图 4. YaST Installation Server:选择服务器类型
返回列表