【问题标题】:How to restore Master db in SQL Server 2008 Express?如何在 SQL Server 2008 Express 中恢复主数据库?
【发布时间】:2016-10-16 09:59:44
【问题描述】:

在调查为什么我无法从最近的备份中恢复主数据库时,能否请您帮忙?

.mdf.ldf 主文件进行物理复制(以防万一!),然后我通过使用记事本从.mdf 文件中手动删除内容来模拟磁盘损坏,从而重新创建了损坏的master 数据库.

随后,SQL Server (MSSQLSERVER) 服务将无法启动,这是我试图解决的情况。

备份Master数据库的操作:

在破坏 master 之前,使用以下命令进行了备份:

BACKUP DATABASE master 
TO DISK = 'C:\Temp\MasterBK.DAT' 
WITH FORMAT, NAME = 'Full Backup of master'

采取的恢复措施:

在单用户模式下启动 SQL Servre 服务的各种不同尝试,包括:

-mSQLCMD 
-m"SQLCMD"
sqlservr.exe -m
NET START MSSQLSERVER /m

尝试将-m 添加到 SQL Server 配置管理器的启动参数中

恢复时收到错误

-mSQLCMD 不是被识别为内部或外部命令
服务没有及时启动

版本信息:

[Windows XP]

Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86) 
Express Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)

【问题讨论】:

    标签: sql-server sql-server-2008-express


    【解决方案1】:
    1. 请确认您的备份是否正确,然后删​​除当前数据库(已损坏的数据库)。

    2. 使用其.LDF.MDF 物理文件恢复数据库:

      CREATE DATABASE DIS 
         ON (FILENAME = 'C:\DIS.mdf'), 
            (FILENAME = 'C:\DIS_1.LDF') 
         FOR ATTACH;
      

    请试一试。

    对于未运行的服务,请尝试打开 windows services 并在那里查找您的 SQL Server 服务,或者直接转到 SQL Server 配置管理器。

    要在单用户模式下运行 sql server,请查看此帖子 https://mssqlfun.com/2014/09/04/how-to-start-sql-server-in-single-user-mode/

    您的 cmd 命令可能不起作用,因为您不在此可执行文件所在的正确目录中。

    【讨论】:

    • 您好,我们无法在单用户模式下启动 (MSSQLSERVER) 服务以运行恢复 SQL 命令。我们尝试添加'-m;'进入启动参数字段。添加 -m 后启动服务会导致错误“服务未及时启动”。有什么想法吗?
    • @L.Kibbey 尝试访问时提示任何错误? stackoverflow.com/questions/10708993/… 也试试这个命令来强制服务
    【解决方案2】:

    【讨论】:

    • 这是评论,不是当前形式的答案。请避免发布仅链接的答案,也包括链接资源中的要点/重要部分。远程资源没有必要在未来保持可用。请阅读How to Answer 中的help center
    • @Pred,下次我会尽量正确回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    相关资源
    最近更新 更多