如果系统数据库丢失/丢失,SQL Server 是否会重新创建系统数据库?

Evi*_*lDr 4 sql-server restore sql-server-2012 system-databases

我们有一个每 24 小时运行一次的第三方服务器备份工具,它备份所有内容(文件和数据库,为裸机恢复做准备)。经过大量调查,发现该工具使用了非copy_only备份,从而破坏了系统数据库和我们自己的日志链。

(我一直在研究是否应该备份系统数据库,由于他们持有的关于 SQL Server 一般的数据(例如用户、代理作业等),共识通常是肯定的。这不是关于他们的内容,但如果由于我描述的情况而在恢复后丢失会发生什么)。

为了阻止这种犯罪,我禁用了执行数据库备份的工具,所以现在它只执行文件备份(MDF/LDF 文件除外)。然后我安排 SQL 代理每小时运行一次备份,然后将它们发送到我的私有云。

如果服务器完全故障,并且需要裸机备份,我希望在 SQL 开始备份时数据库不会在那里,因为它们没有被工具备份/恢复(尽管我安全地拥有它们备份)。

此时实际发生了什么?SQL Server 是否会重新创建系统数据库,然后我可以将其还原?或者,它是否只是拒绝启动而我会遇到麻烦?

Joh*_* N. 6

回答最初的问题

不。

提供解决方案

还原系统数据库的过程在以下 Microsoft 文章中进行了说明:

参考:重建系统数据库(SQL Server 2012)

先决条件

  1. 确保您有旧系统的清晰文档:
    • SQL Server 实例配置
    • 服务包和修补程序
    • 数据库文件的当前位置

还原步骤

  1. 重建系统数据库:

    • 插入 SQL Server 2012 安装介质
    • 使用以下命令执行重建:
      安装程序 /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts [ /SAPWD= StrongPassword ] [ /SQLCOLLATION=Collat​​ionName]
      将相关信息替换为您的实例的值。
  2. 通过查阅安装摘要文件验证安装是否成功:

    C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Logs
    
    Run Code Online (Sandbox Code Playgroud)
  3. 恢复系统数据库的最新备份:master, msdb, ( model):

    • 还原master数据库时,请使用-m参数从 DOS 提示符启动 SQL Server 实例。
      参考:还原主数据库(Transact-SQL)了解更多详情
    • 还原msdb数据库时,使用 Trace Flag 3608 启动 SQL Server 实例:

      防止 SQL Server 自动启动和恢复除 master 数据库之外的任何数据库。数据库将在访问时启动和恢复。某些功能(例如快照隔离和读取提交的快照)可能不起作用。用于移动系统数据库和移动用户数据库。请勿在正常操作期间使用。

      参考:跟踪标志 (Transact-SQL)

  4. 重建ressource数据库:

    • 从安装媒体启动 SQL Server 2012 安装程序
    • 点击维护,然后修复
    • 选择您的实例
    • 准备修复摘要页面上单击修复
  5. 恢复您的用户数据库

请阅读

重要通知
如果您从未执行过还原,您将永远不会知道您的备份(过程)是否有效。测试并再次测试。