Orcale如何使用闪回来恢复数据

分类:编程技术 时间:2024-02-20 15:52 浏览:0 评论:0
0
本文将详细讲解Orcale如何使用闪回功能来恢复数据。小编觉得很实用,所以分享给大家,作为参考。希望您读完本文后有所收获。

从9i开始,Oracle提供了闪回(FLASHBACK)功能。使用FLASHBACK TABLE语句从undo段中读取表的过去映像,并使用Oracle9i中引入的闪回查询来重建表行。 UNDO_RETENTION 给出了闪回支持的最短时间。也就是说FLASHBACK至少可以支持UNDO_RETENTION给定的时间。如果系统比较空闲,可以闪回较长时间。 (当然,如果回滚表空间的空间分配不足,当系统繁忙时,有可能将空间重新用于未达到UNDO_RETENTION时限的数据)。使用闪回的前提是表不能进行DDL操作。不仅不能DDL操作可以闪回,但DDL操作之前的数据也不能闪回。

1.删除误删除

方法一:如果表结构没有改变,直接闪回全表。具体步骤:

--首先需要将表刷回权限并启用行移动功能

alter table表名启用行移动;

- -执行闪回将表数据恢复到某个时间点

闪回表表名到时间戳to_timestamp('恢复时间点','yyyy-mm-dd hh34:mi:ss');

--关闭行移动功能

alter table表名禁用行移动;

方法二:查询删除的数据,然后执行insert

插入表名(select * from 表名截至时间戳 to_timestamp('点击恢复时间','yyyy-mm-dd hh34:mi:ss'));

2. Drop误删除

原理:Oracle在删除表的时候并不直接清空表Oracle将将这些被删除的表放入虚拟容器“回收站”中,并且只将表的数据块标记为可以被覆盖,因此在重用之前这些块不会被重用。可以恢复。

1.如果还记得删除的表名,直接闪回

flashbacktable原表名到drop之前;

2.如果不记得了,先从“回收站”中找到被删除的表,然后进行恢复:

--查询被删除的表,table_name或object_name是重命名的表的名称删除后的回收站

select table_name,dropped from user_tables;

select object_name,original_name,type,droptime from user_recyclebin;

--执行恢复

闪回表“回收站中的表名”为drop rename之前的新表名;

3.闪回整个数据库

alter database flashback on;

闪回数据库到scn SCNNO;

闪回数据库到时间戳to_timestamp('recovery time point','yyyy-mm -dd hh34:mi:ss');

这篇关于《Orcale如何使用闪回功能恢复数据》的文章就分享到这里。希望以上内容能够对大家有所帮助。在帮助下,你可以学到更多的知识。如果您觉得文章不错,请转发出去,让更多的人看到。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > Orcale如何使用闪回来恢复数据

用户评论