original db2: windows 2008 db2 v9.7
aim db2: SUSE12 SP3 db2 v9.7
图片部分,请在我的资源内下载db2迁移压缩包。
Author:Duan Yu 段誉
Mail:[email protected] [email protected]
一、准备以下软件:
Winscp 传输文件数据
notepad++ 更改sql语句、和查看导入是否发生错误
打开windows命令行:win+R
cmd
C:\Users\Administrator>db2cmd
出现新的控制窗口:如下图注意红色
C:\Users\Administrator>e:
E:\>md db2back 创建备份数据目录
E:\>cd db2back
E:\db2back>md db2look
E:\db2back>md db2move
E:\db2back>cd db2look
E:\db2back\db2look>db2look -d cashdb3 -e-a -o db2look_cashdb3.sql
cashdb3是数据库名,更改迁移数据库名,查看E:\db2back\db2look目录是否生成了db2look_cashdb3.sql文件
E:\db2back\db2look>cd E:\db2back\db2move
E:\db2back1\db2move>db2move cashdb3 export
cashdb3是数据库名,更改迁移数据库。查看E:\db2back\db2move是否生成了如下文件:具体查看windows_move图片
只需要修改db2look_cashdb3.sql
修改如下内容,具体查看1_notepad++、2_剪切类似的sql语句 图片
需要剪切的内容大概在6029-6099行,把剪切出来的内容放入一个新文件内。
winscp设置传输类型查看winscp_设置图片
winscp查看路径查看 winscp_path 图片
先登录linux服务器执行以下命令:
suse11:~ # mkdir/home/db2inst1/db2back_data
suse11:~ # mkdir/home/db2inst1/db2back_data/db2look_cashdb3
suse11:~ # mkdir/home/db2inst1/db2back_data/db2move_cashdb3
2.2.1上传建库信息:
请先查看3_winscp 图片
将db2look_cashdb3.sql上传至linux /home/db2inst1/db2back_data/db2look_cashdb3
将剪切出来的sql语句创建新的文件上传 /home/db2inst1/db2back_data/db2look_cashdb3
2.2.2上传表数据:
请先查看4_winscp_move 图片
将db2move目录内的文件上传至linux /home/db2inst1/db2back_data/db2move_cashdb3
Windows 操作完成!!
3.1 库结构导入:
suse11:~ # chmod -R 777 /home/db2inst1/db2back_data/
suse11:~ # su - db2inst1
db2inst1@linux-p91l:~> cd/home/db2inst1/db2back_data/db2look_cashdb3
db2inst1@linux-p91l:~> db2 create dbxxxx 注意查看db2look_cashdb3.sql文件内第9行 connect to xxxx 要与xxxx一致
db2inst1@linux-p91l:~> 命令在下面,由于字符过长会导致格式变化
db2 -tvf db2look_cashdb3.sql2>&1> /home/db2inst1/db2look_cashdb3.log
利用winscp下载/home/db2inst1/db2look_cashdb3.log 文件
db2 LIST TABLES FOR SCHEMA think 查看与windows服务器是否表数量对应
无错误进去下一步
3.2 表的数据导入:
db2inst1@linux-p91l:~> cd/home/db2inst1/db2back_data/db2move_cashdb3
db2inst1@linux-p91l:~> 命令在下面,由于字符过长会导致格式变化
db2move CASHDB3 import2>&1> /home/db2inst1/db2move_cashdb3.log
CASHDB3根据create db xxxx 来改变
利用winscp下载/home/db2inst1/db2move_cashdb3.log 文件
使用notepad++ 查看有无报错信息。错误信息请查看 db2move_error 图片
无报错信息进入下一步
3.3将自增约束表添加数据: 大写字符需要根据表名称来改变大概17张表
db2 load from TABX.ixf of ixfmodified by identityoverride replace into THINK.EMPLOYEE1 nonrecoverable
3.4 将库的外键还原:
db2inst1@linux-p91l:~> cd/home/db2inst1/db2back_data/db2look_cashdb3
db2inst1@linux-p91l:~>命令在下面,由于字符过长会导致格式变化
db2 -tvf db2look_cashdb3_key.sql2>&1> /home/db2inst1/db2look_cashdb3_key.log
若无报错进入下一步
编写脚本,通过 select count(*) from 模式.表名
来对比两个数据库表数据