误删数据?如何快速恢复Oracle数据库[通俗易懂]

误删数据?如何快速恢复Oracle数据库[通俗易懂]误删oracle数据库中的数据,在不考虑全库备份和利用归档日志情况,怎样快速恢复数据呢?下面介绍3种方法。1.利用oracle提供的闪回方法进行数据恢复,适用于delete删除方式首先获取删除数据的时间点:select*fromv$sqlwheresql_textlike’%table_name%’;1根据结果中的sql_text内容,找到delete执行语句对应的删除时间点,执行下面语句查询出删除的数据。select*fromtable_nameasoftim

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

下面介绍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_name
select * 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 on
SQL>flashback database to scn SCNNO;
SQL>flashback database to timestamp to_timestamp(‘frombyte 2021-09-02 23:59:59,‘yyyy-mm-dd hh24:mi:ss’);
123

4. 彻底删除数据

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

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

5. 关于清空回收站

  1. 删除当前用户回收站

    purge recyclebin;

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

    purge dba_recyclebin;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193127.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • QListWidget 布局方向设定

    QListWidget 布局方向设定//我们看下官方文档的说明//创建一个QListWidgetQListWidget m_list //假如m_list添加了很多子项(一个子项由一个图片和一段文字组成) //如果设置为m_second_list->setViewMode(QListView::IconMode); //那么m_list子项就会从左到右横向的排列

    2022年6月5日
    134
  • 自己搭建个人文件服务器_内网设置微信代理

    自己搭建个人文件服务器_内网设置微信代理背景:因为微信公众平台支持的后台服务器只允许为80端口,而本地服务器开发程序与在VPS上部署程序运行,每次无论是使用scp还是ftp进行文件传输无疑是低效的,因此需要一种方法可以方便的在本地服务器调试微信公众平台。有的使用,ngrok,此方法是通过ssh反向代理达到目的。1.在本地服务器通过命令:ssh–fNR8181:localhost:80user@host.com–p22–g达到…

    2022年8月21日
    6
  • 一步步学习SPD2010–第二章节–处理SP网站(6)—- 探索SP网站「建议收藏」

    一步步学习SPD2010–第二章节–处理SP网站(6)—- 探索SP网站「建议收藏」SP技术没有一个界面;你可以通过使用Web浏览器或者兼容程序如Office应用程序,包括SPD。你可以选择适合你必须完成的任务的接口。然而,根据你选择的程序,你可能有SP网站的不同视图。如果你使用MSWord,你只看到了网站和内容的一小部分。如果你使用浏览器,你看到支持SP协同本质的列表和库,以及它们的内容。当你使用SPD时—-此产品理解最多SP基础—-你可以看到…

    2022年6月15日
    20
  • 微信API接口_微信下载

    微信API接口_微信下载整理一下微信API文档,以备未来开发,本文API内容为常用的微信开发API整理,内容有待完善……packagecn.vision.weixindemo.utils.base.API;publicclassWeiXin_API{//授权类/***获取授权Token*https请求方式:GET*字段…

    2022年10月2日
    0
  • pycharm整理代码格式_pycharm代码格式

    pycharm整理代码格式_pycharm代码格式black简介自动的代码格式化工具,兼容pep8,项目地址为:官方给出的简介:BlackistheuncompromisingPythoncodeformatter.Byusingit,youagreetocedecontroloverminutiaeofhand-formatting.Inreturn,Blackgivesyouspeed,determinism,andfreedomfrompycodestylenaggingabo

    2022年8月25日
    4
  • C++之tellg和seekg

    C++之tellg和seekglong pos = file.tellg(); // 得到文件指针当前指向的文件位置。file.seekg(0,ios::beg); //让文件指针定位到文件开头file.seekg(0,ios::end); //让文件指针定位到文件末尾file.seekg(10,ios::cur); //让文件指针从当前位置向文件末方向移动10个字节file.seekg

    2022年6月4日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号