database-db2

DB2 数据库分区partition实验

概念: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确保相应的RSH必须安装并配置,分区间通信需要,k-shell要安装在rsh软件之前(都在系统盘内,rsh-server-*.rpm,pdksh-5.2.14-36.el5.i386.rpm)
查看相应的/etc/xinetd.d/rsh,rlogin,rexec三个配置文件中的
disable 参数为no 状态,
在/etc/目录下写入配置文件hostx.equiv
将两台机器的主机名和相对应的相同访问用户添加入内(为是拥有共同UID的相同帐号的两端可以相互控制)
1.3.1在相应的用户下配置.rhosts文件
内容: zhang4.shaw.com db2inst3
zhang3.shaw.com db2inst3

两端数据库的相应端口要开启
rsh 544/tcp;rlogin543/tcp;rexec 8230/tcp, 8230/udp
默认的rsh权限:注意用户位上的S表记
-rwsr-xr-x 1 root root 8908 Mar 30 2009 rsh
-rwsr-xr-x 1 root root 8908 Mar 30 2009 rlogin
将系统默认的RSH程序重命名,自动使用安装的RSH
/usr/kerberos/bin
mv rsh rsh.vn

测试连通性
/usr/bin/rsh remote-hostname k-shell command

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操作
到此配置结束
测试成功!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值