HPU简介

HPU是一个DB2工具,能在线快速卸载数据到文件,或其他BigData环境。在DB2数据库保护及业务数据保护的的某些场景下,可以使用此工具快速备份恢复。

DB2 保护场景

1.硬件或软件级别异常保护:如硬件级别高可用、HADR、QRepl、CDC、PureScale等;
2.数据迁移到新系统:如相同平台采用备份恢复;不同平台采用逻辑复制,如QRepl、CDC等;
3.测试开发环境,一般测试开发环境与生产环境网络不通:数据库备份及恢复,数据导出导入;
4.数据保护,如回溯到几年前数据:数据库备份及恢复,数据导出导入;

DB2迁移工具

常见工具或方法
1.如果OS平台一致,可以使用数据库备份恢复
2.使用db2move
3.编目游标Load from cursor
4.数据导入导出Unload (HPU) / Load
5.Logical Replication逻辑复制,如Q复制、CDC

HPU介绍

HPU可以从db2中快速卸载数据,不通过DB2 DatabaseManager ,而直接访问DB2 数据文件。测试验证,相对于export速度提升10倍。


基本功能:
1.在线库卸载数据到文件;

2.导出备份文件卸载数据到文件,包括TSM/NETBACK/BMC等备份软件;

3.在线迁移数据到异机;

4.分区数据库卸载,理论上,节点越多数据越均衡,导出速率越快。可以参见附加资源中;


5.支持迁移到PostgreSQL ;
6.大数据平台接口支持,支持卸载为JSON格式,支持迁移到MongoDB NOSQL、HIVE 、HBASE、MapReduce、HDFS、Cloudant、Amazon S3、Swift;如果感兴趣可以参考资源链接

产品最早发布于IMS zOS平台(最早查到2000年),后来同步到开发平台aix/linux/window(最早查到2009年)。其作为 Db2® Advanced Recovery Solutions一部分,现在更名为InfoSphere Optim High Performance Unload。
主要操作通过命令完成,可以编制脚本及定时计划。与Data Studio工具有Plug-in to Data Studio集成后,可通过界面操作。


如果对DB2其他工具感兴趣可以查看附件资源:DB2 10.5 开放平台体系图例。

参考:DB2 10.5 开放平台体系

HPU使用

安装

HPU工具很小,有试用版及正式版两种许可license
可以从附加资源中找到地址下载

将安装包下载放入目录并解压,如/media/HPU
用root用户执行

./install_hpu.sh

会创建/opt/ibm/HPU/V6.1目录

初始化数据库

需要在unload指定数据库中创建相关存储过程
首先准备HPU的配置目录权限

chown -R db2inst1:db2inst1 /opt/ibm/HPU/V6.1/cfg

其次在对应数据库执行HPU初始化,切换到对应数据库实例

cd /opt/ibm/HPU/V6.1/install/function
./hpu_stored_proc_inst.sh /opt/ibm/HPU/V6.1 sampledb

最后指定环境变量,修改用户的profile文件,增加如下

export HPU61=/opt/ibm/HPU/V6.1
export PATH=$PATH:$HPU61/bin

注意:如果需要异机恢复,需要配置hpudm服务,请参见场景3中步骤

场景1:从在线库卸载数据

在实例用户下直接执行,从在线数据库导出特定表HPU1的数据到指定文件

db2hpu -i db2inst1 -d sampledb -t "TEST"."HPU1" -o hpu_hpu1.del

也可以指定控制文件导出,如下准备文件内容

vi scenario1.ctr
GLOBAL CONNECT TO SAMPLEDB DB2 NO
FLUSH BUFFERPOOLS YES
LOCK YES
;
UNLOAD TABLESPACE
SELECT * FROM  "TEST"."HPU1";
OUTFILE ("hpu_hpu1.del" REPLACE)
LOADFILE ("hpu_hpu1.load")
FORMAT DELIMITED
DATE DATE_E
;

执行命令,按照控制文件导出

db2hpu -f scenario1.ctr    -m scenario1_msg.out

场景2:从备份文件卸载数据

在实例用户下直接执行,从目录中数据库备份文件中导出特定表HPU1的数据到指定文件

控制文件内容

vi scenario2.ctr
GLOBAL CONNECT TO sampledb
DB2 NO
USING BACKUP CATALOG
sampledb FROM “/data/dbbackup/”
TAKEN at 20221026100035;
UNLOAD TABLESPACE
SELECT * FROM  "TEST"."HPU1";
OUTFILE ("hpu_hpu2.del" REPLACE)
LOADFILE ("hpu_hpu2.load")
FORMAT DELIMITED
DATE DATE_E
;

执行命令,按照控制文件导出

db2hpu -f scenario2.ctr   -m scenario2_msg.out

也可以从TSM/NETBACKUP/BMC等备份软件中的备份文件抽取,如下控制文件指定从TSM中抽取

scenario2_tsm.ctr
GLOBAL CONNECT TO sampledb;
UNLOAD TABLESPACE
FLUSH BUFFERPOOLS NO
LOCK NO
USING BACKUP DATABASE sampledb USE TSM
TAKEN AT 2022102610;
SELECT * FROM  "TEST"."HPU1";
OUTFILE ("hpu_hpu2_tsm.del" REPLACE)
LOADFILE ("hpu_hpu2_tsm.load")
FORMAT DELIMITED
DATE DATE_E

场景3:异机直接恢复配置

可以在两台或多台主机之间直接恢复,导出数据不用落盘。
需要每台机器安装HPU,并启动HPU服务进程,配置相关db2认证参数后,再执行db2hpu导入数据

配置db2hpudm61服务

注意:每台HPU都需要配置。
指定netservice名称

vi /opt/ibm/HPU/V6.1/cfg/db2hpu.cfg
netservice=db2hpudm61

指定service端口

vi /etc/services
db2hpudm61  54010/tcp

确定xinetd服务启动

systemctl start xinetd.service

检查db2hpu监听启动

netstat -a |grep db2hpu
tcp6       0      0 [::]:db2hpudm61         [::]:*                  LISTEN

准备远端信息

注意:源端HPU需要配置。
准备目标端编目

db2 catalog tcpip node newdb remote 192.168.0.11 server 50000
db2 catalog db target at node newdb

HPU中指定目标端数据库

vi /opt/ibm/HPU/V6.1/cfg/db2hpu.dest
[RemoteDB2]
dbname=TARGET
node=NEWDB
user=db2inst2

HPU中存储远端db2认证信息

db2hpu --credentials remote

可以检查db2hpu.creds文件

vi /home/db2inst1/.db2hpu/db2hpu.creds
[NEWDB]
type=remote
user=db2inst2
password=916DDD58B69D147BEBF4DDC44B12F

异机恢复

控制文件内容

scenario3.ctr
GLOBAL CONNECT TO OLDDB;
MIGRATE TABLESPACE
SELECT * FROM "TEST"."HPU1";
LOADDEST(DB2 REMOTE "NEWDB")
INTO TABLE (TEST.HPU1)
FORMAT DELIMITED
DATE DATE_E

在源端执行命令,按照控制文件复制数据到目标端

db2hpu -f scenario3.ctr     -m scenario3_msg.out

关于锁

可以在SQL后增加with ur,在HPU 6.1及之后版本都是支持的。查到资料是从HPU 4.0版本开始支持with ur语法。

其次HPU有lock以及FLUSH BUFFERPOOLS 参数控制卸载unload期间lock行为。注意:从HPU 6.1后,参数QUIESCE被替换为 FLUSH BUFFERPOOLS 。
有以下四种组合:

Flush bufferpools yes lock yes

推荐这种,保证强一致性。Db2会收到正在进行unload卸载的通知,对表及依赖项静默共享锁,直到卸载unload结束。同时在开始卸载之前,相关的缓冲池页被刷新到磁盘,在卸载完成之前,不允许对表进行任何修改。

Flush bufferpools yes lock no

这种对修改的数据没有保护性。与第一个例子不同,在成功完成卸载通知之后,unload立即通知Db2卸载已经结束并释放静默共享锁,即使卸载还没有开始。

Flush bufferpools no lock yes

如果指定locks为yes,会强制转换为bufferpools yes。也就是第一种FLUSH BUFFERPOOLS YES LOCK YES。

Flush bufferpools no lock no

DB2没有收到卸载的通知,也没有感知正在卸载,Db2缓冲池页面不会刷新到磁盘,也不会获得Db2锁。虽然这种组合具有最低的开销,但是存在很大的风险,即提取的数据可能与事务不一致。执行甚至可能导致不可预测和意外的行为,包括异常终止,特别是表结构或分区(attach,deattch,reorg)。只有当确定所有的数据页都已刷新到磁盘,并且当前没有被另一个Db2应用程序修改时,才使用此组合。

附加资源

HPU知识中心:InfoSphere Optim High Performance Unload for DB2 for Linux, UNIX and Windows 6.1
https://www.ibm.com/docs/en/iohpufdflu-and-w/6.1

HPU6.1版本信息:Download:InfoSphere Optim High Performance Unload for DB2 for Linux, UNIX and Windows Version 6.1
https://www.ibm.com/support/pages/infosphere-optim-high-performance-unload-db2-linux-unix-and-windows-version-61

DB2高级恢复特性介绍:IBM Db2 Advanced Recovery Feature
https://www.ibm.com/products/db2-advanced-recovery-feature

HPU大数据环境支持:Working with Big Data environments
https://www.ibm.com/docs/en/iohpufdflu-and-w/6.5?topic=data-working-big-environments

DB2-HPU(Optim High Performance Unload)简叙及安装使用相关推荐

  1. Win7下DB2 Express-C 9.7.2的卸载与安装(上)

    前段时间在Windows 7下安装DB2最新版DB2 Express-C 9.7.2,安装了十一次,只成功了一次,以后就一直报 DB2INSTANCE:-2029059916 这个错,具体症状是:本来 ...

  2. openGauss 极简版安装

    openGauss 官网   openGauss 下载地址 支持的操作系统 ● ARM:   ● openEuler 20.03LTS(推荐采用此操作系统)   ● 麒麟V10   ● Asianux ...

  3. linux上yum最简方法安装,yum轻松简单安装配置GCC等

    由于RedHat 没有注册,所有不能使用它自身的源进行更新,于是使用yum install gcc的时候会出现This system is not registered with RHN,所以我们可以 ...

  4. centOS系统下openGauss极简版安装

    安装环境准备: 提示:因为openGauss没有提供ubuntu和windows安装包,所以选择安装在centOS 前提条件: 1.已完成用户组和普通用户的创建. 2.所有服务器操作系统和网络均正常运 ...

  5. 最简解决方案--安装ubuntu 遇到32位 EFI(UEFI) /EFI/BOOT/bootia32.efi unavilable

    手上一个小本本CPU  Z3735F 一个很狗屎的CPU,竟然是64位的,不能随意对不了解的事物产生定论(偏见),多走走,多看看,多读读历史就是好.推荐石国鹏历史老师的课程录音,喜马拉雅上或许就有呢. ...

  6. GreenPlum-6 最简步骤安装

    PostgreSQL 快速安装 参考文档:https://ubuntu.com/server/docs/databases-postgresql # 安装 apt install -y postgre ...

  7. 安装linux双系统简书,安装win10+ubuntu18.04双系统

    因为电脑配置问题,在虚拟机上装的ubuntu使用起来太卡了,所以决定装个win10+ubuntu的双系统,在亲测成功后,将安装过程记录一下. 写在前面 由于本次是在UEFI下进行Ubuntu系统安装的 ...

  8. HPCC(high performance challenge computer)benchmark安装方法

    搞了快两天,终于在本机上运行了HPCC 性能测试.现在就把HPCC的安装方法给大家分享一下. 1. 改写编译脚本 HPCC 官方给出的运行指导实在是太简单了,根本就没有多大的实用价值.这里还要给大家说 ...

  9. 诊断DB2 Java应用程序的性能问题

    问题诊断和 DB2 架构简介 本文的目的是帮助应用程序开发人员或数据库管理员排除和诊断在部署 Java 应用程序时可能遇到的常见性能问题.其中包括常见的应用程序开发问题,例如挂起或者响应缓慢. 很好地 ...

最新文章

  1. 最后一片蓝海的终极狂欢-写在Win10发布前夕
  2. Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程
  3. 用Java 编写菜单价格和的程序_使用JAVA 编写一个程序,显示5中商品价格,用户可以选择多种商品并在其后的文本框输入购买的数量。...
  4. FileOutputStream为false时候注意的问题
  5. [POI2004]GRA
  6. Smarty的入门使用
  7. [转]不要告诉我你懂margin
  8. MVC登陆认证简单设置
  9. DSP28335学习记录(二)——外部中断和定时器中断
  10. coreldraw是什么软件好学吗?cdr矢量图形制作工具
  11. android获取当前位置的GPS经纬度
  12. Windows10 Windows许可证即将过期
  13. 未知错误,可能由于拨号连接未创建成功
  14. JAVA应用程序设计上机报告
  15. 题目0121-机器人走迷宫
  16. 浅谈:6sigma与Minitab_北京八方在线Minitab代理商
  17. springCloud-day04
  18. 从arduino板开始做到阿里云app控制--WeMos D1或ESP8266连接阿里云文章合集及源代码
  19. finereport与finebi差别_finebi和finereport区别
  20. python百度云活体检测_opencv-活体检测

热门文章

  1. MXNet:基础和入门
  2. windows ltsc版本没有Microsoft Store怎么解决
  3. 【RSS】我的RSS使用介绍
  4. 对随机变量值域的思考
  5. java输入长宽高计算表面积_设计一个C语言程序计算长方体体积和表面积,长宽高通过键盘输入?????...
  6. 更改jupyter lab默认启动路径(亲测有效)
  7. @Transactional注解什么情况会失效?
  8. Java数据结构学习——排序二叉树
  9. SDL编程入门(27)碰撞检测
  10. 异构数据半小时实现搜索功能,一个系统搞定