你好:
一、还原需要的条件设置
使用命令,是通过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完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了
USEMASTERSP_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备份数据库怎么恢复、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)