sql server误删了数据库怎么找回

sql server误删了数据库怎么找回,第1张

你好:

一、还原需要的条件设置

使用命令,是通过sqlserver的事务日志以及一个误删除前的数据的完整备份进行还原,所以在sqlserver2012的维护计划向导中,要建立完整备份,差异备份和事务日志,具体如下

以及在数据库属性,选项设置中,设置为完整备份,具体如下图

做好如上两个设置,数据库误删后找回数据就会非常轻松,现在说一下如何还原sqlserver数据到故障点。

二、还原命令

还原主要分为四步走:

1、出现故障后,首先执行备份事务日志命令,这里以AdventureWorks作为数据库名。命令如下:

BACKUP LOG AdventureWorks TO DISK = 'C:\SQLServerBackups\AdventureWorks_transcationlogbak'

WITH NORECOVERY;

2、从完整备份还原数据

RESTORE  DATABASE [QASupervision] FROM DISK='M:\Database\OA\AdventureWorks_Fullbackup_2014_03_18_010002_0155764bak'

WITH  NORECOVERY, REPLACE

3、从差异备份还原数据

RESTORE DATABASE [QASupervision] FROM DISK='M:\Database\OA\AdventureWorks_diffbackup_2014_03_18_020002_0155764bak' WITH NORECOVERY, REPLACE

4、从事务日志还原数据,还原到某个时间点之前

DECLARE @dt datetime

SELECT @dt=DATEADD(HOUR,-16,GETDATE())

select @dt

RESTORE LOG [QASupervision] FROM DISK='C:\SQLServerBackups\AdventureWorks_transcationlogbak'  WITH  STOPAT=@dt,RECOVERY

5、还原数据库,如果数据库提示正在还原中,则执行此命令即可。

RESTORE DATABASE AdventureWorks WITH RECOVERY

数据库数据恢复步骤

1、通过日志恢复SQLSERVER2005数据(也可通过LogExplorer工具查找进行恢复数据)

(A)通过日志和时间点来恢复数据的前提条件:数据库的故障恢复改为非简单模式,去掉自动关闭和自动收缩两个选项,如果是简单模式:类似下面的语句 *** 作数据就不会记录到日志中:selectintotfrom[表名]采用LogExplorer工具可以在线 *** 作,通过恢复日志(指定时间点恢复)来恢复数据,必须停止数据库或者再另一个数据库恢复(前提是必须有一个完全备份和日志备份)

这时为保证数据的完整要将数据库的恢复模式改成“完整

11、这时对数据库事务日志做备份(注意,如果没做个数据库完整备份,是不能做事务日志备份的)

这时新建一个数据库zp(将以前的数据库改名),恢复数据库

这时我们看到,有两个还原的数据库备份,因为我对zp数据库备份了两次,两次的备份的数据文件都一样。这里我们选择最近时间的备份默认在数据库的设置如下:是追加到备份集里,所以会有两个备份。

同时,在”选项“里设置”不回滚“事务,

注意:通过事务日志还原数据库,必须选择"不回滚"事务

确定后:出现下面情况:

这时发现,数据库一直是”正在还原“,这时还原数据库事务日志,

12、“常规”里选择时间,(刚删除的时间)

13、“选项”里将恢复状态设置为”回滚未提交“事务

确定后,查询数据库,发现数据回来了

2、无日志的数据恢复

21新建一个同名的数据库

22再停掉sqlserver(注意不要分离数据库)

23用原数据库的数据文件覆盖掉这个新建的数据库

24再重启sqlserver

25此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)

26完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用

数据库的脚本创建一个新的数据库,并将数据导进去就行了

USEMASTER

SP_CONFIGURE'ALLOWUPDATES',1RECONFIGUREWITHOVERRIDE

UPDATESYSDATABASESSETSTATUS=32768WHERENAME='数据库名'

sp_dboption'数据库名','singleuser','true'

DBCCCHECKDB('数据库名')

updatesysdatabasessetstatus=28wherename='数据库名'

sp_configure'allowupdates',0reconfigurewithoverride

sp_dboption'数据库名','singleuser','false'

以上就是关于sql server误删了数据库怎么找回全部的内容,包括:sql server误删了数据库怎么找回、sql2005备份数据库怎么恢复、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9363576.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存