Chinaunix首页 | 论坛 | 博客
  • 博客访问: 566773
  • 博文数量: 287
  • 博客积分: 27
  • 博客等级: 民兵
  • 技术积分: 547
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-01 20:20
文章分类

全部博文(287)

文章存档

2015年(1)

2014年(95)

2013年(90)

2012年(101)

分类: DB2/Informix

2014-08-25 22:24:35

1、在源库中使用以下语句生成重定向脚本:
db2 "restore db dbname from /yourdbparth taken at timestamp into dbname redirect generate script  redirect.sql "
2、修改重定向脚本,注意表空间的高水位线,每个表空间大小不得低于高水位线:
执行重定向恢复:db2 -tvf redirect.sql
恢复期间可以使用db2pd -utilities 查看进度。恢复完成后进行数据库的前滚。误操作大概发生在12月5号11:50(备份介质的时间是20131130223004)
3、查看时区:db2 "values current timezone" 发现是正8,所以在前滚中使用USING LOCAL TIME时需要向前推8个小时,我们首先执行前滚到12月4号的11:40
4、开始前滚
db2 "rollforward database mydb to 2013-12-04-03.40.00.000000 USING LOCAL TIME overflow log path (归档日志在测试机上的位置)",注意这里不加complete或者stop,因为我们还需要前滚。
可以通过db2 rollforward db mydb query status来查看前滚情况,关注下一个日志。
5、第二次前滚
db2 "rollforward database mydb to 2013-12-05-03.40.00.000000 USING LOCAL TIME overflow log path (归档日志在测试机上的位置)"
6、最后一次前滚
再次使用db2 rollforward db mydb query status查看前滚情况发现下一个日志是在11:50后生成的,此时继续前滚的风险:可能需要重新进行恢复+前滚
于是执行最后一次前滚:db2 "rollforward database mydb to 2013-12-05-03.41.00.000000 USING LOCAL TIME and stop overflow log path (归档日志在测试机上的位置)"
7、数据恢复
使用export和load的方式数据恢复到源库中,要注意LOAD需要带nonrecoverable子句,否则让数据库挂起你就死定了。
以上完~~~
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
db2其他问题小记:
存储过程执行突然执行缓慢,问题解决思路?
对于以往执行正常,当前执行缓慢的情况,思路如下:

将存储过程中的语句进行拆分,逐条执行动态SQL,观察执行时间

如果很快:
1、需要先了解最近是否有大量新数据导入;
2、是否新建索引;
3、获取当前存储过程执行计划A检查最近是否正常,如果异常先将该存储过程所涉及的所有表runstats执行存储过程如果还是缓慢,rebind package重新绑定该存储过程所涉及的包获取rebind后的存储过程的执行计划B最后,对比 执行计划A 与 执行计划B

--获得存储过程的包名

1、先指定存储过程名  rpt.aa10001

2、获取 pkgname

select b.*,c.PROCSCHEMA,c.PROCNAME from

syscat.STATEMENTS b, syscat.PROCEDURES c,syscat.ROUTINEDEP d

where b.pkgname=d.bname

and c.SPECIFICNAME=d.SPECIFICNAME

and c.PROCSCHEMA=d.ROUTINESCHEMA

and c.PROCSCHEMA='FLT' and c.PROCNAME='FLIGHTDATA' --指定存储过程名

PS:runstats仅是更新执行计划的一方面(对于动态SQL生效,但对于存储过程无效)还需rebind包(对于更新存储过程执行计划方才有效)

--重新绑定包,rebind包

db2 rebind package rpt.P621357

3、动态SQL立即生效,更新package cache中的执行计划

flush package cache dynamic

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