用 AWK 实现 DB2 数据库 Schema 的同步
2007-04-09 22:17:11 来源:WEB开发网- ·数据库人员面试:sql server(WINDOWS平台上强大的数据库平台)常用测试
·Oracle(大型网站数据库平台)数据库客户端的安装和配置
·PHP连接数据库的方法(3)
·Oracle(大型网站数据库平台)数据库网络的安装和配置(1)
·用jsp(SUN企业级应用的首选)从数据库中读取图片并显示在网页
·[冷枫推荐]:数据库操作,内外联查询
·PHP中使用类对数据库进行操作
·图解MySQL(和PHP搭配之最佳组合)数据库的安装和操作 (1)
·InterBase 数据库函数库
·利用外部命令Oralce数据库导入导出
重建数据库
按以下步骤重建数据库:
1、编辑db2move.lst,删除在新库中已不使用的表。
根据上述步骤中得到的仅在旧数据库中存在的表,编辑db2move.lst,删除该表所在的行。
2、删除旧数据库。
执行以下命令,删除旧数据库:
db2 drop database cusgadev |
3、创建数据库
执行以下命令,创建新数据库:
db2 create database cusgadev using codeset iso8859-1 territory cn |
其中,"iso8859-1"表示数据库使用的字符集,"cn"表示数据库使用的地域。
4、连接数据库
执行以下命令,连接新数据库:
db2 connect to cusgadev |
5、修改物理日志参数
执行以下命令,修改数据库的日志参数:
db2 update database configuration using logfilsiz 25000 deferred |
创建数据时,默认的日志空间比较小,对于大事务的处理有影响,所以,需要根据应用的需要及PC机的配置适当调整日志空间的值。
可以使用"GET DATABASE CONFIGURATION"命令查看数据库的当前配置。
6、创建缓冲池
执行以下命令,为数据库创建缓冲池:
db2 create bufferpool BF81 size 10000 pagesize 8 K |
7、创建表空间
执行以下命令,为数据库创建表空间:
db2 CREATE TABLESPACE "DATATBS00_8K" PAGESIZE 8K MANAGED BY DATABASE USING(FILE '<filename>' 50000) bufferpool bf81db2 CREATE TABLESPACE "DATATBS01_8K" PAGESIZE 8K MANAGED BY DATABASE USING(FILE '<filename>' 50000) bufferpool bf81db2 CREATE TABLESPACE "DATATBS02_8K" PAGESIZE 8K MANAGED BY DATABASE USING(FILE '<filename>' 50000) bufferpool bf81db2 CREATE TABLESPACE "IDXTBS00_8K" PAGESIZE 8K MANAGED BY DATABASE USING(FILE '<filename>' 50000) bufferpool bf81db2 CREATE TABLESPACE "IDXTBS02_8K" PAGESIZE 8K MANAGED BY DATABASE USING(FILE '<filename>' 50000) bufferpool bf81db2 CREATE TABLESPACE "STATICTBS00_8K" PAGESIZE 8K MANAGED BY DATABASE USING(FILE '<filename>' 50000) bufferpool bf81db2 CREATE TABLESPACE "USERSPACE1" PAGESIZE 8K MANAGED BY DATABASE USING(FILE '<filename>' 50000) bufferpool bf81 |
其中,tablespace的名称是从新数据库的SCHEMA文件中提取出来的。本例中,它们都使用同一个缓冲池。"<filename>"需要按照PC机硬盘空余空间的情况,修改为实际的全路径文件名称。
8、用新的SCHEMA创建数据库
执行以下命令,按照新数据库的SCHEMA创建其中的各种对象,如表、索引等:
db2 -tvf cusnew.sql |
9、装入数据
执行以下命令,将旧数据库的数据装入到刚创建的新数据库中:
db2move cusgadev load |
该命令使用的修改后的db2move.lst作为装入表的清单。
有选择的将新库中独有的表的数据导入到本地新数据库中对于仅在新数据库中存在的表,可以根据需要有选择的将其数据从SIT环境导入到单元测试环境。本文中,不考虑新表对于其他表的外键关联。
假设某个仅在新数据库中存在的表的名称为"newtable",在SIT环境执行以下命令卸出数据:
db2 unload to newtable.ixf of ixf select * from newtable |
将文件"newtable.ixf"传输到单元测试环境所在的PC机上,执行以下命令:
db2 load from newtable.ixf of ixf insert into newtable |
如果这个新表对于其他表有外键关联,还需要导入其他相关表的数据。
检查数据库的完整性
更多精彩
赞助商链接