基于DB2及PHP的应用系统跨平台迁移详细步骤(一)
2010-07-07 15:01:19 来源:WEB开发网在源系统 (AIX) 上的相关操作
1.使用 db2look 命令抽取生成数据库对象的 DDL 脚本
清单 1. db2look 命令及参数
# db2look -d SRCDB1 -e -o srcdb1.ddl -a -i user_srcdb1 -w pw_srcdb1
db2look :生成 DDL 以便重新创建在数据库中定义的对象
语法:db2look -d DBname [-e] [-u Creator] [-z Schema]
[-t Tname1 Tname2...TnameN] [-tw Tname] [-h] [-o Fname] [-a]
[-m] [-c] [-r] [-l] [-x] [-xd] [-f] [-fd] [-td x]
[-noview] [-i userID] [-w password]
[-v Vname1 Vname2 ... VnameN] [-wrapper WrapperName]
[-server ServerName] [-nofed]
-d : 数据库名称,必选参数
-e : 抽取复制数据库所需要的 DDL 文件,此选项将生成包含 DDL 语句的脚本
-o : 将输出重定向到给定的文件名,如果未指定 -o 选项,则输出默认转到 stdout
-a : 为所有创建程序生成统计信息,如果指定了此选项,则将忽略 -u 选项
-i : 指定登录到数据库所在服务器时所使用的用户标识
-w : 指定登录到数据库所在服务器时所使用的密码
2.根据不同类型对象,分化数据库对象 DDL 脚本
由于源数据库中的各个表数据已经是经过触发器、存储过程等数据库对象处理过的数据,为保证数据库中数据的一致性和完整性,这些数据库对象应该在导入数据后再创建,以防止在导入表数据时重复执行触发器和存储过程等数据库对象生成错误数据。使用文本编辑器编辑由 db2look 生成的 srcdb1.ddl,将创建表及索引的 DDL 语句,创建外键约束的 DDL 语句以及创建触发器和创建存储过程的语句分为四组,分别保存为下面四个 DDL 脚本:
srcdb1_tables.ddl srcdb1_foriegnkeys.ddl
srcdb1_triggers.ddl srcdb1_procedures.ddl
srcdb1_tables.ddl :包含创建 SEQUENCE,UDF,TABLE,VIEW 等数据库对象的 ddl 语句。
清单2. srcdb1_tables.ddl 语句
CREATE SEQUENCE "SRCDB1"."SAMPLE_SEQ_1" AS INTEGER
MINVALUE 1 MAXVALUE 9999999999
START WITH 1 INCREMENT BY 1;
CREATE FUNCTION " SRCDB1"." SAMPLE _FUNC_1" (
VARCHAR(254),
VARCHAR(254),
VARCHAR(254)
) RETURNS VARCHAR(254)
SPECIFIC SAMPLE _FUNC_1 ……;
CREATE TABLE " SRCDB1"." SAMPLE _TAB_1" (
"TAB_COL1" CHAR(20) NOT NULL ,
"TAB_COL2" VARCHAR(70) NOT NULL ) ;
CREATE TABLE " SRCDB1"." SAMPLE _TAB_2" (……);
……
CREATE TABLE " SRCDB1"." SAMPLE _TAB_N" (……);
CREATE VIEW SRCDB1.SAMPLE_VIEW_1 (VIEW_COL1,VIEW_COL2) AS SELECT distinct
COL1 , COL2 FROM SAMPLE_TAB WHERE ……;
CREATE VIEW SRCDB1.SAMPLE_VIEW_2 ……;
……
CREATE VIEW SRCDB1.SAMPLE_VIEW_N ……;
更多精彩
赞助商链接