还原DB2数据库

有没有办法将在Windows XP中备份的db2数据库还原到Linux机器上? 我在两个操作系统上使用相同版本的DB2 – > DB2 Express-C 9.7源操作系统:Windows XP SP2目标操作系统:Ubuntu 9.04

IBM为这种情况提供了文档。 在developerWorks上查看此页面: 使用DB2实用程序在不同平台上克隆数据库

简介 :当不支持跨平台备份和还原操作时,可以使用两个DB2实用程序db2move和db2look来克隆数据库。 本文提供了这些实用程序的概述,并提供了如何使用此方法克隆DB2数据库的分步示例。

我已经使用过类似的过程(涉及db2move)将DB2数据库从Windows传输到AIX,反之亦然。

介绍

DB2的本地备份工具创build了一个不能从W2K移植到AIX的备份映像。 本文档介绍将任何DB2数据库从一个平台移动到另一个平台所需的过程。

假设

举例来说,本文档假设从W2K(源平台)到AIX(目标平台)的数据库是MYDB。

程序细节

运行MYDB数据库的db2look命令为MYDB数据库生成DDL。

db2look -d mydb -e –l –x -o mydb_create.sql

创build一个用于存储源数据库MYDB的逻辑备份的目录。

mkdir backup

切换到新目录,并使用db2move实用程序创build逻辑备份

cd backup
db2move mydb export

将数据库和DDL脚本的备份从源传输到目标。 以ASCII模式传输mydb_create.sql,以二进制模式传输所有备份* .ixf文件。

以下步骤将在目标平台上执行。

将mydb_create.sql脚本分成两个脚本。 第一个命名为mydb_tables.sql,应该包含所有别名,表和视图创build命令。 第二个脚本将被命名为mydb_ri.sql,并在第一个停止的地方,包括检查和外键约束和授权。 确保两个脚本的顶部都有一个CONNECT命令,最后是COMMIT,CONNECT RESET和TERMINATE命令。

编辑mydb_tables.sql并确保任何用户表空间只使用相对path名。 如果使用绝对path名称,则不能在同一个系统上多次恢复数据库,而不使用REDIRECTED RESTORE。

创build一个空的MYDB数据库。

create db mydb

运行mydb_tables.sql脚本以创build别名,表和视图。

db2 –tvf mydb_tables.sql > mydb_tables.out

检查mydb_tables.out是否有错误。 一个简单的方法是运行以下命令。

grep SQL0 mydb_tables.out|grep –v SQL0403W|grep –v SQL0598W|more

将数据导入表(可以使用INSERT选项代替REPLACE,但REPLACE可重新运行)。

db2move mydb load -lo replace

运行mydb_ri.sql脚本以创build参照完整性约束等

db2 –tvf mydb_ri.sql > mydb_ri.out

检查mydb_ri.out是否有错误。 一个简单的方法是运行以下命令。

grep SQL0 mydb_ri.out|grep –v SQL0403W|grep –v SQL0598W|more

validation源数据库和目标数据库是否相同。