本文展示如何将数据库从 DB2 UDB ESE V8.2 单个分区环境迁移到 DPF(逻辑分区)环境,演示如何在脱机情况下划分数据库,以及如何将数据库从 ESE 迁移到 DPF 逻辑节点环境等。
- 验证 ~/sqllib/db2nodes.cfg 中的条目:
注意:1 ibm1104 1 逻辑端口是通过以下命令添加的:<DB2START dbpartitionnum 1 add …< P>
- 基本的状态检查:验证节点 1 正常工作:
export DB2NODE=1
db2 terminate
db2 "values (current dbpartitionnum)"
|
注意:对于当前的分区数目(dbpartitionnum),values 命令应返回 1。
- 回到节点 0(协调节点):
export DB2NODE=0
db2 terminate
db2 "values (current dbpartitionnum)"
|
注意:对于当前的分区数目(dbpartitionnum),该命令应返回 0。
步骤 6. 在两个逻辑节点中创建>系统临时表空间
在节点 1 上创建文件>系统 /dpf_tmp_fs/temp_4k —— 物理磁盘:
db2 connect to ABCDB
db2 "alter tablespace tempspace1 add (/dpf_tmp_fs/temp_4k) on dbpartitionnum (1)"
|
如果将 8 KB、16 KB 或 32 KB 的页面大小用于 ESE 环境中的 ABCDB 数据库,那么需要发出下列用于 8K、16K、32K 页面临时表空间的命令。(请参阅 步骤 2. 收集当前实例和数据库环境 中的 tabsp.out,以验证页面大小。)
db2 "alter tablespace temp_8k add (/dpf_tmp_fs/temp_8k) on dbpartitionnum (1)"
db2 "alter tablespace temp_16k add (/dpf_tmp_fs/temp_16k) on dbpartitionnum (1)"
db2 "alter tablespace temp_32k add (/dpf_tmp_fs/temp_32k) on dbpartitionnum (1)"
|
步骤 7. 在节点 0 和节点 1 上创建数据库分区组
执行下列命令来创建分区组:
db2 "create database partition group pgr01 on dbpartitionnums (0,1)"
|
步骤 8. 创建缓冲池
执行下列命令来创建适当的缓冲池:
db2 “create bufferpool BP4K database partition group pgr01 size 10000"
db2 “create bufferpool BP8K database partition group pgr01 size 8000"
db2 “create bufferpool BP16K database partition group pgr01 size 5000"
|
步骤 9. 在节点 0 和节点 1 上创建表空间
执行下列命令在节点上创建表空间:
create regular tablespace TBS_BIGTBL_4K in database partition group pgr01
pagesize 4096 managed by database
using (DEVICE ' /dbvols/tbs_bigtbl_4k/p0cont1' 38G) on dbpartitionnum (0)
using (DEVICE ' /dbvols/tbs_bigtbl_4k/p1cont1' 38G) on dbpartitionnum (1)
extentsize 16 prefetchsize 32 bufferpool BP4K
create regular tablespace TBS_BIGTBL_IDX in database partition group pgr01
pagesize 16384 managed by database
using (DEVICE ' /dbvols /tbs_bigtbl_idx/p0cont1' 58G) on dbpartitionnum (0)
using (DEVICE ' /dbvols/tbs_bigtbl_idx/p1cont1' 58G) on dbpartitionnum(1)
extentsize 32 prefetchsize 64 bufferpool BP16K
|
步骤 10. 在 DPF 环境中创建和装入您的表
注意:请参阅 步骤 3. 生成表 DDL,以查看如何获得 S_OPTY_POSTN_tbl.sql、S_OPTY_POSTN_idx.sql 和 S_OPTY_POSTN_vw.sql。
例如:我们通过列 OPTY_ID 上的分区键划分了 S_OPTY_POSTN 表。
可以按照下列方式修改 S_OPTY_POSTN_tbl.sql:
CREATE TABLE "V8INST1 "."S_OPTY_POSTN" (
"ROW_ID" VARGRAPHIC(15) NOT NULL ,
"CREATED" TIMESTAMP NOT NULL WITH DEFAULT CURRENT TIMESTAMP ,
"OPTY_ID" VARGRAPHIC(15) NOT NULL ,
"OPTY_NAME" VARGRAPHIC(100) NOT NULL WITH DEFAULT gx'0078' ,
"POSITION_ID" VARGRAPHIC(15) NOT NULL WITH DEFAULT gx'0078' ,
"EST_CMPNS_AMT" DECIMAL(22,7) ,
"OPTY_INACTIVE_FLG" GRAPHIC(1) NOT NULL WITH DEFAULT gx'0078' ,
"DOCK_FLG" GRAPHIC(1) WITH DEFAULT gx'004E' )
PARTITIONING KEY ("OPTY_ID")
IN "TBS_BIGTBL_4K" INDEX IN "TBS_BIGTBL_IDX" NOT LOGGED INITIALLY
|