WEB开发网
开发学院数据库DB2 用 AWK 实现 DB2 数据库 Schema 的同步 阅读

用 AWK 实现 DB2 数据库 Schema 的同步

 2007-04-09 22:17:11 来源:WEB开发网   
核心提示: DB2数据库SCHEMA同步步骤1、从SIT环境中取得最新的数据库SCHEMA2、从单元测试环境取得旧数据库的SCHEMA3、在单元测试环境,用db2move命令卸出旧数据库的数据4、比较两个版本的异同5、如果没有任何表的SCHEMA发生了改变,用 AWK 实现 DB2 数据库 Schema 的同步(2),则执行第7

DB2数据库SCHEMA同步步骤

1、从SIT环境中取得最新的数据库SCHEMA

2、从单元测试环境取得旧数据库的SCHEMA

3、在单元测试环境,用db2move命令卸出旧数据库的数据

4、比较两个版本的异同

5、如果没有任何表的SCHEMA发生了改变,则执行第7步

6、如果有表的SCHEMA发生了改变,则执行:
用新的表结构创建一个临时表;
生成insert into transtmptbl (...) select ... from <oldtbl>的SQL;
将临时表中的数据导出到文件中;
删除临时表;
用新的数据替换第3步导出的指定表的数据文件,然后执行第7步

7、取得新SCHEMA的表空间名称

8、重建数据库

9、有选择的将新库中独有的表的数据导入到本地新数据库中

10、检查数据库的完整性

以下,我们详细说明这些步骤。

从SIT环境中取得最新的数据库SCHEMA

在SIT环境中,执行以下命令:


db2look -d cusgadev -i db2admin -w db2admin -e -a -o cusnew.sql

该命令用于从SIT环境中抽取最新的DDL语句。其中各选项的涵义如下:

-d <dbname>:指定被抽取DDL的数据库名称。

-e:抽取数据库的DDL语句,包括表、视图、自动摘要表、别名、索引、触发器、Sequences、User defined Distinct Types、Prima(最完善的虚拟主机管理系统)ry Key/RI/CHECK约束、用户定义的结构化类型、用户定义的函数、用户定义的方法、用户定义的转换。

-i <userid>:连接远程数据库时,需要用这个选项指定登录用户名。

-w <passwd>:连接远程数据库时,需要用这个选项指定登录用户的密码。

-a:输出所有用户创建的对象,而不仅仅是当前登录用户创建的对象。

-o <outfile>:将DDL输出到指定的文件中。如果不指定该选项,则将输出到标准输出。

从单元测试环境取得旧数据库的SCHEMA

在单元测试环境中,执行以下命令:


db2look -d cusgadev -e -a -o cusnew.sql

该命令用于从单元测试环境中抽取最新的DDL语句。各选项的涵义见上文。

在单元单元测试环境,卸出旧数据库的数据

在单元测试环境中,执行以下命令:


db2move cusgadev export

该命令用于将单元测试环境中已有的数据输出到当前目录下。该命令为每一个表生成独立的PC/IXF格式的数据文件,这些文件可以传输到任何其他的机器上并通过load或者import命令装入到那台机器上的DB2数据库中。

该命令同时生成一个名为"db2move.lst"的文件,这个文件是卸出表的清单,指明哪一个表对应到哪一个数据文件。该文件将用于之后的步骤,以便用最新的SCHEMA卸出原有表的数据。

分析新旧数据库SCHEMA

以下,我们使用cygwin环境下的SHELL程序来分析新旧数据库的SCHEMA。

上一页  1 2 3 4 5  下一页

Tags:AWK 实现 DB

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