DB2单机多分区(multipartitions)数据库的创建方法

DB2的数据库分区DPF(Database Partitioning Feature)功能是shared nothing架构的数据处理方案,它可以有效地利用单机多核,多机MPP的并行处理能力,是面向数据仓库和商业智能方面应用的最佳选择。

本文介绍在单机内创建多分区数据库的方法,多机的环境稍有不同,它需要所有节点共享一个实例用户的home目录。

1、创建实例

使用/opt/ibm/db2/<version>/instance/db2isetup图形向导创建实例db2inst1时,指定多分区,然后下一步指定分区数量,这里定义最多八个分区。

创建完后,查看/etc/services文件,能看到对应的端口范围:

DB2_db2inst1    60000/tcp
DB2_db2inst1_1    60001/tcp
DB2_db2inst1_2    60002/tcp
DB2_db2inst1_3    60003/tcp
DB2_db2inst1_4    60004/tcp
DB2_db2inst1_5    60005/tcp
DB2_db2inst1_6    60006/tcp
DB2_db2inst1_END    60007/tcp

2、配置本机用户db2inst1的ssh无密码登录

$ ssh-keygen -t rsa
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

3、设定DB2环境变量DB2RSHCMD

$ db2set DB2RSHCMD=/usr/bin/ssh -i

4、编辑$HOME/sqllib/db2nodes.cfg

0 db2serv 0
1 db2serv 1

这里只定义了两个分区

5、启动实例

[db2inst1@db2serv ~]$ db2start
01/11/2015 17:37:58     1   0   SQL1063N  DB2START processing was successful.
01/11/2015 17:37:59     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.

从提示信息可以看到有两个DB2START成功了。

6、创建数据库

$ mkdir /home/db2inst1/testdb
$ db2 create database testdb on /home/db2inst1/testdb

7、访问数据库
访问数据库前,请务必设置DB2NODE变量,如果没有缺省为第一个分区

[db2inst1@db2serv ~]$ export DB2NODE=1
[db2inst1@db2serv ~]$ db2
db2 => connect to testdb

   Database Connection Information

 Database server        = DB2/LINUXX8664 10.5.3
 SQL authorization ID   = DB2INST1
 Local database alias   = TESTDB

db2 => list tablespace containers for 2

            Tablespace Containers for Tablespace 2

 Container ID                         = 0
 Name                                 = /home/db2inst1/testdb/db2inst1/NODE0001/TESTDB/T0000002/C0000000.LRG
 Type                                 = File

对比一下DB2NODE=0的表空间容器信息:

db2 => list tablespace containers for 2

            Tablespace Containers for Tablespace 2

 Container ID                         = 0
 Name                                 = /home/db2inst1/testdb/db2inst1/NODE0000/TESTDB/T0000002/C0000000.LRG
 Type                                 = File

区别在于NODE0000和NODE0001两个目录

[db2inst1@db2serv db2inst1]$ pwd
/home/db2inst1/testdb/db2inst1
[db2inst1@db2serv db2inst1]$ ls
NODE0000  NODE0001
[db2inst1@db2serv db2inst1]$


你可能感兴趣的:(DB2单机多分区(multipartitions)数据库的创建方法)