方法一:整个数据库备份和恢复
步骤一: 断开与数据库的链接
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总结的文章——————————————————————————