• sql server 还原数据库,数据库提示正在还原中的处理办法


     

    还原数据库时,提示还原成功,可是数据库列表中该数据库显示正在还原中:

    执行此命令即可:

    RESTORE DATABASE EnterPriseBuilding WITH RECOVERY

    了解SQLServer脚本之数据库误删数据找回:http://www.cnblogs.com/Leo_wl/p/3614804.html

    1. 至少有一个误删除之前的数据库完全备份。

    2. 数据库的恢复模式(Recovery mode)是“完整(Full)”。

    一、还原需要的条件设置

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

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

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

    二、还原命令

    还原主要分为四步走:

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

    BACKUP LOG AdventureWorks TO DISK = 'C:SQLServerBackupsAdventureWorks_transcationlog.bak' 
       WITH NORECOVERY;

    2、从完整备份还原数据

    RESTORE  DATABASE [QASupervision] FROM DISK='M:DatabaseOAAdventureWorks_Fullbackup_2014_03_18_010002_0155764.bak' 
    WITH  NORECOVERY, REPLACE 

    3、从差异备份还原数据

    RESTORE DATABASE [QASupervision] FROM DISK='M:DatabaseOAAdventureWorks_diffbackup_2014_03_18_020002_0155764.bak' WITH NORECOVERY, REPLACE 

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

    DECLARE @dt datetime   
    SELECT @dt=DATEADD(HOUR,-16,GETDATE())   
    select @dt
    RESTORE LOG [QASupervision] FROM DISK='C:SQLServerBackupsAdventureWorks_transcationlog.bak'  WITH  STOPAT=@dt,RECOVERY

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

    RESTORE DATABASE AdventureWorks WITH RECOVERY

    此随笔或为自己所写、或为转载于网络。仅用于个人收集及备忘。

  • 相关阅读:
    ThinkPhp3.2.3缓存漏洞复现以及修复建议
    thinkphp3.2.3 缓存导致getshell终极解决办法
    phpstudy后门漏洞复现php5.2
    phpStudy后门漏洞利用复现
    SQL语句利用日志写shell拿权限
    针对phpstudy默认设置的利用
    黑暗世界的搜索引擎
    CVE-2019-0708—微软RDP远程桌面代码执行漏洞复现
    记一次渗透某XX站
    通过USB 2.0电缆手动设置内核模式调试
  • 原文地址:https://www.cnblogs.com/firstdream/p/7279429.html
Copyright © 2020-2023  润新知