sql
server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:
1.
至少有一个误删除之前的数据库完全备份。
2.
数据库的恢复模式(recovery
mode)是“完整(full)”。
针对这两个前提条件,会有三种情况:
情况一、如果这两个前提条件都存在,通过sql语句只需三步就能恢复(参考文章),无需借助第三方工具。
a)
备份当前数据库的事务日志:backup
log
[数据库名]
to
disk=
n'备份文件名'
with
norecovery
b)
恢复一个误删除之前的完全备份:restore
database
[数据库名]
from
disk
=
n'完全备份文件名'
with
norecovery,
replace
c)
将数据库恢复至误删除之前的时间点:restore
log
[数据库]
from
disk
=
n'第一步的日志备份文件名'
with
stopat
=
n'误删除之前的时间点'
,
recovery
㈡ SQL数据库表被误删除,如何恢复
如果之前没有完全备份的话,我不知道怎么去恢复。
如果之前有完全备份的话,现在立刻备份日志文件。
backup
log
数据库名
to
disk
='备份路径+备份名'
然后还原最近一次的完全备份(删除表之前的完全备份)加上norecovery选项
restore
database
数据库名
from
disk='完全备份路径+备份名'
with
norecovery,replace
之后还原刚才备份的日志文件,加上stopat选项,假设表是在18:01分删除的,就恢复到之前的几分钟
restore
log
数据库名
from
disk='日志文件备份路径+备份名'
with
stopat='2008-3-28
17:30'
㈢ plsql怎么恢复删除的表
方法一:
1.打开Flash存储的权限
ALTER TABLE tableName ENABLE row movement ;
2.把表还原到指定时间点
flashback table tableName to timestamp to_timestamp('2018-03-16 10:40:00','yyyy-mm-dd hh24:mi:ss');
后面的参数为要还原的时间点
方法二:
利用ORacle的快照进行查找某个时间点的数据
s e l e c t * from tableName AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '100' MINUTE)
或
s e l e c t * from tableName as of timestamp to_timestamp('2018-03-16 11:40:00','YYYY-MM-DD HH24:MI:SS');
这样可以查询到指定的时间段的数据,再把查询到的数据复制到原来的表中。
方法三:
删除表后,可以采用如下操作:在 查询表user_recyclebin最近操作过的表名称,然后用闪回(只能用于10G及以上版本)。
s e l e c t * from user_recyclebin;
FLASHBACK TABLE TABLE_NAME TO BEFORE DROP;
如果是删了或修改里面的数据,可以先建立一个快表将删除修改之前状态的数据找回到这个表中:
CREATE TABLE QUICK_TABLE AS SELECT * FROM TABLE_NAME AS OF TIMESTAMP SYSTEM-1/24 (一小时前的),减去的时间可以自己定。
方法四:
SCN提供了Oracle的内部时钟机制,可被看作逻辑时钟,这对于恢复操作是至关重要的
注释:Oracle 仅根据 SCN 执行恢复。
它定义了数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的SCN 。一些人认为 SCN 是指, System Commit Number ,而通常 SCN 在提交时才变化,所以很多情况下,这两个名词经常被交替使用。
究竟是哪个词其实对我们来说并不是最重要的,重要的是我们知道 SCN 是 Oracle 内部的时钟机制, Oracle 通过 SCN 来维护数据库的一致性,并通过SCN 实施 Oracle 至关重要的恢复机制。
㈣ SQL数据库里的表误删除要怎么恢复
1、实现运行Recovery for SQL Server操作如下。
㈤ sql如何恢复数据
方法:
第一步:选择需要还原的数据库,鼠标右键,选择任务下的还原;
注意事项
1、一定要记得覆盖现有数据库;
2、执行数据库操作的时候,请断开当前数据库的任何使用(例如查询,数据库的连接使用)。
㈥ sql恢复修改前数据
1、首先运行Recovery for SQL Server。
㈦ sqlserver数据库表数据误删除了 怎么恢复
恢复sqlserver数据库表数据步骤如下:
一、心态:
1、务必冷静,事情已经发生不可慌乱。
2、立即查看当前时间,最好能够精确到秒,并做记录。
3、应立即向直接上级反映此事,不可隐瞒,防止事态扩大。
4、如果权限允许,应当立即停止相关应用,防止有新的数据写入数据库。
二、恢复:
1、构建新数据库以及写入一些数据
如果查询发现数据不是你想要的,那么可以重复上述的操作,从备份事务日志开始,然后最后选择时间点的时候在缩小范围。
㈧ sql 删除表中数据后怎么恢复
首先有两种方式可以满足你的需求:
第一:delete
from
student
该方式下数据库空间不一定能及时释放出来,而且如果有identity字段,之后再插入数据也不会从定义的初始值开始自增。
第二:truncate
table
student
该方式可以及时表空间,也能让新增数据是identity的初始值为之前建表定义的开始
㈨ 还原SQL数据库部分表
从SQL数据库备份文件,没有选表的选项。
不过可以用数据导入的方式解决,这样:新建一个数据库实例TEMPDB,之后新建一个数据库,数据库名与备份名相同,然后还原。
然后将新还原的数据库以数据导出的方式(导入/导出
方式中间有选项可以选表)覆盖你想还原的数据库。