WEB开发网
开发学院数据库DB2 基于DB2及PHP的应用系统跨平台迁移详细步骤(一)... 阅读

基于DB2及PHP的应用系统跨平台迁移详细步骤(一)

 2010-07-07 15:01:19 来源:WEB开发网   
核心提示:需要注意的是,db2 v6 版本的 db2look 尚未实现抽取如 UDF,基于DB2及PHP的应用系统跨平台迁移详细步骤(一)(4),TRIGGER,UserSpace,上述 shell 脚本从系统表中选出 SRCDB1 中所有表的名字,并根据它们的名字生成相应的 import 导入语句,NodeGroup,Buff

需要注意的是,db2 v6 版本的 db2look 尚未实现抽取如 UDF,TRIGGER,UserSpace,NodeGroup,BufferPool 等数据库对象的 ddl 语句。从 db2 v7 开始,db2look 可以抽取上述对象的 DDL,但是依然无法抽取创建存储过程对象的 ddl 语句。从 db2 v8.2 开始,完善了对 db2look 功能的支持,实现了存储过程 ddl 语句的抽取功能。由于本文所涉及的源数据库系统的版本较低(DB2 v8.1),因此需要采取上述方案获取所有数据库对象的 DDL 信息:

1). 从某个 DB2 v8.2 系统对 SRCDB1(DB2 v8.1 版本)执行 CATALOG 操作:

db2 catalog db SRCDB1 as SRCDB1;

2). 从 DB2 v8.2 系统对 SRCDB1 进行 db2look 抽取过程:

db2look -d SRCDB1 -e -o srcdb1.ddl -a -i user_srcdb1 -w pw_srcdb1;

这样就可以获取完整的数据库对象 DDL 信息。

3.生成数据导出export脚本

使用 shell 脚本生成并导出所有数据的 DML 脚本,并将其重定向到 srcdb1_export.sql 文件中。对于熟悉 DB2 的用户来说,应该知道数据库中创建的每个表、视图、别名均对应 SYSCAT.TABLES 中一行记录。因此可以通过相应的数据库 select 语句就可以获取所有需要的数据库表信息。根据需要,下述 shell 脚本将从系统表 SYSCAT.TABLES 中根据 tabname 字段选出 SRCDB1 中所有 tabschema 表模式是 SRCDB1,ASN,SQLDBA,DB2DBG 的表名字,并根据它们的名字生成相应的 export 导出语句,到达批量导出的目的。rtrim 函数用于去除 tabname 字段数据的右边的空格。

清单6. 生成export脚本

# db2 "select 'export to ' rtrim(tabname) '.ixf of ixf select * from '
rtrim(tabname) ';' from syscat.tables
where tabschema in('SRCDB1', 'ASN', 'SQLDBA', 'DB2DBG')" > srcdb1_export.sql ;

编辑生成的 srcdb1_export.sql,删除头部和尾部所显示的统计信息,只保留必要的 export 语句。通过修改上述脚本中所包含的 tabschema 信息,可以指定需要导出的表的范围,也即迁移过程中需要的所有表名。所生成的 export 导出语句具有如下的命令形式:

db2 export to tablename.ixf of ixf select * from tablename;

4.生成数据导入 load 脚本

使用 shell 脚本生成 load 脚本用于将数据导入目标系统:srcdb1_load.sql

清单7. 生成 load 脚本

# db2 "select 'load from ' rtrim(tabname) '.ixf of ixf insert into '
rtrim(tabname) ';' from syscat.tables
where tabschema in ('SRCDB1', 'ASN', 'SQLDBA', 'DB2DBG')" > srcdb1_load.sql;

编辑生成的 srcdb1_load.sql,删除头部和尾部的统计信息,只保留必要的 load 语句。与 export 导出语句类似,上述 shell 脚本从系统表中选出 SRCDB1 中所有表的名字,并根据它们的名字生成相应的 import 导入语句,到达批量导入的目的。所生成的 import 导入语句命令形式如下:

db2 load from tablename.ixf of ixf insert into tablename;

上一页  1 2 3 4 

Tags:基于 DB PHP

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接