DB2 DPF 分区安装配置

概念:DB2 数据库分区称为节点或数据库节点,是 DB2 企业版 DPF(Data Partitioning Feature)选件提供的,它主要用来为大规模数据处理、高并发数据访问提供支持。DB2 数据库分区采用 Share-nothing 体系结构,数据库在一个非共享的环境中被分解为独立的分区,每个分区都具有自己的资源,例如内存,CPU 和磁盘以及自己的数据、索引、配置文件和事务日志。
  
    分区的优势是:通过HASH算法将文件分布存储于不同的节点目录内,可以提高相应的事务/IO操作的并发能力
  
   实验环境为linux2.6.18-194.el5,数据库版本为db2 v9.7,
   1,实验前的准备:
   1.1 两台实验机的ip为同一网段,如:172.16.10.1/24 zhang3.shaw.com;
172.16.10.2/24 zhang4.shaw.com
   1.2 两台试验机新建相同gid的group名和uid的用户名
   为db2数据库分区配置应用
   groupadd -g 502 db2iamd1
   gourpadd -g 503 db2fenc1
   同时确保DAS(database administrator)的帐号和用户uid为相同,我这里是db2i9
   相关das查看命令为
   [db2inst3@zhang3 ~]$ db2set -all |grep DB2ADMINSERVER
[g] DB2ADMINSERVER=db2i9
配置相应两端服务器的相应的hosts文件
/etc/hosts
将相应的127.0.0.1 注销掉。
相关的配置文件为/home/db2inst3/sqllib/profile.env
   用户: useradd -g 502 -u 106 db2inst3 (instance user)
          useradd -g 503 -u 107 db2fenc3(fenced user)

  1.3  配置SSH 协议通信, 很多文章要求配置RSH 。RSH 协议通讯没有加密。故不推荐采用。并且配置起来比较麻烦。

        配置完成以后,请使用DB2SET DB2RS=/user/bin/ssh

  在/etc/hosts写入配置文件
  内容: zhang4.shaw.com db2inst3
         zhang3.shaw.com db2inst3
         
1.4,配置相应的NFS服务
  2,开始安装相应的分区ESE数据库
  选择定制安装并选择分区(本例为4个分区,记下相应的tcp/ip通信端口 )
这里需要注意的是在主端(zhang4.shaw.com)的服务器上定制化安装相应的实例与ses服务,而在作为从端(zhang3.shaw.com)上安装SES服务软件即可,选择不安装实例!
  3,配置分区相应的配置文件(该文件确定了本地相对应的逻辑分区组
  3.1 先确定所有数据库实例已关闭
  db2stop
在zhang4.shaw.com和zhang3.shaw.com主机上配置相应的db2SES数据库和相关实例,用户和组如下:
cat /etc/passwd
db2inst3:x:109:105::/home/db2inst3:/bin/bash
db2fenc3:x:120:106::/home/db2fenc3:/bin/bash
3.2 本例4个分区,相对应的配置如下:

zhang4.shaw.com 和zhang3.shaw.com主机:
zhang4.shaw.com主机上的db2nodes.cfg配置,该主机作为分区数据库的主库。
  [db2inst3@zhang4 ~]$ cat /home/db2inst3/sqllib/db2nodes.cfg
0 zhang4.shaw.com 0(此处的服务名要与os的主机名相对应)
(节点名)1 zhang3.shaw.com 0(逻辑分区名)
2 zhang4.shaw.com 1
3 zhang4.shaw.com 2
确保zhang4.shaw.com主机的db2inst3目录映射zhang3.shaw.com的db2inst3目录,便于后期数据库分区
实验的操作。
启动数据库
db2start
                     
3.3 netstat -an -t 查看数据库实例与分区相应通信状态
实例
tcp        0      0 0.0.0.0:50002               0.0.0.0:*                   LISTEN   
4个分区
tcp        0      0 192.168.102.155:60008       0.0.0.0:*                   LISTEN     
tcp        0      0 192.168.102.155:60009       0.0.0.0:*                   LISTEN     
tcp        0      0 192.168.102.155:60010       0.0.0.0:*                   LISTEN     
tcp        0      0 192.168.102.155:60011       0.0.0.0:*                   LISTEN  
相对应的端口号可以在/etc/servers文件中找到
实例
db2c_db2inst3   50002/tcp
4个分区
db2c_db2inst3   50002/tcp
DB2_db2inst3    60004/tcp
DB2_db2inst3_1  60005/tcp
DB2_db2inst3_2  60006/tcp
DB2_db2inst3_END        60007/tcp
4,配置数据库
create database info(dbname)
数据库建立了几个分区其数据库实例目录下就会出现几个节点目录
drwxrwxr-x 9 db2inst3 db2iadm1 4096 Aug  7 11:35 NODE0000
drwxrwxr-x 7 db2inst3 db2iadm1 4096 Aug  7 11:35 NODE0001
drwxrwxr-x 7 db2inst3 db2iadm1 4096 Aug  7 11:35 NODE0002
drwxrwxr-x 7 db2inst3 db2iadm1 4096 Aug  7 11:35 NODE0003
5,配置相应的分区组:在分区内部进行划分服务单元便于管理
在数据库连接的状态下进行分区组创建操作:
create database partition group t1
on dbpartitionnums(0 to 1)(这里为什么用0和1呢,因为可以查看相关的实验效果
  查看相关分区组
  list database partition groups
  DATABASE PARTITION GROUP   
-----------------------------
IBMCATGROUP   系统默认生成              
IBMDEFAULTGROUP   系统默认生成         
T1           手动创建               
ZHANG4        手动创建              
  4 record(s) selected.
  我这里是四个,其中zhang4为错误创建的,删除分区组命令为下:
  drop database partition group zhang4
  查看分区组及相应的拥有者
  db2 => select dbpgname,owner from syscat.dbpartitiongroups
DBPGNAME                     OWNER                                                                                                                          
------------------------------------
IBMCATGROUP                 SYSIBM                                                                                                                        
IBMDEFAULTGROUP             SYSIBM                                                                                                                        
IBMTEMPGROUP                SYSIBM                                                                                                                        
T1                         DB2INST3   
                                    
                                                                                                           
  几个相关查看分区组的视图:
syscat.dbpartitiongroups
syscat.partitionmaps
syscat.dbpartitiongroupdef
DB2有别于其他数据库的分区的特性是其可建立独立的分区缓存 partition proprietery buffer pool
其他数据库如oracle只有数据物理存储意义上的分区。
6,创建分区组相关的buffer pool和数据库表空间
create bufferpool t1buffer
database partition group t1 size 5000
相关buffer pool 视图
syscat.bufferpools
sysibm.sysbufferpools
数据库表空间创建
create tablespace t1
in database partition group t1
managed by system
using ('t1')
因为使用的是分区组,其会将表空间的物理文件HASH分布到不同的节点上
/home/db2inst3/db2inst3/NODE0002/SQL00001/t1
/home/db2inst3/db2inst3/NODE0001/SQL00001/t1
7,新建分区键:分区键的作用是提高相对性表列的读写性能
在某列(高基列,数据量比较大的列)上指定相应的分区键,如果不指定,相应的第一个主键列会自动
田间分区键。
create table zhang1(col1 int,col2 int,col3 varchar(10))  
in t1
partitioning key(col1,col2) using hashing
开启数据库的并发模式
update dbm cfg using intra_parallel yes
断开数据库连接重连后查看
get dbm cfg
Enable intra-partition parallelism     (INTRA_PARALLEL) = YES
到这里zhang4.shaw.com配置完成
8,开始配置zhang3.shaw.com主机
双方主机通过实例用户db2inst3登录
在db2inst3上登录实例数据库
可以查看到db2inst4上相同的内容并可以建立数据库和相应的DML,DDL,DCL操作
到此配置结束
测试成功!
参与8

7同行回答

xiongrunhongxiongrunhong系统工程师citiccard
支持```显示全部
支持```收起
银行 · 2014-05-07
浏览2095
px320067px320067其它wfefwqf
不错分区配置那么复杂的显示全部
不错
分区配置那么复杂的收起
互联网服务 · 2013-07-22
浏览2081
luoyelingfengluoyelingfeng系统集成工程师isoftstone
楼主无私,终于有一个不要钱的!使用,收录了!多谢!显示全部
楼主无私,终于有一个不要钱的!
使用,收录了!
多谢!收起
IT分销/经销 · 2013-05-16
浏览2045
feng24681feng24681技术经理广州华资软件
顶起,好文。显示全部
顶起,好文。收起
系统集成 · 2012-08-07
浏览2057
kenlinjkenlinj数据库管理员
收入.谢谢.支持.:victory:显示全部
收入.谢谢.支持.:victory:收起
金融其它 · 2011-10-31
浏览2099
db2_louxldb2_louxl项目经理上海诺祺科技有限公司
好文档,还可以再细化一下显示全部
好文档,还可以再细化一下收起
互联网服务 · 2011-09-27
浏览2156
ming270004540ming270004540数据库管理员河南
收藏了,超级支持显示全部
收藏了,超级支持收起
互联网服务 · 2011-06-22
浏览2158

提问者

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2011-06-02
  • 关注会员:1 人
  • 问题浏览:12803
  • 最近回答:2014-05-07
  • X社区推广