sqlserver数据库delete删除后怎么恢复

如题所述

一、如果是刚刚删除,那么有两方法:
首先用show parameter undo;命令查看当时的数据库参数undo_retention设置。
显示如下:
undo_management string AUTO
undo_retention integer 10800
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS1
undo_retention(保持力),10800单位是秒。即3个小时。
修改默认的undo_retention参数设置:
ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH;

方法1,通过oracle提供的回闪功能:
exec dbms_flashback.enable_at_time(to_date('2007-07-23 10:21:00','yyyy-mm-dd hh24:mi:ss'));

set serveroutput on
DECLARE r_temp hr.job_history%ROWTYPE;
CURSOR c_temp IS SELECT * FROM hr.job_history;
BEGIN
OPEN c_temp;
dbms_flashback.disable;
LOOP
FETCH c_temp INTO r_temp;
EXIT WHEN c_temp%NOTFOUND;
insert into hr.job_history(EMPLOYEE_ID,JOB_ID,START_DATE,END_DATE) values (r_temp.EMPLOYEE_ID,r_temp.JOB_ID,r_temp.START_DATE,r_temp.END_DATE);
commit;
END LOOP;
CLOSE c_temp;
END;

方法2,insert into hr.job_history
select * from hr.job_history as of timestamp to_timestamp('2007-07-23 10:20:00', 'yyyy-mm-dd hh24:mi:ss');
这种方法简单,容易掌握,功能和上面的一样时间为你误操作之前的时间,最好是离误操作比较近的,因为oracle保存在回滚保持段里的数据时间有一定的时间限制由undo_retention 这个参数值决定。

二、如果是删除一段时间了,但你有比较新的数据库备份,就通过备份来恢复。新建一个库,把备份还原上去,导出表数据,再导入到现在用的库中去。

三、如果删除一段时间了,并且无备份,但是数据在写入表的时候同时会写入其它一些关联表的话,那么就尝试通过写SQL语句从其它表取数据出来insert到被删除的表中。
温馨提示:内容为网友见解,仅供参考
无其他回答

sqlserver 执行了delete 语句后怎么恢复这部delete操作
sqlserver 执行了delete 语句后怎么恢复这部delete操作 1. 如果没有提交,可以撤回 2. 如果已经提交,则看是否有备份 3. 如果有备份,那么恢复数据库到另外的地方,然后此表恢复 4. 如果没有备份,那么没有办法的。使用log explorer等软件也不可以 另外如何清除增删改查的日志 ...

sql server 删除数据错误能还原吗
确保数据库的恢复模式最起码不能为【简单】。如果不是完整模式,请改为完整模式,改之前如数据被删,无法恢复。(对于重要生产数据库环境,强烈建议使用【完整恢复模式】,虽然对于另外两种(大容量日志(BULK_LOGGED)、简单(SIMPLE))来说,完整恢复模式产生的日志会大,但是在出现问题的时候,就会觉得...

sql数据库删除了怎么恢复数据
server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:1.至少有一个误删除之前的数据库完全备份。2.数据库的恢复模式(recovery mode)是“完整(full)”。针对这两个前提条件,会有三种情况:情况一、如果这两个前提条件都存在,通过sql语句只需三步就能...

mssql错删数据如何回滚sql误删除数据回滚
选择要分离的数据库,并首先分离它。删除相应的日志文件。数据库-所有任务-附加数据库-在附加数据库的弹出框中选择mdf。选择“是”完成创建新的数据库日志文件。它对数据库操作没有影响。以上两种方法生成的日志文件只有504kb。mysql有自带回滚功能吗?你指的是事务回滚吗,mysql的innodb和ndb引擎支持事务...

sql server 2008删除目录后怎么恢复
1打开SQL Server Management Studio,连接到相关的数据库服务器 2右键单击msdb数据库,单击“属性”打开数据库属性窗口,单击“选项”,在右边的“状态”\/“限制访问”指定“SINGLE_USER”,然后单击“确定”即以单用户模式启动,此时msdb显示为“msdb(单个用户)” 3(同恢复普通数据库一样...) 4恢复完毕后,别忘了将...

我把SQL2000数据库的表里的数据清除了,还能恢复呢?收到请回答 很急,如...
删除后数据库都会有日志的,分析下数据库日志看看还能恢复不,推荐一个软件Log Explorer 据说这个可以,Log Explorer主要用于对MSSQLServer的事物分析和数据恢复。你可以浏览日志、导出数据、恢复被修改或者删除的数据(包括执行过update,delete,drop和truncate语句的表格)。一旦由于系统故障或者人为因素导致数据...

SQLServer删除表及删除表中数据的方法
1、delete可以删除表中的一条或多条数据,也可以删除全部数据;而truncate只能将表中的全部数据删除。2、delete删除表数据后,标识字段不能复用。也就是说如果你把id=10(假如id是标识字段)的那行数据删除了,你也不可能再插入一条数据让id=10.3、truncate删除表数据后,标识重新恢复初始状态。默认为...

如何删除sql server 2008 表的数据
2008management studio,用相关账号登录,找到你所要清空数据的表所在的数据库,然后选中数据库右键选择新建查询,进入查询界面窗口,选择输入以下sql语句就可以了。如果没有其他表的外键关联这个表的主键,可以用下面的语句(效率比较高)truncate table tablename 如果有的话,就用 delete from tablename ...

请问一下,我把SQLSERVER2000中和一张表删除了,为什么数据库的大小没有...
为从根本上解决这样的问题,你可以按下面的操作配置SQLSERVER 2000:a.如果不需要恢复到指定的时间点,你可以将数据库的恢复模式配置为简单,这样 UPDATE,DELETE,SELECT就不会记录日志,日志就不会增加的很大:USE MASTER GO ALTER DATABASE DB_NAME SET RECOVERY SIMPLE b.如果你的恢复模式是全部,你一定要...

如何恢复sqlserver2005 delete from 数据
if(int zimu >= 'a' && zimu <= 'z' || zimu >= 'A' && zimu <= 'Z')^ Wb1.java:41: ')' expected return zimu, shuzi, kongge, fuhao;^ Wb1.java:6: incompatible types found : int required: java.lang.String String w = Integer.parseInt(JOptionPane.showInputDialog...

相似回答