DB2 DPF配置验证说明书V01汇总.docx
《DB2 DPF配置验证说明书V01汇总.docx》由会员分享,可在线阅读,更多相关《DB2 DPF配置验证说明书V01汇总.docx(9页珍藏版)》请在冰豆网上搜索。
DB2DPF配置验证说明书V01汇总
1DB2DPF简介
DB2DPF采用非共享体系架构(Share-nothing)每个节点独立处理单一任务的能力,每个子任务处理一部分数据.分区间数据通过高速网络进行交互.它的扩展性比较方便,可通过增加节点资源线性扩展节点.提高集群数据库处理能力.它具有高效的处理能力,简单来说,它相当于将一个大的数据库分成多个小的数据库,而每一个小数据库分区拥有自己的一部份数据.同时达到节点同时并发的高效率处理能力.
DB2DPF非共享体系架构如下图:
1)数据库被分成多个分区
2)每个分区都拥有独立的资源如(数据,日志,内存,锁管理等)
3)所有分区并行处理,由数据库系统统一协调管理
4)在用户以及应用看来是单一数据库系统.
数据库分区与结点关系:
1)数据库实例目录在一台机上创建,并做NFS到其它主机.
2)通过配置DB2NODES.CFG实现各台主机的通信.
3)各台主机需要通信,需要确定开通集群中的机器可以互相rsh连接.
架构如下图
Instance级别的multi-partitionDB2环境分为3种:
DB2SMP,DB2MPP和DB2SMPCluster
DB2SMP指的是在一台有多个CPU的机器上,建立的一个有多个partition(不超过CPU的数量)的DB2Instance.
DB2MPP指的是在多台单个CPU的机器上,建立的一个有多个partition的DB2Instance,在其中的每台机器上建立1个Partition.
DB2SMPCluster指的是在多台有多个CPU的机器上,建立的一个有多个partition的DB2Instance,在其中的每台机器上建立多个Partition.
2测试环境配置说明
按照IBM的官方建议,是二个CPU跑一个分区,测试环境配置都是4C8G,因此考虑首先由两台服务器构建成DPF的SMP集群环境,每个服务器上有两个节点,总共4个节点构建成DPF的SMP集群环境。
然后再扩展一台服务器,也包括有两个节点,构成6个节点的DPF的SMP集群环境
3环境准备
ServerA182.119.145.101h145101
ServerB182.119.145.102h145102
ServerC182.119.145.82h145082
4实例用户和组配置
实例用户名定义为db2idesk
注意DPF实例的用户和组的ID和名称在各个节点都要完全一样
在ServerA和ServerB上分别通过
smittygroup来创建组,组名为db2idesk,保证组的ID一致。
smittyuser来创建用户,用户名为db2idesk,保证用户的ID一致
5NFS文件系统配置
在ServerA上创建jsf2文件系统/home/db2idesk,作为实例目录
Smittynfs
Next->
Next->
在ServerB,ServerC(为后续扩展做准备)上mount文件系统
执行showmount–e182.119.145.101
mount182.119.145.101:
/home/db2idesk/home/db2idesk
在各服务器上通过df–g查看文件系统的情况
6Rsh连接配置
在实例用户目录下vi.rhosts文件,增加如下内容
+
验证rsh连接是否成功
在各服务器上执行rshhostnamedate
7创建数据库分区实例
在ServerA上的/opt/IBM/db2/V9.7/instance下执行./db2icrt-sese-p50000-udb2ideskdb2idesk
8配置文件修改
db2nodes.cfg配置
修改/home/db2idesk/sqllib/下的db2nodes.cfg,增加如下配置:
0h1451010
1h1451011
2h1451020
3h1451021
hosts配置
在三台服务器上以root用户登录修改/etc/hosts
将ServerA,ServerB,ServerC(为后续扩展做准备)的IP地址和hostname分别加入
services配置
在三个服务器上都修改/etc/services
DB2_db2idesk60000/tcp
DB2_db2idesk_160001/tcp
DB2_db2idesk_260002/tcp
DB2_db2idesk_360003/tcp
DB2_db2idesk_460004/tcp
DB2_db2inst_END60005/tcp
默认的情况下,只生成四个端口号,考虑后续扩展,生成6个端口
9修改SVCENAME
Db2updatedbmcfgusingSVCENAME50000
10修改注册变量
db2setDB2FCMCOMM=TCPIP
db2setDB2COMM=TCPIP
db2setDB2CODEPAGE=1386
db2setDB2_PARALLEL_IO=*
11创建分区数据库和修改数据库配置参数
Db2createdatabasetestdbusingcodesetutf-8territorycn
db2"CREATEBUFFERPOOLbp16kALLDBPARTITIONNUMSSIZE10000PAGESIZE16K"
db2"CREATETABLESPACEUSERS16KINDATABASEPARTITIONGROUPIBMDEFAULTGROUPpagesize16kMANAGEDBYDATABASE
USING(device'/dev/rlvtestdb01'1000M)ONDBPARTITIONNUM(0)
USING(device'/dev/rlvtestdb02'1000M)ONDBPARTITIONNUM
(1)
USING(device'/dev/rlvtestdb03'1000M)ONDBPARTITIONNUM
(2)
USING(device'/dev/rlvtestdb04'1000M)ONDBPARTITIONNUM(3)bufferpoolbp16k";
修改数据库配置参数
db2_all"db2updatedbcfgusinglogfilesiz10240"
db2_all"db2updatedbcfgusinglogprimary16"
db2_all"db2updatedbcfgusinglogsecond4"
其他参数可类似进行修改
12创建表和加载数据
CREATETABLEtable1(col1INTEGERNOTNULL,
col2SMALLINTNOTNULL,
col3CHAR(10),
PRIMARYKEY(col1,col2))INUSERS16K
DISTRIBUTEBYHASH(col1)
主键和分区键不一定要一致,需要按需分析,选择适当的分区键对于优化基于DB2软件的分区环境中的数据库性能非常关键
13查看数据分布
通过db2"selectdbpartitionnum(colname),count(*)fromtablenamegroupbydbpartitionnum(colname)orderbydbpartitionnum(colname)"了解数据在各分区的分布
14查看数据库分区组
db2listdatabasepartitiongroupsshowdetail
15加入新的节点
db2startdbpartitionnum4adddbpartitionnumhostnameh145082port0
db2startdbpartitionnum5adddbpartitionnumhostnameh145082port1
通过catdb2nodes.cfg可查看到增加的节点信息
db2terminate
db2"alterdatabasepartitiongroupibmdefaultgroupadddbpartitionnum(4)withouttablespaces"
db2"alterdatabasepartitiongroupibmdefaultgroupadddbpartitionnum(5)withouttablespaces"
db2"ALTERTABLESPACEUSERS16KADD(device'/dev/rlvtestdb05'1000M)ONDBPARTITIONNUM(4)"
db2"ALTERTABLESPACEUSERS16KADD(device'/dev/rlvtestdb06'1000M)ONDBPARTITIONNUM(5)"
16数据重分布
db2"redistributedatabasepartitiongroupibmdefaultgroupuniform"
注意重分布过程是会记录日志的,需要确保日志文件充足,否则会报错
SQL6064NSQLerror"-964"occurredduringdataredistribution.
扩展日志文件后重新执行
db2"redistributedatabasepartitiongroupibmdefaultgroupcontinue"或
db2"redistributedatabasepartitiongroupibmdefaultgroupabort"
17删除节点
以删除节点5为例说明
执行exportDB2NODE=5
执行db2terminate
执行db2dropdbpartitionnumverify确认该分区上所包含的数据库
连接到testdb数据库db2connecttotestdb
执行命令db2"redistributedatabasepartitiongroupibmdefaultgroupuniformdropdbpartitionnum(5)"注意,在这里这个命令一定要在该数据库所在的catalog节点发出,通过exportdb2node=0来确认在catalog节点上
可以通过listdbdirectoryshowdetail看到编目节点
db2listnode就可以看到某节点已经被删除
18数据库分区的备份
备份db2backupdbtestdbonalldbpartitionnumsto/home/db2idesk/dbbackup
恢复
备份恢复相关需要注意的事项,需进一步细化
19DPF数据库管理
启动实例
#su-db2idesk
$db2start
激活数据库
$db2activatedbtestdb//激活数据库的所有节点
查看各分区上已激活的数据库
$db2listactivedatabasesatdbpartitionnum0
$db2listactivedatabasesatdbpartitionnum1
$db2listactivedatabasesatdbpartitionnum2
$db2listactivedatabasesatdbpartitionnum3
$db2_all"db2pd-dtestdb-bufferpools"//数据库需处于激活状态
挂起数据库
$db2deactivatedbtestdb//只能在主节点上使用改命令,才能挂起所有节点的数据库,如果数据库节点上面还有连接的话,是无法挂起数据库的
查看各数据库节点上的应用程序连接
$db2listapplicationsatdbpartitionnum0
$db2listapplicationsatdbpartitionnum1
$db2listapplicationsatdbpartitionnum2
$db2listapplicationsatdbpartitionnum3
查看各数据库节点的表空间相关信息
$db2_all"db2pd-dtestdb-tablespaces"
关闭实例
$db2stopforce
20与单节点数据库对比测试
21其他补充说明