oracle flashback table 参数,oralce flashback 使用方法总结

oralce flashback 使用方法总结:

一,关键知识点

在oracle 10g中,如果是使用drop 把表对象删除了,会把这个对象放在回收站里

查看回收站:select * from recyclebin;

然后恢复对象:flashback table TABLENAME to before drop;

删除不放回回收站:drop table TABLENAME purge;

如果不小心误删除了某个表中的部分数据,需要恢复回来,可以利用oracle flashback闪回误删除的表数

据。但要注意:flashback table 需要下面几个条件:

1. 需要有flashback any table的系统权限或者是flashback这个表的对象权限;

2. 需要有对这个表的基本的dml,alter操作权限;

3. 必须保证该表row movement(这主要是让flashback记住表的rowid)

扩展:oracle flashback闪回不仅可以误删除的表数据,还可以错误的修改也可以恢复过来;

注意:

ORA-08189: cannot flashback the table because row movement is not enabled

但是抛出了8189错误,原因就是因为表没有row movement,改变下表的属性:

SQL> alter table test_tablename enable row movement;

再执行闪回操作;

二,实例

1.创建示例表:

CREATE TABLE TBL_TEST

(

ID    NUMBER,

NAME VARCHAR2(100 BYTE),

PID   NUMBER                                  DEFAULT 0

);

2.插入测试数据:

INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');

INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');

INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');

INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');

INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');

3.恢复误删除的表数据

例如:

FlashBack table TBL_TEST to timestamp to_timestamp('2009-8-1 16:59:36','yyyy-mm-dd

hh24:mi:ss');

报错:ORA-08189: cannot flashback the table because row movement is not enabled

错误解决,要执行:alter table TBL_TEST enable row movement;

FlashBack table TBL_TEST to timestamp to_timestamp('2009-8-1 16:59:36','yyyy-mm-dd

hh24:mi:ss');

4.恢复误表数据错误的修改:

例如:

update TBL_TEST set pid=1 where id =5;

FlashBack table TBL_TEST to timestamp to_timestamp('2009-8-1 16:59:36','yyyy-mm-dd

hh24:mi:ss');

5.恢复被删除表的步骤:

(1)显示回收站信息

select * from RECYCLEBIN;

(2)确定被删除表存在后,可以恢复诶删除表,此时可以指定表明或者回收站对象名

flashback table TBL_TEST to before drop;

或 flashback table "BIN$zgwx7wCsQ92JRcrAVpABQg==$0" to before drop

6.恢复被删除表的同时可以改变被删除表的名称

flashback table TBL_TEST to before drop rename to test_TBL_TEST

或 flashback table "BIN$zgwx7wCsQ92JRcrAVpABQg==$0" to before drop rename to test_TBL_TEST

7.删除不放回回收站:

drop table TBL_TEST purge;

目前只在pl/sql developer 上,实际操作了上面几点,也是常用的知识点。可能还有其他的处理方法,如Flashback Database to time to_timestamp(xxx),这些有待继续研究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值