日期:2014-05-16 浏览次数:20496 次
就拿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开始。