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,如需转载请自行联系原作者
目录
相关文章
|
算法 Java Apache
运筹优化工具库介绍(二)
运筹优化工具库介绍
2586 0
|
开发工具 Android开发
Mac 安卓(Android) 配置adb路径
Mac 安卓(Android) 配置adb路径
1530 0
|
算法 网络协议 Linux
【Cisco Packet Tracer】交换机的自学习算法
【Cisco Packet Tracer】交换机的自学习算法
655 0
|
Web App开发 Shell Linux
|
前端开发 JavaScript 关系型数据库
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
4169 2
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
|
存储 Java 调度
开发踩坑记录之二:谨慎使用Spring中的@Scheduled注解
在一些业务场景中需要执行定时操作来完成一些周期性的任务,比如每隔一周删除一周前的某些历史数据以及定时进行某项检测任务等等。在日常开发中比较简单的实现方式就是使用Spring的@Scheduled(具体使用方法不再赘述)注解。但是在修改服务器时间时会导致定时任务不执行情况的发生,解决的办法是当修改服务器时间后,将服务进行重启就可以避免此现象的发生。本文将主要探讨服务器时间修改导致@Scheduled注解失效的原因,同时找到在修改服务器时间后不重启服务的情况下,定时任务仍然正常执行的方法。 @Scheduled失效原因分析 解析流程图 使用新的方法
开发踩坑记录之二:谨慎使用Spring中的@Scheduled注解
|
Oracle JavaScript 关系型数据库
MySQL8 OCP可以个人报名了,内卷时代考个证提升自己
MySQL8 OCP可以个人报名了,内卷时代考个证提升自己
3044 0
MySQL8 OCP可以个人报名了,内卷时代考个证提升自己
|
存储 JavaScript
vue项目中页面跳转传参的方法
vue项目中页面跳转传参的方法
|
机器学习/深度学习 数据采集 算法
Python实现RVM相关向量机回归模型(RVR算法)项目实战
Python实现RVM相关向量机回归模型(RVR算法)项目实战
|
编解码 开发工具 C#
Windows电脑如何启动RTSP服务实现本地摄像头数据共享
本文介绍如何利用大牛直播SDK中的轻量级RTSP服务,在Windows平台上轻松采集摄像头数据并生成本地RTSP流。通过SDK提供的SmartPublisherDemo工具,用户能简便地选择摄像头、配置分辨率与帧率,并启动RTSP服务。此外,还支持音频采集、多端口服务以及动态水印等功能。生成的RTSP URL可用于其他终端拉流播放,无需额外部署服务器。该服务适配多种应用场景,如安防监控、电子教室等,并兼容Windows 7及以上版本。对于希望集成此功能的开发者,SDK提供了C++及C#接口,并支持多种编译模式。
1125 0