资讯专栏INFORMATION COLUMN

DB2move命令进行全库迁移

IT那活儿 / 1466人阅读
DB2move命令进行全库迁移

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!! 

 

1

迁移准备

DB2版本:V9.7
准备两台虚拟机:HADR1     HADR2

2

db2move的适用情况

db2move与db2look在数据迁移中的一次实践。
适用范围:当需要对数据库进行数据迁移时,数据迁移的首选比如是备份重定向恢复,但是部分无法进行此操作时,可以选择db2move与db2look,以及不同操作系统的数据库迁移工作等。

3

HADR1上进行的工作

首选创建一张表用于实验:
[db2inst1@HADR1 ~]$ db2 "create table cfsource2 (name varchar(10)) "
DB20000I The SQL command completed successfully.
创建一个存储过程用于批量插入数据:
[db2inst1@HADR1 ~]$ db2 "CREATE PROCEDURE insert_cf () 
DYNAMIC RESULT SETS 1 P1: BEGIN declare a int; set a=1; loop1: LOOP if(a<=1000) then insert into
cfsource2(NAME) values(f); set a=a+1; else leave loop1;
end if; end loop loop1; END P1"

DB20000I The SQL command completed successfully.
调用存储过程:
[db2inst1@HADR1 ~]$ db2 call insert_cf

Return Status = 0
验证数据插入结果:
[db2inst1@HADR1 ~]$ db2 "select count(*) from cfsource2"

1
-----------
1000

[db2inst1@HADR1 ~]$ db2 "
select * from cfsource2 fetch first 1 rows only"

NAME
----------
1
首先将数据库sample的表结构全部导出:
[db2inst1@HADR1 ~]$ db2look -d sample -e -l -o db2look_sample.ddl
-- No userid was specified, db2look tries to use Environment variable USER
-- USER is: DB2INST1
-- Creating DDL for table(s)
-- Output is sent to file: db2look_sample.ddl
-- Binding package automatically ...
-- Bind is successful
-- Binding package automatically ...
-- Bind is successful
将数据库sample的数据进行全库导出。
被导出的数据在没有指定目录的情况下,会被放置在当前目录。
所以最好提前创建一个目录用于放置数据:
[db2inst1@HADR1 backup]$ db2move sample export

Application code page not determined, using ANSI codepage 1208

***** DB2MOVE *****

Action: EXPORT

Start time: Thu Mar 4 06:18:50 2021


Connecting to database SAMPLE ... successful! Server : DB2 Common Server V9.7.0

EXPORT: 18 rows from table "DB2INST1"."ACT"
EXPORT: 0 rows from table "DB2INST1"."CATALOG"
将存放数据的文件夹与生成的数据库表结构db2look_sample.ddl,一同传入到用于迁移恢复的目标机器HADR2中。

4

HADR2中的工作

下面,我们需要在新的DB2实例中将db2look_sample.ddl进行一些变动,变动的主要内容为如果HADR2中的数据库名与db2look_sample.ddl的数据库名不同的话,需要将db2look_sample.ddl中的数据库名进行更改,同时针对HADR2中的数据库目录对db2look_sample.ddl的数据库目录进行更改。
完成上述内容后就可以开始进行数据迁移了。
在目标库中执行db2look_sample.ddl文件:
[db2inst1@HADR1 ~]$ db2 -tvf db2look_sample.ddl
开始对sample数据库的数据进行导入:
[db2inst1@HADR1 backup]$ cd /home/db2inst1/db2inst1/backup
[db2inst1@HADR1 backup]$ db2move sample load
导入完成,开始对数据进行检查:
[db2inst1@HADR1 backup]$ db2 "select * from cfsource2 fetch first 1 rows only"

NAME
----------
1

1 record(s) selected.
数据存在,数据导入成功。
在进行导入的过程中,需要注意的是执行 db2move命令时的当前目录下存在被导出的数据才可以进行。
另外我们需要注意数据库的CODEPAGE编码是否相同,在执行该命令前,我们可以现使用db2set -all来查看CODEPAGE是否相同,否则数据无法进行导入。




END

 



本文作者:干建宇

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129511.html

相关文章

  • UCloud数据迁移方案UDTS:在线业务数据,一键平滑迁移

    摘要:自上线以来,总迁移已超过级数据量。支持通过内网专线以及外网迁移数据。全量迁移在全球多地地域部署服务,根据源目位置来就近选择运行位置,保证迁移效率。数据库是公司核心资产的重要存储基座,面对用户不同场景,数据也需跨数据库迁移。如用户业务上云、多云灾备下的数据同步、不同数据源的聚合分析等,都需数据跨数据库的迁移。UCloud数据迁移方案UDTSUCloud数据传输服务UDTS(UCloud Dat...

    Tecode 评论0 收藏0
  • 从零到千万用户的云端(AWS)基础架构最佳实践

    摘要:本期大纲随着从到千万用户的业务增长,通过的不同服务轻松地实现高性能和高可用的基础架构。方坤老师本次的主题比较偏向实践的基础部分,假设了一个应用从小型到中型和大型的时候,可能需要用到的服务,以及相关介绍和实践建议。 极牛技术实践分享活动 极牛技术实践分享系列活动是极牛联合顶级VC、技术专家,为企业、技术人提供的一种系统的线上技术分享活动。每期不同的技术主题,和行业专家深度探讨,专注...

    ZHAO_ 评论0 收藏0
  • 如何向UCloud MySQL实例中dump数据?

    摘要:操作登录,切换到导入页面,选择本地的数据文件进行导入。注意源数据库时,仅导出业务相关的库表,请过滤掉基础库。若全库导入,会覆盖实例原有基础库,影响后续使用。phpMyAdmin操作 登录phpMyAdmin,切换到导入页面,选择本地的数据文件进行导入。 命令行操作 将需要导入的数据文件上传至云主机,在云主机中执行如下命令: mysql -h$IP -P$Port ...

    luffyZh 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<