IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 【oracle误删除或未加where条件误更新后恢复数据】 -> 正文阅读

[大数据]【oracle误删除或未加where条件误更新后恢复数据】

将删除或误更新之前的前数据,查出并做成新表

  1. 创建测试表,并插入数据

    CREATE TABLE "TEST_RECOVER" (
    "ID" NUMBER PRIMARY KEY,
     "NAME" VARCHAR2(255 BYTE),
    "AGE" NUMBER
    );
    INSERT INTO "TEST_RECOVER" VALUES ('1', '白敬亭', '20');
    INSERT INTO "TEST_RECOVER" VALUES ('2', '宋祖儿', '18');
    INSERT INTO "TEST_RECOVER" VALUES ('3', '胡歌', '21');
    

    在这里插入图片描述

  2. 手滑执行了 UPDATE TEST_RECOVER SET AGE = 25; 造成数据全部更改了
    在这里插入图片描述

  3. 查询数据库执行sql记录

    SELECT
    	* 
    FROM
    	v$sqlarea t 
    ORDER BY
    	t.LAST_ACTIVE_TIME DESC
    	
    # 当然了,上述查询是将数据库中的所有sql记录都检索出来了,可以增加些条件减少结果集例如下边的
    SELECT
    	* 
    FROM
    	v$sqlarea t 
    where 
    	t.sql_text LIKE '%test_recover%' OR t.sql_text LIKE '%TEST_RECOVER%'
    ORDER BY
    	t.LAST_ACTIVE_TIME DESC
    	
    # 为了截图,我只查询后续需要用到的字段,其余字段不查询
    SELECT
    	T.SQL_TEXT, T.SQL_FULLTEXT, SQL_ID,FIRST_LOAD_TIME
    FROM
    	v$sqlarea t 
    where 
    	t.sql_text LIKE '%test_recover%' OR t.sql_text LIKE '%TEST_RECOVER%'
    ORDER BY
    	t.LAST_ACTIVE_TIME DESC
    

    在这里插入图片描述

SQL_TEXT、SQL_FULLTEXT:记录sql的信息
FIRST_LOAD_TIME:记录sql时间,可以用来恢复数据

  1. 根据SQL_FULLTEXT,找到FIRST_LOAD_TIME,做临时表
    create table NEW_TEST_RECOVER --新表
    as
    select * from TEST_RECOVER --原表
    as of timestamp to_timestamp('2022-08-30 11:13:03','yyyy-mm-dd hh24:mi:ss');--first_load_time 对应的具体日期
    
  2. 查询新表,数据已恢复到NEW_TEST_RECOVER,后续想怎么弄就怎么弄了
    SELECT * FROM NEW_TEST_RECOVER;
    
    在这里插入图片描述

注意:oracle闪回快照是有时间限制的,并不是所有的数据均可以闪回

直接回滚删除前或误更新前数据

  1. 更上述创建表、插入数据、查出FIRST_LOAD_TIME相同
  2. 根据FIRST_LOAD_TIME直接闪回数据,本篇直接闪回上述2022-08-30 11:13:03数据
    # 1.查出FIRST_LOAD_TIME
    SELECT
    	* 
    FROM
    	v$sqlarea t 
    where 
    	t.sql_text LIKE '%test_recover%' OR t.sql_text LIKE '%TEST_RECOVER%'
    ORDER BY
    	t.LAST_ACTIVE_TIME DESC
    # 2.开启行移动功能 alter table 表名 enable row movement;
    alter table TEST_RECOVER enable row movement;
    # 3.闪回时间点数据 lashback table TEST_RECOVER to timestamp to_timestamp('2022-08-30 11:13:03','yyyy-mm-dd hh24:mi:ss'); --2022-08-30 11:13:03为FIRST_LOAD_TIME值
    lashback table TEST_RECOVER to timestamp to_timestamp('2022-08-30 11:13:03','yyyy-mm-dd hh24:mi:ss'); 
    # 4.关闭行移动功能(千万记得关闭 ) alter table TEST_RECOVER disable row movement;
    alter table TEST_RECOVER disable row movement;
    # 5.查看数据是否恢复完成
    # 6.建议使用第一种将删除或误更新之前的前数据,查出并做成新表,因为第二种直接闪回到时间点了,误操作之后的数据在恢复后也找不到了
    
    在这里插入图片描述
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:18:22  更:2022-09-04 01:18:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/15 23:56:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码