db2 从linux迁移到window,db2数据库如何从windows迁移到linux

本文详细介绍了一种从Windows环境下的DB2数据库迁移到Linux环境的具体步骤。利用db2move和db2look工具导出数据及DDL语句,通过SSH上传文件并创建新数据库,最后完成数据导入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于数据库迁移,如果操作系统相同,例如从 Windows 系统迁移到 Windows 系统,或者从 AIX 系统迁移到 AIX 系统都比较好处理,一般使用 BACKUP 和 RESTORE 命令就可以进行。当然,有些情况下需要注意表空间重定向的问题。

那么,如果数据库迁移涉及到的操作系统不相同该怎么办呢?BACKUP 和 RESTORE 这个方法就行不通了。DB2 UDB 提供了两个非常实用的工具,一个是数据迁移工具 db2move,另一个是数据字典获取工具 db2look。

以下是我在项目中将db2数据库由windows xp测试环境迁移到linux下的具体步骤

1 登录windows,使用 db2move 命令将源数据库(CCNS)数据导出至指定的文件夹D:dbbackdb2moveCNAS 下

引用

C:Documents and SettingsAdministrator>cd /d D:dbbackdb2moveCCNS

D:dbbackdb2moveCCNS>db2move CCNS export -sn db2inst1 -u db2inst1 -p *****

运行导出,成功后会显示 Disconnecting from database ... successful!

2 使用 db2look 命令将数据库 DDL 导出至指定的文件夹D:dbbackdb2lookCCNS下

引用

C:Documents and SettingsAdministrator>cd /d D:dbbackdb2lookCCNS

D:dbbackdb2moveCCNS>db2look -d CCNS -e -a -o db2look_CCNS.sql

3 用ssh工具登录到linux系统中(当然其它工具也行),创建新数据库和数据结构

登录时用户名不要用root而是用db2安装时默认的用户,例如db2inst1/db2admin,登陆进去以后,用ssh自带的文件上传工具,把刚才导出的 D:dbbackdb2move 和 D:dbbackdb2look文件夹上传到linux系统中 如 /db2home/db2inst1/db2back/db2look/CCNS

创建新数据库,并执行数据库DDL语句,创建数据结构

引用

db2inst1@ccns-archive-db:~> cd db2back/db2move/CCNS

db2inst1@ccns-archive-db:~/db2back/db2move/CCNS> db2 CREATE db CCNS

db2inst1@ccns-archive-db:~/db2back/db2move/CCNS> db2 -tvf db2look_CCNS.sql

4 linux系统中 使用 load 命令装载数据

引用

db2inst1@ccns-archive-db:~> cd /db2home/db2inst1/db2back/db2move/CCNS

db2inst1@ccns-archive-db:~/db2back/db2move/CCNS> db2move CCNS load

操作顺利的话,数据会被转移到linux下面。要注意两个问题

1) 关于表模式,windows下面的表用户名db2admin ,里面的表模式也是 db2admin 而linux下面的默认用户的是db2inst1 表模式也是db2inst1,所以需要做以下处理

D:DBBackCNASdb2lookCCNSdb2look_ccns.sql里面的db2admin字符全部替换成 db2inst1

D:DBBackCNASdb2moveCCNSdb2move.lst 也做同样的操作

这样到入到linux系统后,就与linux默认的用户对应上了

2)在db2move过程中会有些表因为检查约束可能会处于暂挂状态,需要执行SET INTEGRITY命令来恢复它的暂挂状态。

引用

可以从系统表中检索处于检查暂挂状态的表信息

Select tabname from syscat.tables where status='C'

对暂挂的表执行

set integrity for usertbl ALLOW NO ACCESS immediate checked

导出的时候,可能会有个别表的数据丢失,这时候只能对相应的表执行db2move命令重新load了,如果还是不行就重建表再load

load单个表的命令

引用

db2 load from tab11.ixf of ixf terminate into db2admin.xxxxxxxxx

tab11.ixf对应的是xxxxxxxxx表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值