星期四, 四月 27, 2006

利用9i 的 flashback query 闪回来恢复数据

今天上午接到客服工程师的电话,说误更新了部分重要数据,并且已经提交,需要恢复。


询问数据库版本,是Oracle9iR2,考虑尝试使用flashback query闪回来恢复数据。
询问误操作发生时间,大概是上午 10:52 左右,看看时间,现在是 11:20,大概 28 分钟以前

误操作的表是 mv_workitem

下面是给她的操作步骤

1、create table mv_workitem_bak as
SELECT * FROM mv_workitem AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '30' MINUTE);

2、查看 mv_workitem_bak 中的数据是否是更新前的数据

3、如果是更新前的数据,删除 mv_workitem 中的数据
delete from mv_workitem;

4、insert into mv_workitem select * from mv_workitem_bak;

5、select * from mv_workitem;

6、如果数据没有问题, commit

现场经过操作,客服工程师报告数据恢复。

[回复]

厉害,只是不知这“她”是谁? 给扣绩效了吧?
顺便问一下:DB2有没有这么好用的功能哇?该怎么实现?

Comment by jato_su (09/13/2007 16:12)

发表评论

标题

在此添加评论

称呼

邮箱地址(可选)

个人主页(可选)