Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5539414
  • 博文数量: 348
  • 博客积分: 2173
  • 博客等级: 上尉
  • 技术积分: 7900
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-24 17:26
个人简介

雄关漫道真如铁,而今迈步从头越。

文章存档

2022年(4)

2020年(6)

2019年(2)

2018年(2)

2017年(34)

2016年(49)

2015年(53)

2014年(47)

2013年(72)

2012年(79)

分类: DB2/Informix

2013-09-15 20:02:36

本文总结了如何从生产环境将表结构、视图、函数、存储过程及触发器等恢复到测试环境的一般方法与验证步骤~
1、  从生产上导出建表空间及建表结构信息

#导出表空间

db2look -d rrzdb -l -o tbspc.sql

#导出表结构

db2look -d rrzdb -Z rrz -e -o table.sql

#导出表名

db2  “select tabname from syscat.tables where tabscheam=’rrz’ |tee -a tbname.txt

2、  创建数据库

db2 "create db rrzdb_ly on /rptly USING CODESET GBK TERRITORY CN"

3、  修改变空间大小并将裸设备调整为文件系统

4、  恢复表空间

db2 -tvf tbspace.sql

5、  恢复表结构

#首先将connect的数据库修改为重定向的数据库名字

db2 -tvf crt_tab.sql|tee 1th.log

二、验证是否完整的将库中数据表、函数、视图等导入到验证环境中。
1、  对比表

首先创建t1t2两个表

db2 "create table t1(name char(100))"

db2 "create table t2(name char(100))"

其中t1存放生产库表名,t2存放恢复后库的表名;
批量将原表的表名字插入t1表中shell脚本:

cat tablist|while read tbname

db2 connect to rrzdb_ly

do

 if [ $tbname ='' ];

 then

   echo "error!!!"

exit 1

 else

 db2 "insert into t1 values('$tbname')"

 fi

done
测试库中批量插入脚本同上
比两个表中的数据差异:

db2 "select * from t1 except all select * from t2"

阅读(5805) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~