iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >教你恢复SQLSERVER的master系统库的方法
  • 328
分享到

教你恢复SQLSERVER的master系统库的方法

2024-04-02 19:04:59 328人浏览 八月长安
摘要

目录一、问题描述二、解决方案2.1 什么时候必须恢复 SQL Server 主数据库?2.2 恢复sqlSERVER的master库的两种方法2.2.1 方法一:SQLSERVER实例能正常启动2.2.2 方法二:SQL

一、问题描述

SQL Server 的master数据库不能像其他用户或 系统数据库一样恢复, 因为没有活动的master数据库 SQL Server 无法执行。虽然很少需要恢复 SQL Server master数据库,但如果需要,DBA 必须为这种情况做好准备。本文介绍可能需要恢复master数据库的情况以及如何正确完成这些步骤。

二、解决方案

2.1 什么时候必须恢复 SQL Server 主数据库?

情景一:

master库损坏,如果master库被损坏,最好的做法通常是从备份中恢复。master中的数据是相对静态的,因此在大多数情况 下,丢失几个小时的历史记录也没有什么问题。

情景二:

恢复master的其他原因可能是恢复丢失的登录名且由于某种原因无法重置密码。如果需要恢复master库以恢复用户数据或对象,那么这将是一个将他们移出master库并移入用户数据库的机会。

2.2 恢复SQLSERVER的master库的两种方法

有 2 种可用的方法来恢复主数据库。第一个只能用于恢复正在运行的 SQL Server 上的主数据库。如果问题是主数据库损坏并且此损坏导致 SQL Server 无法启动,则必须使用第二种方法。如果 SQL Server 正在运行,则可以选择使用第二种方法。

前提条件:

恢复最基本的前提是有master备份副本。如果没有,首先让我们备份master库

backup database master to disk = 'c:\master.bak' with compression;

2.2.1 方法一:SQLSERVER实例能正常启动

1、将 SQL Server 实例置于单用户模式

使用传统的数据库还原命令,需要将服务器启动到单用户模式,否则将会有如下错误

Msg 3108, Level 16, State 1, Line 2
要恢复主数据库,服务器必须在单用户模式下运行。有关以单用户模式启动的信息,请参阅联机丛书中的“如何:启动 SQL Server 实例 (sqlservr.exe)”。
消息 3013,级别 16,状态 1,第 2 行
RESTORE DATABASE 异常终止。

要在单用户模式下启动 SQL Server,我们使用“SQL Server 配置管理器”添加相应的启动参数-m 。

为此,请打开“SQL Server 配置管理器”,选择“SQL Server 服务”,然后选择相应的 SQL Server 实例,右键单击它并选择“启动参数”。作为启动参数,我们指定“-m”,表示服务将以单用户模式启动。

教你恢复SQLSERVER的master系统库的方法

单击“添加”,然后单击“应用”,将出现以下消息。

教你恢复SQLSERVER的master系统库的方法

修改服务参数,需要重启SQL SERVER服务才能生效。

教你恢复SQLSERVER的master系统库的方法

2、在单用户模式下使用 SSMS 还原master数据库

为避免多个连接,我们将打开“SQL Server Management Studio”,但不连接到服务器。换句话说,我们将关闭“连接到服务器”窗口,同时关闭“对象资源管理器”。然后我们将点击“新建查询”。

教你恢复SQLSERVER的master系统库的方法

在这个新的查询窗口中,我们将连接到数据库。

教你恢复SQLSERVER的master系统库的方法

此时连接成功。这意味着我们设法避免了与服务器的多个连接,并为我们的查询窗口保留了单个连接。

现在,我们可以在查询窗口中执行我们的 T-SQL 恢复命令并恢复主数据库。

教你恢复SQLSERVER的master系统库的方法

只有在没有其他连接到服务器的情况下,才能以单用户模式连接到 SQL Server。因此,确保所有可以连接到 SQL Server 的服务(例如 SQL Server 代理)都已停止。此外,在从 SSMS 连接的情况下,必须消除来自 SSMS 的所有其他连接。关闭“对象资源管理器”并通过仅打开一个查询窗口进行连接可能是一种解决方案。在此之后,您可以删除启动参数并以多用户模式重新启动 SQL Server。

2.2.2 方法二:SQLSERVER实例无法启动

如果服务无法启动,如何执行恢复命令?

这是一个棘手的问题。小编也不希望任何读者都能体验到这一点,但如果确实发生了,这些是完成恢复所要遵循的步骤。

Step1

查找与 SQL Server 相同主要版本的另一个 SQL Server 实例。如果没有其他可用的,则可能需要快速安装 SQLSERVER实例。

Step2

将主数据库备份还原到运行正常的 SQL Server 实例,就像它是普通用户数据库一样。需要使用备用名称,例如 master_recovery。

restore database master_recovery from disk = 'c:\master.bak' with
move 'master' to 'C:\Program Files\Microsoft SQL Server\mssql13.MSSQLSERVER\MSSQL\DATA\master_recovery.mdf',
move 'mastlog' to 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\mastlog_recovery.ldf';

step3

现在数据库已在线,步骤 3 是将该数据库与工作实例分离。

USE [master] 
Go 
EXEC master.dbo.sp_detach_db @dbname = N'master_recovery' 
GO

step4

此时 2 个数据库文件不再附加到 SQL Server 的工作实例。第 4 步是将 2 个文件移动到有 master 问题的实例的服务器。

step5

接下来,对于第 5 步,必须告知遇到问题的 SQL Server 实例使用这些新文件,而不是失败的文件。这可以通过更改 SQL Server 的启动参数,以指向这些新文件或将 master.mdf 和 mastlog.ldf 重命名为新名称并重命名 _recovery文件以匹配默认文件名来完成。无论哪种方式,下一次服务启动都将使用新文件而不是坏文件。

下面的演示,是通过修改启动参数指向_recovery 文件而不是默认文件。接着重新启动服务(因为它正在运行)。现在该服务正在使用恢复的主数据库而不是失败的主数据库。

教你恢复SQLSERVER的master系统库的方法

最后一步是 在这个 master 副本上运行 DBCC CHECKDB 。如果显示有损坏,请及时返回,直到找到正确的副本。CheckDB 不能在较早的步骤中运行,因为主数据库在作为用户数据库检查时会产生误报。

三、还原 SQL Server master数据库时会丢失哪些数据?

刚刚通过恢复较旧的主数据库或从另一个实例获取副本来及时回溯,在此转换中可能会丢失哪些数据?

  • 主数据库中的大多数数据都是静态的,但是几天后回溯,还是有一些事情需要检查。

  • 在备份和还原之间是否添加或删除了任何登录名?这些将需要重新创建或删除。

  • 是否有人在该窗口期间更改了密码?如果是这样,他们的旧密码将重新生效。

是否更改了任何服务器角色分配?这些将被还原。

如果在时间窗口内添加了任何数据库,则旧master数据库将无法识别它们。数据库文件本身不会被删除,因此只需附加数据库即可。如果在该窗口期间删除了任何数据库,那么它们将显示为可以再次删除的可疑数据库。任何像sp_configure中更改的设置都 将恢复。

到此这篇关于恢复SQLSERVER的master系统库的文章就介绍到这了,更多相关SQLSERVER的master系统库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: 教你恢复SQLSERVER的master系统库的方法

本文链接: https://www.lsjlt.com/news/34147.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 教你win7系统恢复出厂设置的方法
    win7系统使用的时间久后难免会出现些系统问题,如果无法修复的情况下,我们可以尝试通过win7恢复出厂设置的方法解决。接下来,小编将向大家介绍一下win7系统恢复出厂设置的步骤。首先,严格来说,win7系统是没有恢复到出厂设置的。但是之前如...
    99+
    2023-07-17
  • SQLServer数据库误操作恢复的方法
    目录前言一、恢复数据实例1.创建初始数据2.保证数据恢复的前提条件3.模拟不小心误操作4.开始恢复二、恢复数据原理1.数据库文件类型2.使用bak恢复数据原理总结参考前言 在日常开发...
    99+
    2023-01-30
    SQLServer数据库恢复 SQLServer 恢复
  • sqlserver数据库恢复的方法是什么
    SQL Server数据库的恢复方法通常有以下几种: 使用备份文件恢复:可以利用SQL Server Management St...
    99+
    2024-04-09
    sqlserver
  • SqlServer备份和恢复的方法
    本篇内容介绍了“SqlServer备份和恢复的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SqlSe...
    99+
    2024-04-02
  • 教你win7系统怎么恢复出厂设置
    win7系统是微软经典的操作系统,使用的时间久了难免会出现各种各样的问题,有时候需要通过恢复出厂设置的方法解决。下面小编将向大家介绍如何恢复win7系统到出厂设置。注意在恢复出厂设置之前,有重要资料的话先备份保存好。具体的步骤如下:1、按下...
    99+
    2023-07-14
  • 教你win10联想怎么恢复出厂系统
    一般windows系统一般都带有出厂设置的功能,当电脑系统出现故障问题需要修复的时候可以尝试通过恢复出厂系统解决。最近,一些网友打算将自己的联想win10恢复到出厂设置,然而并不清楚如何进行恢复操作。下面小编就教下大家联想电脑恢复出厂设置的...
    99+
    2023-07-14
  • Win10系统恢复出厂设置的方法
    本篇内容主要讲解“Win10系统恢复出厂设置的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Win10系统恢复出厂设置的方法”吧!首先点击左下角开始菜单再点击设置。 然后选择更新和安全选项。...
    99+
    2023-07-02
  • MySQL Innodb恢复的方法教程
    这篇文章主要介绍“MySQL  Innodb恢复的方法教程”,在日常操作中,相信很多人在MySQL  Innodb恢复的方法教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2024-04-02
  • sqlserver恢复表数据的方法是什么
    在SQL Server中,恢复表数据的方法通常包括以下几种: 使用事务日志备份进行恢复:如果表数据被意外删除或修改,可以通过还原...
    99+
    2024-04-09
    sqlserver
  • 操作系统层面恢复mysql数据库的方法是什么
    这篇文章主要介绍“操作系统层面恢复mysql数据库的方法是什么”,在日常操作中,相信很多人在操作系统层面恢复mysql数据库的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • linux系统数据恢复的方法是什么
    这篇文章主要介绍“linux系统数据恢复的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux系统数据恢复的方法是什么”文章能帮助大家解决问题。工具: hexedit、fdisk下文内...
    99+
    2023-06-17
  • win7系统恢复的步骤教程图解
    如何进行win7系统还原?这是我们每一个windows 7 用户必须要了解的,这样我们才可以以最快的方式将电脑的数据恢复到最近时间状态,取回重要信息文件。那么,该怎么进行win7系统还原呢?对于该问题的解决,您只要懂得使用win7系统自带还...
    99+
    2023-07-12
  • 恢复数据库的MySQL方法
    MySQL是一个常用的开源关系型数据库管理系统,它的数据是保存在文件中的,因此在一些情况下,数据库文件可能会遭到损坏或意外删除,需要进行恢复。本文将介绍在MySQL中如何进行数据库恢复...
    99+
    2024-02-26
    数据恢复工具等。 数据丢失
  • win10系统映像恢复的方法是什么
    恢复Win10系统映像有以下几种方法:1. 使用系统还原:在Win10系统中,可以使用系统还原功能来恢复系统映像。打开控制面板,选择...
    99+
    2023-09-02
    win10
  • 手把手教你win7还原系统的方法
    目前还有很多人在使用微软经典操作系统win7,不过其中一些用户在使用过程中遇到了一些系统问题。一般我们可以通过win7系统的还原功能进行修复,那么win7怎么还原系统?下面就给大家演示下win7还原系统的方法。具体的步骤如下:1、打开桌面的...
    99+
    2023-07-15
  • 教你win10系统盘清理彻底的方法
    一般情况下,默认安装系统到c盘,c盘便是我们电脑的系统盘,如果c盘的空间太小或者满了的话,会影响电脑系统的运行速度。最近有网友询问如何完全清理win10系统盘,小编今天将为大家介绍彻底清理win10系统盘的方法。一、常规磁盘清理1、打开“我...
    99+
    2023-07-17
  • 修复恢复Windows7、XP双系统启动菜单的方法
      我最早在C盘装了Windows XP,然后接着在D盘装的Windows7。这样用着一切正常,因为我原来备份的有XP系统,所以我用一键还原把C盘给还原了,但问题也就出来了,在系统启动项那只有Windows XP和一键还...
    99+
    2023-06-01
    win7 winXP 双系统 启动菜单 XP 菜单 Windows7 方法
  • Linux系统的备份和恢复方法是什么
    这篇文章主要介绍“Linux系统的备份和恢复方法是什么”,在日常操作中,相信很多人在Linux系统的备份和恢复方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux系统的备份和恢复方法是什么”的疑...
    99+
    2023-06-15
  • win8系统恢复经典开始菜单的方法
    步骤如下: 1、运行“regedit” ,打开注册表编辑器。 2、依次展开HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\E...
    99+
    2023-06-04
    win8系统 经典开始菜单 开始菜单 经典 win8 方法
  • 命令行下从bak文件恢复sqlserver数据库方法
    从bak文件恢复SQL Server数据库的步骤如下:1. 打开命令提示符或者PowerShell,并进入SQL Server的安装...
    99+
    2023-09-16
    sqlserver
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作