HPU即Optim High Performance Unload,是一款快速的、高效的、灵活的、多功能的数据卸载和迁移工具。在大部分情况下,HPU 卸载数据的速度比 DB2 Export 实用工具要快,因为 HPU 可以绕过 DB2 数据库管理器,直接访问数据库文件。因此在使用它卸载数据时可以达到相当高的性能。不仅如此HPU还可以以数据不落地的方式在线进行迁移,自动地将数据从一个系统中的 DB2 实例迁移到另一个系统中的 DB2 实例中,其中包括卸载,迁移,加载数据到目标实例的操作。
因为HPU是一个独立得工具,所以在使用前我们应该去官网下载对应的安装包并安装到对应服务器上之后,我们才能使用它。安装过程非常简单,这里就不在赘述了,下面我着重介绍一下如何使用HPU进行快速的数据迁移工作。
一、方法一:使用命令行方式
这是使用 HPU 最简单的一种方法,用户只需在命令行中指定一些参数,就可以完成想要的操作。如客户想要使用 HPU 卸载 sample 数据库中 employee 表中所有的数据,只需在命令行中输入命令:
./db2hpu – i db2inst2 – d demo – t employee
-o /home/db2inst2/hpu/file1.out
就可以轻松实现,其中:
– i:用于指定数据库实例名。
db2inst2 变量是实际的数据库实例名。
– d:用于指定要操作的数据库。
demo 变量是实际的数据库名。
– t:用于指定要操作的数据库中的表。
employee 变量是实际的表名。
– o:用于指定输出文件的位置。
/home/db2inst2/hpu/ 是文件输出路径,file1.out 是实际输出的文件名。
二、方法二:使用controlfile实现复杂的数据逻辑迁移
Control file 是 HPU 的一个输入文件,你可以将想要实现的操作写入到 control file 里,然后以它作为输入,运行 HPU。
使用 control file 可以指定更复杂的选项来完成更多的任务,可以在命令行中通过 -f 选项,来指定要运行的 control file。例如,客户想要查看 sample 数据库的 employee 表中所有女员工的信息和所有男员工的信息,并且希望将所有女员工的信息输出到一个文件,将所有男员工的信息输出到另一个文件,这时就可以用 control file 来实现这个需求。首先客户需要编写 control file,并起名为 employee.ctl,在这里我们将 employee.ctl 放在了 /home/db2inst2/hpu/manual 目录下,employee.ctl 具体内容如下:
#############################################################
global connect to sample;
unload tablespace userspace1
select * from employee where sex='F';
output("/home/db2inst2/hpu/output/demo.out")
format del;
unload tablespace userspace1
select * from employee where se然后在命令行中输入,
./db2hpu – i db2inst2 – f /home/db2inst2/hpu/manual/employee.ctl
其中:
-i:用于指定数据库实例名。
db2inst2 变量是实际的数据库实例名。
-f:用于指定 control file。
/home/db2inst2/hpu/manual/employee.ctl 是实际的 control file 存放路径及实际的文件名。x='M';
output("/home/db2inst2/hpu/output/demo2.out")
format del;
运行成功后,在 /home/db2inst2/hpu/output 目录下可以看到两个生成的文件,demo.out 和 demo2.out。其中,demo.out 文件里存放的是所有女员工的信息,demo2.out 文件里则存放的是所有男员工的信息。
三、迁移时需要注意事项
因为hpu是一个独立的第三方工具所以在迁移时务必调整好系统的编码,因为hpu导出的编码默认使用操心系统的编码格式。
(一)AIX必须设置方法如下:
1、查看已经安装的字符集
#locale -a
2、查看当前系统使用的字符集
#env | grep LANG 或者 locale
3、修改单个用户的字符集
#vi .profile在最后添加 EXPORT LANG=Zh_CN
4、退出用户重新登录后使用hpu即可
(二)Linux设置如下所示:
1、locale -a 查询系统支持的字符集
2、export LANG=zh_CN.gbk设定字符集
一般来说设置到此即可,但是有时却不行还要设置 Linux 系统的环境变量 /etc/profile (全局) 或者 ~/.bashrc (单个用户) 和i18n
#vi /etc/sysconfig/i18n
将内容修改为
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"
阅读(7389) | 评论(5) | 转发(0) |