DB2数据迁移经验分享

2011-12-15  黄桂梅 

方法一:整个数据库备份和恢复

步骤一: 断开与数据库的链接

db2 list applications

db2 forece application all

步骤二:备份数据库:db2 backup database 需要备份的数据库名 to 文件存储路径

步骤三:恢复数据库:db2 restore database 已备份的数据库名 from 文件存储路径 into 新数据库名

步骤四:测试数据库是否创建成功:

db2start

db2 connect to 新数据库名 user 新数据库用户名 using 用户密码

注意事项:新库用户名必须和原库用户名一致,并且需重新对新库赋予相应的用户权限

 

方法二:通过sql来进行用户对象创建和初始化数据导入

步骤一:导出用户对象(表结构、索引、视图、存储过程等)

db2look -d 数据库名 -z 用户名 -e -o create.sql

修改create.sql,将原用户名替换成新用户名

步骤二:导出数据库数据

db2move 数据库名 export -sn 用户名 -u 用户名 -p 密码

修改db2move.list,将原用户名替换成新用户名

步骤三:创建数据库和赋予用户权限

CREATE DATABASE 新数据库名 AUTOMATIC STORAGE YES USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM PAGESIZE 32768;

CONNECT TO 新数据库名;

GRANT  DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT ON DATABASE  TO USER 新用户名;

步骤四:创建用户对象、执行create.sql

步骤五:导入数据库数据
db2move
新数据库名 import -io insert -u 新用户名 -p 密码

注意事项:
1
、如果跳过第四步,直接执行 db2move 新数据库名 import -io replace_create -u 新用户名 -p 密码,会出现索引模式与表模式不一致问题
2
、如果是不同版本的数据库迁移,请使用方法二,且两个版本的db2codepage要一致,可以使用db2set -all查看,然后通过db2set db2codepage=XXXX


——————收藏并分享同事wusd总结的文章——————————————————————————

583°/5807 人阅读/3 条评论 发表评论

熊志男  2011-12-15

比较麻烦的迁移就是,旧库和新库的结构不一样,设计不一样,要把老的数据导入到新的数据库里,这个时候就需要厘清之间的逻辑关系。
前阵子我一个同学天天为了这个发愁啊,最关键的是老的数据之间的关系没有文档参考,只能靠猜测,那个苦啊。


小窝  2012-01-16

已同步至官方微博


登录 后发表评论