Oracle update 执行更新操作后的数据恢复

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

第一步:查询执行更新操作的时间

select r.FIRST_LOAD_TIME,r.* from v$sqlarea r order by r.FIRST_LOAD_TIME desc ;

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

第二步:创建一张新表,把数据恢复到新创建的表里

create table t_table_recove --新表
as
select * from table1--你操作的那张表
as
of timestamp to_timestamp(‘2016-08-25/11:20:09‘,‘yyyy-mm-dd hh24:mi:ss‘); --执行更新操操作的时间

第三步:恢复数据(table1是你执行更新操作的那张表 )

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

第四步:查询一下,你更新的数据又还原了

select * from table1
时间: 2024-10-26 15:16:25

Oracle update 执行更新操作后的数据恢复的相关文章

当redis执行flush操作后的补救措施

redis误操作flushall的补救措施前提:开启了aof持久化注意: 当执行了flushall或者flushdb等手残命令,切记千万不要触发aof重写 可以利用config set命令将如下两值调巨大,防止重写操作.auto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mb 手残操作:由于我这个远远没有达到aof重写,所以没有设置那两个参数 然后打开aof文件发现其实就是多了3行记录这时候把红框中的三行删掉并保存退出 保险起见,

MySQL误操作后的数据恢复

一.开启binlog. 首先查看binlog是否开启 mysql> show variables like "log_bin"; +---------------+-------+ |Variable_name | Value  +---------------+-------+ | log_bin     OFF    +---------------+-------+ 1 row in set (0.00 sec) 值为OFF,需开启,开启binlog方式如下: #vim /

SQLSERVER中跨库执行更新操作

declare @DeptName varchar(50), @LoadCount float, @TransCount float, @HisLoad float, @HisTrans float, @Status varchar(50), @PushDate datetime, @EditDate datetime declare @date datetime set @date=convert(datetime,convert(varchar,GETDATE()-2,23)) UPDATE

TableView的动态更新操作(无需重新加载数据源)

项目中我们经常会用到TableView展示一个Cell,Cell的数据来源于我们自定义的一个Model类,那么对于TableView我们有以下几种场景. 1. 添加操作: 在该列表页面顶部有一个按钮叫做新建,点击后进入一个新的添加页面,添加完成之后,返回到列表页更新数据. 2. 更新操作:点击列表中cell进入编辑页面,编辑页面其实就是这个Model类中属性的一个展示,对其中某些属性进行更改后,返回到列表页更新数据. 3. 删除操作:点击列表中cell进入编辑页面,该页面有个删除按钮,点击删除按

Git 更新操作

修改现有函数 Tom 执行克隆操作后,看到新的文件string.c,他想知道这个文件到存储库?目的是什么?于是,他执行 git 日志命令. [[email protected] ~]$ git clone [email protected]:project.git 上面的命令会产生以下结果. Initialized empty Git repository in /home/tom/project/.git/ remote: Counting objects: 6, done. remote:

[转]Oracle DB 执行表空间时间点恢复

• 列出在执行表空间时间点恢复(TSPITR) 时会发生的操作 • 阐释TSPITR 使用的术语的定义 • 确定适合将TSPITR 用作解决方案的情况 • 确定时间点恢复的正确目标时间 • 确定不能使用TSPITR 的情况以及解决方法 • 执行自动TSPITR 表空间时间点恢复(TSPITR):概念 • 通过执行TSPITR 可将一个或多个表空间快速恢复到以前的某个时间. • 执行TSPITR 不会影响数据库中其它表空间或对象的状态. 使用RMAN 自动表空间时间点恢复(TSPITR) 可将Or

思考线上如何既保证不影响查询,又能做更新操作

目前遇到的情况有: 一.数据库进行在线ddl(修改表结构和字段) 也是使用重名表名的方式.复制一张表,包括里面的数据,假设名称为tmp.在这张tmp表上面执行dll语句操作.此时要记录某个时刻开始对数据库的更新操作sql,缓存起来. 执行dll操作完毕.就把之前缓存起的sql放到这个tmp表中执行一遍. 二.sphinx重建索引.此时要不能关掉shpinx,要保证能够进行正常的查询服务 使用的是重名名的方式.把最新的索引结果保存在一个.new这样的文件中.原来的所以文件假设是master,那么现

批处理程序:自动上传FTP,再登陆linux服务器执行更新

----转载请注明出处:博客园-邦邦酱好 最近在学批处理程序,一直没找到能够结合工作来使用它的地方,前几天测试服务端的时候突然想到可以这样做: 写一个批处理程序,自动通过FTP上传软件包到指定的地方,然后自动登录Linux服务器,解压缩软件包,进行服务端的更新. 先看一下总的调度脚本Auto_Update.bat: 先让用户输入服务器的地址,再选择要执行的操作. @echo off&setlocal enabledelayedexpansion :::::::::::::::::::::::::

对oracle数据库进行增删改更新操作,executeUpdate()执行卡住了

原因是:oracle数据库更新数据后需要commit,不然会堵塞,就会卡住 那么每次调用executeUpdate()完后,数据库要自动commit才可以. 我的基类加了一下,注意红色字体部分代码: //增删改 public int executeUpdate(String sql,Object[] params){ int update = 0; try { pstm = connection.prepareStatement(sql); for(int i=0;i<params.length