设为首页 收藏本站
查看: 567|回复: 0

[经验分享] oracle中drop和delete的恢复

[复制链接]

尚未签到

发表于 2016-8-10 07:14:21 | 显示全部楼层 |阅读模式
  --删除了CUST表中的记录,用下面的语句恢复
alter table cust enable row movement
flashback table cust to timestamp to_timestamp('2008-03-19
12:00:00','yyyy-mm-dd hh24:mi:ss')
  --删除了cust表,用下面的语句恢复
flashback table cust to before drop
  
闪回查询
(1).查询闪回
例如:
1)在删除员工smith记录后,希望查询到删除该行记录前的值,则可以查询emp在'2007-02-11 23:34:05'时的数据,查询方法如下:
select * from emp as of timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss') where ename='SMITH';
2)查询当前时间
alter session set nls_date_format='yyyy-mm-dd hh24:mi;ss';
select sysdate from dual;
delete from emp;
commit;
select * from emp as of timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss');
可以将闪回的数据重新插入到表中:
insert into empbak (select * from empbak as of timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss'));
(2).表闪回
表闪回要求用户必须要有flash any table权限,首先,必须对表进行下以下操作:
alter table empbak enable row movement;
执行闪回操作
flashback table emp to timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss');
注:如果表结构发生改变就没有办法闪回。
(3).删除闪回
删除闪回为删除oracle10g中的数据库实体提供了一个安全机制,当用删除一个表时,oracle10g 会将该表放到回收站中,回收站中的对象一真会保留,直到用户决定永久删除它们或出现表空间的空间不足时才会被删除。回收站是一个虚拟容器,用于存储所有被删除的对象。数据字典user_tables中的列dropped表示被删除的表.查询方法如下:
select table_name,dropped from user_tables;
也可以使用show命令显示回收站信息
sql>show recyclebin
或查询数据字典user_recyclebin获得回收站信息
SQL> select object_name,original_name,type,droptime from user_recyclebin;
例如;恢复被删除的表emp.
SQL>flashback table emp to before drop;
如果不知道原表名,可以直接使用回收站中的名称进行闪回。
SQL>flashback table "Bin$DSbdfd4rdfdfdfegdfsf==$0" to before drop;
在回收的同时可以修改表名:
SQL>flashback table "Bin$DSbdfd4rdfdfdfegdfsf==$0" to before drop rename to emp1;
真正删除某一个表,而不进入回收站,可以在删除表时增加purge选项.如将emp表彻底删除.
SQL>drop table emp purge;
也可以通过删除recyclebin区域来永久性删除表 ,原始删除表drop table emp cascade constraints
SQL>purge table emp;
删除当前用户的回收站
SQL>purge recyclebin;
删除全体用户在回收站的数据.
SQL>purge dba_recyclebin
(4).数据库闪回
使用数据库闪回功能,可以使数据库回到过去某一状态, 语法如下:
SQL>alter database flashback on
SQL>flashback database to scn 46963;
SQL>flashback database to timestamp to_timestamp('2007-2-12 12:00:00','yyyy-mm-dd hh24:mi:ss');

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-255580-1-1.html 上篇帖子: oracle 超过打开最大游标数 下篇帖子: oracle的decode()+nvl()的使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表