免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5252 | 回复: 2
打印 上一主题 下一主题

不同的版本之间进行数据迁移_数据导出 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-05 11:25 |只看该作者 |倒序浏览
就拿DB2数据库在不同的版本之间进行数据迁移!
一,数据库的全量数据导出
1,停掉所有的数据库应用。
# db2 force applications all
2,查找DB2的安装目录。
# ps -ef | grep db2
一般情况在/opt/ibm/db2/版本号对应的目录下。
3,建一个安全目录,对导出的数据进行存放。
# mkdir data
# chown -R db2inst1 data
# chmod -R 777 data
4,执行如下命令操作导出表结构,存储过程,视图。
# cd ../data
# db2look -d TestDb -e -a -x -i db2inst1 -w 123456 -o ddlfile.sql
TestDb:表示对应实际的数据库名。
db2inst1:表示对应数据库的用户名。
123456:表示数据库用户的登录密码。
ddlfile.sql:表示执行命令后生成的sql文件名。可在该文件中查看到数据库中的所有的表结构。
5,导出数据,命令如下:
# db2move TestDb export -u db2inst1 -p 123456
TestDb:表示对应实际的数据库名。
db2inst1:表示对应数据库的用户名。
123456:表示数据库用户的登录密码。
执行过程中会显示每张表中的数据量和对应的表名。执行完成后请查看data目录生成的EXPORT.out文件。可在该文件中查看到数据库中的所有表导出数据是否成功。每张表会生成对应的 ixf 和 msg 文件。
二,数据库数据导入
1,用db2inst1用户重新启动数据库。
# su - db2inst1
# db2stop force
# db2start
2,用db2inst1用户进入导出数据的目录,执行导入命令。
# su - db2inst1
# cd /home/data
# db2move TestDb load -lo replace -u db2inst1 -p 123456
TestDb: 对应实际要恢复数据的数据库名。
db2inst1: 数据库的用户名。
123456: 对应用户的登录密码。
replace:表示替换数据库中的现有数据,也可用insert向数据库中合并数据。
可以在控制台上看到每张表的恢复执行情况,在输出的文件日志LOAD.out可查看导入信息,可根据导出的信息进行处理!
3,Db2inst1用户对load失败的表进行数据import实现。
# db2 import from tab10.ixf of ixf replace_create into SYSTOOLS.HMON_ATM_INFO
4,当数据表的自增字段是:ALWAYS
在覆盖时会报错,这样自增字段是不可以被替换的。换用下面的:
#db2 load from /home/data/tab44.ixf of ixf modified by identityignore replace into DB2INST1.表名
完成后检查数据库中的自增字段是否以最新sequence开始。

论坛徽章:
0
2 [报告]
发表于 2010-02-05 11:26 |只看该作者
在之前看过一个高手用存储过程完成了,现没有找到!

大家有好的见解可以提出来。

论坛徽章:
0
3 [报告]
发表于 2010-02-19 12:46 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP