雄关漫道真如铁,而今迈步从头越。
全部博文(348)
分类: 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、 对比表
首先创建t1与t2两个表
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"