DB2單機多分區(multipartitions)數據庫的建立方法

DB2的數據庫分區DPF(Database Partitioning Feature)功能是shared nothing架構的數據處理方案,它能夠有效地利用單機多核,多機MPP的並行處理能力,是面向數據倉庫和商業智能方面應用的最佳選擇。

node

本文介紹在單機內建立多分區數據庫的方法,多機的環境稍有不一樣,它須要全部節點共享一個實例用戶的home目錄。sql

一、建立實例shell

使用/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

二、配置本機用戶db2inst1的ssh無密碼登陸ssh

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

三、設定DB2環境變量DB2RSHCMDtcp

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

四、編輯$HOME/sqllib/db2nodes.cfgspa

0 db2serv 0
1 db2serv 1

這裏只定義了兩個分區
code

五、啓動實例orm

[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成功了。

六、建立數據庫

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

七、訪問數據庫
訪問數據庫前,請務必設置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]$
相關文章
相關標籤/搜索