oracle表误删恢复

update误更新表恢复:

UPDATE sysuser a SET dept=(SELECT jjxm FROM z_temp20190313 b WHERE b.sbbm=a.dept) 
WHERE useful='1' AND dept IS NOT NULL 

查询sysuser表最后dml操作时间:

select max(ora_rowscn),to_char(scn_to_timestamp(max(ora_rowscn)),'yyyy-mm-dd hh24:mi:ss') from sysuser; 

查询出误操作前dept的行的值,让客户比对是否正确:

select dept from sysuser as of timestamp to_timestamp('2019-03-13 16:04:20','YYYY-MM-DD HH24:MI:SS') where useful='1' and dept IS NOT NULL; 

创建tmp_sysuser表

create table tmp_sysuser as select * from  sysuser as of timestamp to_timestamp('2019-03-13 16:04:20','YYYY-MM-DD HH24:MI:SS'); 

rename表

alter table sysuser rename to sysuser_bak; 
alter tabel tmp_sysuser rename to sysuser; 

delete误删表中的数据恢复:通过查询表的ddl,dml操作来查询最后删除表的时间
方法1:通过flash闪回恢复误删除的数据
设置时间输出格式:

alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'; 

查询hh表dml操作最后的时间:

select max(ora_rowscn),to_char(scn_to_timestamp(max(ora_rowscn)),'yyyy-mm-dd hh24:mi:ss') from hh; MAX(ORA_ROWSCN) TO_CHAR(SCN_TO_TIMESTAMP(MAX(ORA_ROWSCN)),'YYYY-MM-DDHH24 
--------------- --------------------------------------------------------- 1760891 2018-10-26 17:11:42 

开启行迁移:

alter table hh enable row movement;   

把表还原到指定时间点:

 flashback table hh to timestamp to_timestamp('2018-10-26 17:11:42','yyyy-mm-dd hh24:mi:ss');   

关闭行移动功能:

alter table hh disable row movement;  

发现数据已恢复:

select * from hh;   

方法2:利用oracle快照进行查找某个事件节点的数据
设置时间输出格式:

alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'; 

查询hh表dml操作最后的时间:

select max(ora_rowscn),to_char(scn_to_timestamp(max(ora_rowscn)),'yyyy-mm-dd hh24:mi:ss') from hh; MAX(ORA_ROWSCN) TO_CHAR(SCN_TO_TIMESTAMP(MAX(ORA_ROWSCN)),'YYYY-MM-DDHH24 
--------------- --------------------------------------------------------- 1785209 2018-10-29 09:46:00 

查询指定时间段的数据,再把查询到的数据复制到原来的表中

select * from hh as of timestamp to_timestamp('2018-10-29 09:46:00','YYYY-MM-DD HH24:MI:SS'); 

方法3:通过scn号来恢复
设置时间输出格式:

alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'; 

查询hh表dml操作最后的时间:

select max(ora_rowscn),to_char(scn_to_timestamp(max(ora_rowscn)),'yyyy-mm-dd hh24:mi:ss') from hh; MAX(ORA_ROWSCN) TO_CHAR(SCN_TO_TIMESTAMP(MAX(ORA_ROWSCN)),'YYYY-MM-DDHH24 
--------------- --------------------------------------------------------- 1787749 2018-10-29 10:47:33 

查询这个时间点的scn号

select timestamp_to_scn(to_timestamp('2018-10-29 10:47:33','YYYY-MM-DD HH:MI:SS')) from dual; TIMESTAMP_TO_SCN(TO_TIMESTAMP('2018-10-2910:47:33','YYYY-MM-DDHH:MI:SS')) 
------------------------------------------------------------------------- 1787748 

查询出该scn号的数据,进行插入

select * from hh as of scn 1787748; 

drop误删整张表恢复:通过回收站进行恢复
如果通过drop命令重复删除,回收站都会有记录,为了避免恢复错误,可通过重命名方式恢复到新表。但如果回收站所在表空间空间不足,在有新数据进入时,回收站按照先进先清的机制,清理回收站中对象,也建议定期清理回收站对象,避免因回收站占用空间太大,影响数据库的统计分析。再个需要注意的是,表所关联的索引会随着闪回表恢复,但名字依然是回收站命名方式。
可通过以下方式为索引重命名,建议闪回表后进行统计信息收集

SQL> alter index "BIN$x6xk2qF4BvXgU3RQqMBXiA==$0" rename to t1_new_ind;

查看该用户下表的状态:

select table_name,dropped from user_tables; 
TABLE_NAME                                                                                 DROPPED 
------------------------------------------------------------------------------------------ --------- 
YY                                                                                                 NO 
TODAY                                                                                         NO 
TEST_JOB                                                                                    NO 
YANG                                                                                           NO 
SYS_TEMP_FBT                                                                          NO 

删除表today:drop table today;
批量删除回收站的表

select 'purge '||TYPE||' "'||OWNER||'".'||'"'||OBJECT_NAME||'"'||';' from DBA_RECYCLEBIN where TYPE='TABLE';

批量恢复回收站的表

select 'flashback table '||' '||'"'||ORIGINAL_NAME||'"'||' to before drop;' from  user_recyclebin where TYPE='TABLE';

查看回收站内的表,找到被删掉表

select object_name,original_name,type,droptime from user_recyclebin; 
OBJECT_NAME                    ORIGINAL_NAME                            TYPE                                                                        DROPTIME 
------------------------------ ---------------------------------------- --------------------------------------------------------------------------- --------------------------------------- 
BIN$eR1/iDlSEfHgU5GOqMBBeg==$0 HH                                       TABLE                                                                          2018-10-26:15:16:29 
BIN$eVYHzEvsCU7gU5GOqMCCaw==$0 HH                                       TABLE                                                                       2018-10-29:10:43:13 
BIN$eVYHzEvtCU7gU5GOqMCCaw==$0 HH                                       TABLE                                                                       2018-10-29:10:45:10 
BIN$eaXVO6ovCS3gU5GOqMCCVg==$0 TODAY                                    TABLE                                                                  2018-11-02:10:18:11 
BIN$ePDgD6BdC2PgU5GOqMBSKw==$0 HH                                       TABLE                                                                       2018-10-24:10:02:15 

恢复表:

flashback table today to before drop; 

或 (为了避免恢复错误,可通过重命名方式恢复到新表)

flashback table "BIN$eaXVO6owCS3gU5GOqMCCVg==$0" to before drop rename to ylr; 

查看被删除的表,已恢复成功

select * from hh; 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/811942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

以Centos7为例,监控SSD硬盘的I/O性能,分析硬盘的读写数据

监控SSD硬盘的I/O性能可以通过多种工具和命令来实现。在CentOS 7系统中,以下是一些常用的方法来监控SSD的I/O性能: 使用iostat命令: iostat是sysstat包的一部分,可以报告CPU统计信息和所有块设备的I/O统计信息。要安装sysstat包&a…

ChatGPT基础(二) ChatGPT的使用和调优

文章目录 ChatGPT的特性采用关键词进行提问给ChatGPT指定身份提升问答质量的策略1.表述方式上的优化2.用"继续"输出长内容3.营造场景4.由浅入深,提升问题质量5.预设回答框架和风格 ChatGPT的特性 1.能够联系上下文进行回答 ChatGPT回答问题是有上下文的&…

uni-app web端使用getUserMedia,摄像头拍照

<template><view><video id"video"></video></view> </template> 摄像头显示在video标签上 var opts {audio: false,video: true }navigator.mediaDevices.getUserMedia(opts).then((stream)> {video document.querySelec…

【python】在pycharm创建一个新的项目

双击打开pycharm,选择create new project 选择create,后进入项目 右键项目根目录,选择new一个新的python file 随意命名一下 输入p 然后后面就会出现智能补全提示,此时轻敲一下tab,代码就写好了,非常的方便 右键执行一下代码,下面两个直接运行和debug运行都是可以的 小结 …

CentOS 8服务器搭建L2TP服务器(over IPsec)操作指南

正文共&#xff1a;1234 字 14 图&#xff0c;预估阅读时间&#xff1a;2 分钟 之前发过把我自己的服务器搬上公网的文章&#xff08;我用100块钱把物理服务器放到了公网&#xff0c;省了几万块&#xff01;&#xff09;&#xff0c;当时L2TP拨号用的是网络上的解决方案&#x…

微服务整合Spring Cloud Gateway动态路由

前置 创建 Spring Cloud项目 参考&#xff1a;创建Spring Cloud Maven工程-CSDN博客 1. 创建一个maven jar类型项目 在idea中右键父工程-》New-》Module 创建一个maven工程 2. 引入相关依赖 在POM文件中引入下面的依赖 <project xmlns"http://maven.apache.org/P…

IntelliJ IDEA 快捷键和自定义操作详细配置指南

IntelliJ IDEA 是一款功能强大的集成开发环境(IDE),广泛应用于Java、Kotlin、Groovy 等语言的开发中。其丰富的功能和灵活的配置选项使得开发人员能够高效地进行代码编写、调试和项目管理。本文将介绍如何在 IntelliJ IDEA 中快速进行配置并充分发挥其强大功能,使您的开发环…

设计模式学习笔记 - 设计模式与范式 -行为型:14.备忘录模式:对于大对象的备份和恢复,如何优化内存和时间的消耗

概述 上两篇文章&#xff0c;我们学习了访问者模式的原理与实现、以及为什么支持双分派编程语言不需要访问者模式。 本章&#xff0c;学习另外一种行为型模式&#xff0c;备忘录模式。这个模式理解、掌握起来不难&#xff0c;代码实现比较灵活&#xff0c;应用场景也比较明确…

C++设计模式|创建型 1.单例模式

1.什么是单例模式&#xff1f; 单例模式的的核⼼思想在创建类对象的时候保证⼀个类只有⼀个实例&#xff0c;并提供⼀个全局访问点来访问这个实例。 只有⼀个实例的意思是&#xff0c;在整个应⽤程序中&#xff0c;只存在该类的⼀个实例对象&#xff0c;⽽不是创建多个相同类…

【JAVA基础篇教学】第八篇:Java中List详解说明

博主打算从0-1讲解下java基础教学&#xff0c;今天教学第八篇&#xff1a;Java中List详解说明。 在 Java 编程中&#xff0c;List 接口是一个非常常用的集合接口&#xff0c;它代表了一个有序的集合&#xff0c;可以包含重复的元素。List 接口提供了一系列操作方法&#xff0c;…

72V电瓶电压降5V1.5A恒压WT7039

72V电瓶电压降5V1.5A恒压WT7039 WT6039是一款12V至72V宽电压降压DC-DC转换器芯片&#xff0c;集成了开关控制、参考电源、误差放大器等多重功能&#xff0c;并具备过热、限流和短路保护。它能在广泛输入功率下实现2A连续输出电流&#xff0c;并通过编程调整输出电压。适用于高…

文心一言

文章目录 前言一、首页二、使用总结 前言 今天给大家带来百度的文心一言,它基于百度的文心大模型,是一种全新的生成式人工智能工具。 一、首页 首先要登录才能使用,左侧可以看到以前的聊天历史 3.5的目前免费用,但是4.0的就需要vip了 二、使用 首先在最下方文本框输入你想要搜…

ArrayList,Vector,LinkedList内存解析

1.ArrayList (1). 特点 : 实现了List接口&#xff0c;存储有序的&#xff0c;可重复的数据.底层使用Object[]数组存储.线程不安全.(底层方法未用synchronized修饰.) (2). 版本解析 : <i> : JDK7版本 ArrayList<String> list &#xff1d;new ArrayList<&…

npm问题合集以及npm常规操作整理

问题一&#xff1a;npm install 卡在“sill idealTree buildDeps“ 可以尝试将网络切换为其他网络&#xff0c;我的是这么解决的。可以尝试重新设置镜像。 问题二&#xff1a;npm install 项目依赖报WARN deprecated 原因 依赖版本问题&#xff0c;下载最新版本。 解决方案 …

做多 与 做空 概念解析

坐多&#xff1a;低买高卖 阶段一&#xff1a;借钱->低价时买货>得货 阶段二&#xff1a;高价时卖货 > 得更多的钱 阶段三&#xff1a;还钱 >余钱 多空&#xff1a;高卖低买 阶段一&#xff1a;借货->高价时卖货>得钱 阶段二&#xff1a;低价时买货 …

ElasticSearch中使用bge-large-zh-v1.5进行向量检索(一)

一、准备 系统&#xff1a;MacOS 14.3.1 ElasticSearch&#xff1a;8.13.2 Kibana&#xff1a;8.13.2 BGE是一个常见的文本转向量的模型&#xff0c;在很多大模型RAG应用中常常能见到&#xff0c;但是ElasticSearch中默认没有。BGE模型有很多版本&#xff0c;本次采用的是bg…

Lua语法(四)——协程

参考链接: 系列链接: Lua语法(一) 系列链接: Lua语法(二)——闭包/日期和时间 系列链接: Lua语法(三)——元表与元方法 系列链接: Lua语法(四)——协程 系列链接: Lua语法(五)——垃圾回收 系列链接: Lua语法(六)——面相对象编程 Lua语法 四——协程 简介正文协程coroutine.c…

vue和react通用后台管理系统权限控制方案

1. 介绍 在任何企业级应用中&#xff0c;尤其是后台管理系统&#xff0c;权限控制是一个至关重要的环节。它确保了系统资源的安全性&#xff0c;防止非法访问和操作&#xff0c;保障业务流程的正常进行。本文件将详细解析后台管理系统中的权限控制机制及其实施策略。 那么权限…

写代码的修养

看山是山&#xff0c;看水是水 此境界 对业务的思考是浅层的&#xff0c;代码写的不通用&#xff0c;扩展性差&#xff0c;表现在无设计模式 看山不是山&#xff0c;看水不是水 此境界 对业务的思考是中层的&#xff0c;代码写的通用&#xff0c;扩展性好&#xff0c;表现为…

算法思想总结:分治思想

一、颜色划分 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:void sortColors(vector<int>& nums) {//三路划分的思想int nnums.size();int left-1, rightn,cur0;while(cur<right){if(nums[cur]0) swap(nums[left],nums[cur]);else if(nums…