ORACLE 迁移到 DB2:如何把 Oracle partition 转化到 DB2(6)
其数据导入后,用 datastudio 进行数据查询的结果。根据查询结果集的对比可知数据已经完全迁移过来。
图 5:DB2 中 Table Partition 表的数据查询结果集
Oracle 的 Hash partition 到 DB2 的 DPF
假设在一个 Oracle 数据库中有一个 Hash Partition 的表定义如下:
清单 13. Oracle 中 Hash table 的表定义
p class="codesection">CREATE TABLE hash_sales ( salesdate date, protype varchar2(20), proname varchar2(20) ) PARTITION BY HASH(salesdate) ( partition p0 tablespace tbhash, partition p1 tablespace tbhash );
该表以 hash_part 字段按照 HASH 算法分区,创建了两个分区 p1 和 p2 分别在表空间 tbsp1 和 tbsp2 中。用 select 语句查询出其数据结果集:
图 6.Oracle 中 Hash Partition 表的数据查询结果集
根据前面所说,我们可以把该 table 映射到 DB2 的 DPF 上。如果当前 DB 已经创建好了 DPF,那么我就直接创建 table 即可,但是做 migration 很多时候都需要自己创建逻辑分区,我们将按照下面的步骤创建 DPF、Table space 以及 Table。
- 用 db2start 添加 partition
我们可以用 db2start 来创建 partition,其命令格式如下:
db2start dbpartitionnum PARTITIONNUM add dbpartitionnum hostname <HOSTNAME> port <PORTNUM> without tablespaces
这里我们已经有了一个 partition 0,我们再创建一个 partition 1。
db2start dbpartitionnum 1 add dbpartitionnum n4shost port 1 withoust tablespaces
- 创建 partition group
partition 添加完成之后,下面就需要为 partition 创建 partition group。其命令格式如下:
create database partition group <GROUP NAME> on dbpartitionnums(<num>,<num> … )
这里我们创建的 group 为 grouphash。
Create database partition group grouphash on dbpartitionnums(0,1) - 创建 tablespace
在该 partition group 中创建 tablespace。其命令格式如下:
Create tablespace <Tablespace name> in database partition group <PARTITION GROUP NAME>
这里我们创建表空间 tphash:
Create tablespace tphash in database partition group grouphash
- 创建 table
在 tbptest 中创建与 oracle 对应的 table,其 sql 语句如下:
清单 14. DB2 中与之映射的 DPF table
p class="codesection">create table hash_sales( salesdate date, protype varchar(20), proname varchar(20) ) in tphash distribute by hash(salesdate)
完成了表的创建,下面就是数据的导出与导入,与上一节相同我们同样可以采用工具 IDMT 来实现。但是在本次实验中的数据很少,因此这里我们就直接用 import 来实现数据的导入。数据导入完成之后通过 clp 查询的数据结果如下图所示。
图 7.db2 中映射的 DPF 表查询结果集
相关新闻>>
- 发表评论
-
- 最新评论 更多>>