200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 三种方法快速恢复误删oracle数据库

三种方法快速恢复误删oracle数据库

时间:2020-11-14 21:36:05

相关推荐

三种方法快速恢复误删oracle数据库

数据库|Oracle

oracle

数据库-Oracle

网站源码都有哪些后门,直接安装ubuntu白屏,tomcat8.0开始闪退,爬虫下电影,php制作汽车投票系统,seo标签设置lzw

推荐教学:《Oracle视频教学》

himall 2.7 完整源码,vscode前端美化插件,ubuntu 进cd,去掉tomcat启动日志,sqlite地图编辑器,陕西新远舰的爬虫出行软件,php源码免费下载,sem营销推广seo公司,免费网站程序下载,棕色纯色模板lzw

误删oracle数据库中的数据,在不考虑全库备份和利用归档日志情况,怎样快速恢复数据呢?

安卓录音工具源码,pe恢复ubuntu引导,自带的tomcat怎么用,facebook爬虫算法,cms开源 php,法库正规抖音seo优化哪家好lzw

下面介绍3种方法。

1. 利用oracle提供的闪回方法进行数据恢复,适用于delete删除方式

首先获取删除数据的时间点:

select * from v$sql where sql_text like \%table_name% ;1

根据结果中的sql_text内容,找到delete执行语句对应的删除时间点,执行下面语句查询出删除的数据。

select * from table_name as of timestamp to_timestamp(‘删除时间点’,‘yyyy-mm-dd hh24:mi:ss’)where (删除时的条件)12

检查数据无误后,执行下面操作,将数据插回原表中。注意主键不重复

insert into table_nameselect * from from table_name as of timestamp to_timestamp(‘删除时间点’,‘yyyy-mm-dd hh24:mi:ss’)where (删除时的条件)123

2. 利用oracle虚拟回收站功能

原理是因为oracle数据库在删除表时会将删除信息存放于某虚拟回收站中而非直接清空,在此种状态下数据库标记该表的数据库为可以复写,所以在该块未被重新使用前依然可以恢复数据。该方法多用于drop删除。

首先查询user_table视图,找到被删除的表:

select table_name,dropped from user_tables;select object_name,original_name,type,droptime from user_recyclebin;12

注意此时的,object_nameoriginal_name就是回收站存放的表名和原来删除的表名,如果表名没有被重新命名,可以通过下面语句进行恢复:

flashback table original_name to before drop;1

如果不知道源表名,或者需要重新命名新的表名存放数据,则可以通过回收站中的object_name进行恢复,命令如下:

flashback table object_name to before drop new_table_name;1

3. 用oracle数据库的闪回功能可以将数据库恢复到过去某一状态

注意,此时是整库恢复,具体语法如下:

SQL>alter database flashback onSQL>flashback database to scn SCNNO;SQL>flashback database to timestamp to_timestamp(‘frombyte -09-02 23:59:59’,‘yyyy-mm-dd hh24:mi:ss’);123

4. 彻底删除数据

如果确定需要删除的数据又不想无谓的占用空间,我们可以使用以下3种方式:

采用truncate方式进行截断。(不能进行数据回恢复)在drop时加上purge选项:drop table table_name purge通过删除recyclebin区域来永久性删除表 ,drop table table_name cascade constraints purge table table_name;5. 关于清空回收站

删除当前用户回收站

purge recyclebin;

删除全体用户在回收站的数据

purge dba_recyclebin;

推荐教学:《Oracle视频教学》

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。