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),这些有待继续研究。
 









本文转自 yuwenhu 51CTO博客,原文链接:http://blog.51cto.com/yuwenhu/186601,如需转载请自行联系原作者
目录
相关文章
|
SQL 数据采集 Oracle
怎样使用oracle分区表
怎样使用oracle分区表
193 0
|
SQL Oracle 关系型数据库
|
SQL Oracle 关系型数据库
Oracle闪回原理-Logminer解读redo(r11笔记第17天)
说到闪回日志,我们都知道闪回日志中记录的都是逆操作,那么就有两个问题需要解释了。 闪回日志和回滚段保存的数据有什么差别? 如果做了truncate操作,闪回日志是怎么记录的,怎么能够通过闪回恢复数据。
1119 0
|
Oracle 关系型数据库 数据库
揭秘Oracle数据库truncate原理
第一章 Oracle内核系列2-揭秘Oracle数据库truncate原理 DBAplus社群 | 2015-11-30 23:45  一、Truncate简介 无数次事故告诉我们,Truncate是一项很危险的动作。
1256 0
|
SQL Oracle 关系型数据库
oracle nologging用法(转)
一、oracle日志模式分为(logging,force logging,nologging) 默认情况是logging,就是会记录到redo日志中,force logging是强制记录日志,nologging是尽量减少日志。
1680 0
|
存储 监控 Go
第三章——使用系统函数、存储过程和DBCC SQLPERF命令来监控SQLServer(2)
原文: 第三章——使用系统函数、存储过程和DBCC SQLPERF命令来监控SQLServer(2) 承接上文,本文讲述如何使用系统存储过程来监控系统。
977 0
|
存储 监控 Go
第三章——使用系统函数、存储过程和DBCC SQLPERF命令来监控SQLServer(3)
原文: 第三章——使用系统函数、存储过程和DBCC SQLPERF命令来监控SQLServer(3) 本文为这个系列最后一篇。将是如何使用DBCC命令来监控SQLServer日志空间的使用情况。
1222 0
|
Oracle 关系型数据库 数据库
oralce dubugs
1,The listener supports no services   2,invalid specification for system parameter LOCAL_LISTENER create pfile from spfile  startup pfile='/ruiy/ocr/DBSoftware/app/oracle/product/11.
1044 0
PLSQL_闪回操作5_Flashback Table
2014-12-09 Created By BaoXinjian 一、摘要 Flashback Table注意SYS用户不支持闪回,这点前面已经说明过。 Flashback Table也是使用UNDO tablespace的内容来实现对数据的回退。
947 0
|
SQL 监控 关系型数据库
PLSQL_闪回操作6_Flashback Database
2014-12-09 Created By BaoXinjian 一、Flashback Database Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数。
1098 0