程序员子龙(Java面试 + Java学习) 程序员子龙(Java面试 + Java学习)
首页
学习指南
工具
开源项目
技术书籍

程序员子龙

Java 开发从业者
首页
学习指南
工具
开源项目
技术书籍
  • 基础

  • JVM

  • Spring

  • 并发编程

  • Mybatis

  • 网络编程

  • 数据库

    • MySQL

    • Oracle

      • 数据库的介绍
      • ORACLE体系结构逻辑结构-表空间、段、区和数据块
      • Oracle调优之看懂Oracle执行计划
      • windows10安装oracle 11g(文末附安装包)——202431亲测有效
      • oracle误操作(update)数据后怎么恢复到之前--超详细
        • dba登录
        • 查询执行更新操作的时间
        • 创建新表
        • 恢复数据
        • 总结
      • oracle数据库密码过期-----修改密码、设置密码永久有效
    • iotdb

    • Mongodb

  • 缓存

  • 设计模式

  • 分布式

  • 高并发

  • SpringBoot

  • SpringCloudAlibaba

  • Nginx

  • 面试

  • 生产问题

  • 系统设计

  • 消息中间件

  • Java
  • 数据库
  • Oracle
程序员子龙
2024-05-14
目录

oracle误操作(update)数据后怎么恢复到之前--超详细

操作数据库,经常会出现误操作,昨天执行的更新操作之后发现更新错了,只能想办法数据恢复了,现在整理一下文档。

# dba登录

SYS用户是Oracle中权限最高的用户,而SYSTEM是一个用于数据库管理的用户。在数据库安装完之后,应立即修改SYS,SYSTEM这两个用户的密码,以保证数据库的安全。

如果忘记sys密码,通过下面方式修改密码。

cmd命令行下输入 sqlplus / as sysdba;

alter user sys identified by xxxxx
1

# 查询执行更新操作的时间

select r.FIRST_LOAD_TIME,r.* from v$sqlarea r where r.SQL_TEXT like '%xxxxx%' order by r.FIRST_LOAD_TIME desc;
1

执行上面那条SQL语句,在下图的SQL_TEXT字段找到你执行更新操作的那条更新语句,找到更新操作时间

条件是误操作的SQL语句。

# 创建新表

把数据恢复到新建的表里

create table t_table_bak --新表
as
select * from table1--你操作的那张表 
as 
of timestamp to_timestamp('2020-08-25/11:20:09','yyyy-mm-dd hh24:mi:ss'); --执行更新操操作的时间
1
2
3
4
5

# 恢复数据

delete  table1;--将原表的数据全部删除
insert into table1 select * from t_table_bak;--恢复数据
1
2

这步操作一定要慎重。

# 总结

在生产环境中操作sql一定要慎重,更新或者删除语句,一定要看SQL中有没有where条件,减少不必要的麻烦。

上次更新: 2024/06/14, 13:58:29
windows10安装oracle 11g(文末附安装包)——202431亲测有效
oracle数据库密码过期-----修改密码、设置密码永久有效

← windows10安装oracle 11g(文末附安装包)——202431亲测有效 oracle数据库密码过期-----修改密码、设置密码永久有效→

最近更新
01
一个注解,优雅的实现接口幂等性
11-17
02
MySQL事务(超详细!!!)
10-14
03
阿里二面:Kafka中如何保证消息的顺序性?这周被问到两次了
10-09
更多文章>
Theme by Vdoing | Copyright © 2024-2024

    辽ICP备2023001503号-2

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式