• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

db2v8数据迁移

mysql 搞代码 4年前 (2022-01-09) 24次浏览 已收录 0个评论

db2数据迁移 版本:v8.1 任务:从生产拿数据到测试环境 处理过程中遇到的问题: 1、字符集问题。源数据库代码页为gbk,目标数据库代码页为uft-8 处理方法:导出或者导入时做格式转换 注意:由于在gbk库里面,一个汉字占两个字节,而uft-8里面,一个汉字站三

db2数据迁移

版本:v8.1

任务:从生产拿数据到测试环境

处理过程中遇到的问题:

1、字符集问题。源数据库代码页为gbk,目标数据库代码页为uft-8

处理方法:导出或者导入时做格式转换

注意:由于在gbk库里面,一个汉字占两个字节,而uft-8里面,一个汉字站三个字节 ,导入目标库时,存在字段超过长度的告警错误

导出:

db2 “export to xxx.ixf of ixf select * from xxx”

db2 “export to xxx.ixf of ixf modified by codepage=1208 select * from xxx” —

本文来源gao!%daima.com搞$代*!码$网9

会自动把表结构中字段类型为char和varchar的字段长度扩大一倍

db2 “export to xxx.del of del modified by codepage=1208 select * from xxx”

导入:

db2 “load from xxx.ixf of ixf replace into xxx nonrecoverable”

db2 “load from xxx.del of del replace into xxx nonrecoverable”

注意:load导入时,如果长度字段超长,为把超长的每一条记录打印出来,数据量大的情况下很让人无语,会花大量的时间。对于这种错误,这次的处理方法就直接先把表字段长度扩大好了,然后再导入数据。查看load导入时的详细信息,可以使用db2 list utilities show detail

2、改字段类型问题

db2v8貌似不能直接修改,只能先删字段再加字段,无奈的时,该字段上面有索引….只能发大招,重建表了

为了安全,先备份原来环境的表结构

方法一:db2 “export to tbname.ixf of ixf select * from tbnamewhere 1=2”

方法二:db2look -d dbname -e -t tbname -o tbname.sql

将方法二中导出来的sql语句修改一下,把字段超长的长度加大,然后执行db2 -tvf tbname.sql 重新建表

另外:本来是想把测试环境的数据库删掉,直接把生产的数据库全部对象ddl拿回来,在测试环境还原一下,由于时间紧迫,又没做过,怕搞坏了,下次自己重新再做一次恢复,目前还没有相关的脚本,也希望有经验的同志不吝赐教,多多指导

临时建了一个空数据库

db2 create dbname using codepage=1208 territory cn

创建缓冲池

db2 create bufferpool bp16k size 2000 pagesize 16384

创建表空间

db2 create tablespace tpname pagesize 16384 managed by database using (file,'/dd/ddd',size) bufferpool bp16k

总结:在迁移过程中,还碰到了其他问题,如日志溢出,死锁等,毕竟测试环境和生产的是没得比,而且参数配置也存在差别。但总的来说,大部分问题都还是可以处理好。

感谢同事老师指导。小小的心得:计划好要做的事情,考虑好存在的问题,做好每一步,处理好碰到的问题。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:db2v8数据迁移

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址