如何修复 SQL Server 数据库中的恢复挂起状态?

当我们想与关系数据库交互时,SQL 就会出现并帮助用户与数据库进行交互。SQL 从高级语言中获取用户的输入,然后访问将代码转换为机器可理解的形式。SQL 确实会恢复数据库文件,但有时 SQL 服务器恢复暂挂阶段会进入帐户,这会停止恢复过程并将关系数据库置于恢复暂挂状态。在本文中,将向你提供各种方法来修复 SQL Server 数据库中的恢复挂起状态。

将 SQL 数据库置于恢复模式的原因

SQL 服务器恢复挂起可能是因为在解析数据库中的某些事务期间系统关闭不当。

当你的硬盘或 RAM 中没有足够的空间时,有时运行各种查询会导致 SQL 数据库恢复挂起状态。各种用户移动他们的日志文件,以便可以增加系统的吞吐量,但在传输 SQL 文件时,他们的数据被损坏,这迫使数据库处于恢复挂起状态。

SQL Server 数据库中的各个阶段 

SQL Server 数据库中存在三个管理阶段,它们根据损坏的严重程度进行划分。 

在线阶段- 如果用户在 SQL 数据库服务器上工作时正在执行查询并且一个数据库文件在此过程之间损坏,则数据库保持在线并且仍然可以在线访问。这个阶段被称为在线阶段。

可疑阶段- 在 SQL 应用程序启动时,如果服务器无法恢复数据库,则 SQL 将数据库标记为可疑。

恢复挂起阶段- 此阶段发生在 SQL Server 知道必须运行数据库恢复但有什么阻止它启动时。在这种情况下,SQL Server 会将 DB 标记为“Recovery Pending”状态。

你可以通过在 SQL 数据库上运行以下命令来自行检查处于恢复挂起状态的数据库。

从 sys.databases SELECT name, state_desc 并写 GO 并按回车查看 SQL 数据库恢复挂起状态为;

可以看出结果中位置6的Demo是一个​RECOVERY PENDING STATE的数据库。

现在让我们研究一下恢复 SQL server 恢复挂起阶段的方法。

SQL Server 数据库中的手动恢复挂起状态

在恢复模式下解决 SQL 数据库问题的手动方法是通过两个步骤完成的。在我们研究这些步骤之前,我建议复制一份你的 SQL 数据库,这样如果你无法解析这些步骤,那么你的数据就不会受到损坏。

第 1 步

在紧急模式下勾选 SQL 并强制修复它。使用 Alter DB 和 CHECKDB 命令删除 MS SQL 恢复挂起状态,如下所示:

SQL 通过将 SQL 服务器从紧急阶段中解放出来来帮助他们的用户,但如果上述命令不能帮助你解决问题,那么,

使用以下命令将数据库置于紧急模式,

ALTER DATABASE mydatabase SET EMERGENCY​。使用此命令后,紧急标记将放置在文件后面。

现在,你必须通过应用以下查询将 SQL 数据库从紧急模式设置回正常模式,

ALTER DATABASE mydatabase SET ONLINE​。

第 2 步

将数据库设置为紧急模式并分离并重新连接主数据库

要执行此步骤以克服 ​SQL server recovery Pending ​状态,你需要执行与步骤 1 中所做的相同的步骤,将数据库置于紧急状态。此用户需要通过运行查询使 MS SQL 脱机,然后再次联机,以克服 MS SQL 恢复挂起状态。

ALTER [DBName] SET EMERGENCY;

ALTER DATABASE [DBName] set multi_user

EXEC sp_detach_db '[DBName]'

EXEC sp_attach_single_file_db @DBName = '[DBName]', @physname = N'[mdf path]'  

使用第二步,用户将能够创建一个新的日志文件,损坏的文件会自动从数据库中删除。让我们看看你在使用第 1 步和第 2 步消除 SQL 服务器恢复挂起问题时将遇到的问题。

手动方法限制
  • 在修复 SQL Server 数据库中的恢复挂起状态时,数据库损坏程度可能很高。
  • 如果你不熟练或来自技术领域,你将无法很好地运行这些命令,从而导致 SQL 数据库文件混乱。
  • 手动将 SQL 服务器联机或脱机可能会使你的应用程序完全损坏,因此关系数据库会受到很大的挫折,从而导致整个安装应用程序崩溃。

现在让我们转向另一种控制 SQL 服务器数据库恢复挂起问题的方法。

SQL Server 数据库中的专业恢复挂起状态 

克服 SQL 服务器恢复挂起问题的专业方法比手动方法更好。在这方面,我们使用SQL 数据库恢复工具来修复和恢复 SQL 数据库的损坏文件,并帮助你修复 SQL 服务器数据库中的恢复挂起状态。此工具支持 MDF 和 NDF 文件。使用此实用程序可以恢复你的数据库表、触发器、记录、函数和存储过程。 

牢记数据的重要性,此实用程序强制执行两种标准和高级恢复模式。在使用 SQL 数据库恢复工具进行修复后,用户还可以将文件从一台 SQL 服务器保存到另一台。这个工具欢迎所有版本的windows。使用此软件时也可以考虑架构和快照。 

使用 SQL 数据库恢复工具后,您不会在修复 SQL Server 数据库恢复挂起状态时遇到任何问题。

总结

为了解决 SQL 服务器恢复挂起状态,我描述了导致系统处于恢复挂起状态的 SQL 数据库文件损坏和损坏的各种原因。在此之后介绍了纠正阶段手动方式,它分为 2 个部分。但是由于用户在执行手动查询时遇到的问题,自动 SQL 数据库恢复工具进入了帐户。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/302384.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

wordcloud,一个超酷的python库

一、简单介绍一下 词云图是文本挖掘中用来表征词频的数据可视化图像,通过它可以很直观地展现文本数据中地高频词,让读者能够从大量文本数据中快速抓住重点。如下图: wordcloud则是一个非常优秀的词云展示python库,它支持自定义词…

高通开发系列 - toolchain交叉编译器编译kernel以及生成boot镜像

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 返回:专栏总目录 目录 背景概述分析过程generate_defconfig.sh脚本环境准备合并其他几个配置文件开始编译生成dtb镜像

JavaWeb——Spring事务管理

六、Spring事务管理 1. 注解 注解:Transactional 位置:业务(service)层的方法上、类上、接口上——一般在执行多条增删改方法上加 作用:将当前方法交给spring进行事务管理,方法执行前,开启事…

解决:已经安装open3d,还是报错No module named ‘open3d‘的问题

首先示例,我是如何安装又是如何被报错的过程。 报错过程: 网上普遍的安装指令就是下面这个: pip install open3d 我是直接python页面的终端安装的: 安装完,检查列表已安装文件是否有open3d, 输入指令 …

听GPT 讲Rust源代码--compiler(12)

File: rust/compiler/rustc_data_structures/src/graph/dominators/mod.rs 文件mod.rs位于Rust编译器源代码中的rustc_data_structures/src/graph/dominators目录下。这个文件的作用是实现支配树(dominator tree)的计算算法。 在编译器优化中&#xff0c…

Hotspot源码解析-第十五章-类加载器初始化前期准备

15.1 ClassLoader初始化 15.1.1 classLoader.cpp 15.1.1.1 classLoader_init void classLoader_init() {ClassLoader::initialize(); }void ClassLoader::initialize() {assert(_package_hash_table NULL, "should have been initialized by now.");EXCEPTION_MA…

Spring学习 Spring整合MyBatis

6.1.创建工程 6.1.1.pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.ap…

3.9 EXERCISES

矩阵加法需要两个输入矩阵A和B&#xff0c;并产生一个输出矩阵C。输出矩阵C的每个元素都是输入矩阵A和B的相应元素的总和&#xff0c;即C[i][j] A[i][j] B[i][j]。为了简单起见&#xff0c;我们将只处理元素为单精度浮点数的平方矩阵。编写一个矩阵加法内核和主机stub函数&am…

C语言详解之一维数组二维数组以及变长数组

一周新的开始&#xff0c;今天的你学习了吗&#xff1f; 前言 今天打算把数组的相关知识知识复习一下&#xff0c;比如初始化&#xff0c;调用&#xff0c;以及他和指针的关系等等 数组是什么 数组是一种数据结构&#xff0c;它由相同类型的元素组成&#xff0c;并按照一定的…

Spring学习 Spring AOP

4.Spring AOP 4.1.为什么要学习AOP? 案例&#xff1a;有一个接口Service有一个addUser方法&#xff0c;在调用addUser(被调用时打印调用前的毫秒数与调用后的毫秒数&#xff09;&#xff0c;其实现为&#xff1a; Service public class UserServiceImpl implements UserServi…

机器学习 前馈神经网络

人工神经网络&#xff08;Artificial Neural Network&#xff0c;ANN&#xff09;是指一系列受生物学和神经科学启发的数学模型&#xff0e;这些模型主要是通过对人脑的神经元网络进行抽象&#xff0c;构建人工神经元&#xff0c;并按照一定拓扑结构来建立人工神经元之间的连接…

【Vue3】2-5 : 指令系统与事件方法及传参处理

本书目录&#xff1a;点击进入 一、标签属性中的使用 - 指令系统 1.1 那么模板语法是否可以在标签属性中进行使用呢? ▶ 当然可以&#xff1a;使用 指令系统 二、指令系统 2.1 v-bind 2.2 v-on 三、实战 3.1 methods 选项 3.2 $event语法 一、标签属性中的使用 - 指令…

服务发现Discovery

对于注册进eureka里面的微服务&#xff0c;可以通过服务发现来获得该服务的信息 1、 修改cloud-provider-payment8001的controller import com.my.springcloud.utils.RestResponse; import com.my.springcloud.entities.Payment; import com.my.springcloud.service.PaymentSe…

文档审阅批注的合并和对比

#创作灵感# 最近在改论文&#xff0c;Feedback返回的时候&#xff0c;把之前的批注都删了&#xff0c;这就增加了工作量&#xff0c;看起来不方便&#xff0c;所以就需要将删掉的批注全部复原。 那在原来的文档重新在修改一遍&#xff0c;工作量还是很大的&#xff0c;所以这里…

java中的语法糖,你了解多少?

什么是语法糖 语法糖是一种编程语言的特性&#xff0c;通常是一些简单的语法结构或函数调用&#xff0c;它可以通过隐藏底层的复杂性&#xff0c;并提供更高级别的抽象&#xff0c;从而使代码更加简洁、易读和易于理解。但它并不会改变代码的执行方式。 语法糖优势 1. 简化代…

Turn.js 实现翻书效果

接到了任务&#xff0c;要把孩子画的画放到网页上去&#xff0c;翻页效果还要逼真一点。搜索到了turn.js这个前端翻页组件&#xff0c;效果不错。先上图看效果。 网页实际效果&#xff1a;星月夜诗集 turn.js的官网地址&#xff1a;Turn.js: The page flip effect in HTML5 …

内存映射-进程通信

内存映射(mmap) 1. 创建内存映射区 实现进程间通信&#xff0c;还可以通过函数创建一块内存映射区&#xff0c;和管道不同的是管道对应的内存空间在内核中&#xff0c;而内存映射区对应的内存空间在进程的用户区&#xff08;用于加载动态库的那个区域&#xff09;&#xff0c…

1.4号io网络

1.多进程 引入目的&#xff1a;让多个任务实现并发执行 并发执行&#xff1a;同一时间只有一个进程执行&#xff0c;通过时间轮询调度多个进程&#xff0c;由于时间每个进程所用时间极短&#xff0c;所以宏观表现为多个进程同时进行。 并行执行&#xff1a;多个任务器执行多…

【Python】Graphviz的安装和使用

graphviz包可以用来决策树可视化&#xff0c;只安装包之后直接import使用会报错&#xff0c;因为graphviz是一个要单独安装的软件。 下载路径&#xff1a;Download | Graphviz 有不同的版本&#xff0c;我这里用的是最新版 9.0版本安装之后可以选自动添加到环境变量——系统…

LeetCode刷题12:贪心算法解决1402.做菜顺序

一个厨师收集了他 n 道菜的满意程度 satisfaction &#xff0c;这个厨师做出每道菜的时间都是 1 单位时间。 一道菜的 「 like-time 系数 」定义为烹饪这道菜结束的时间&#xff08;包含之前每道菜所花费的时间&#xff09;乘以这道菜的满意程度&#xff0c;也就是 time[i]*sa…