SQLServer数据库处于恢复挂起状态的解决办法

一、总结

  如果数据库处于一个恢复挂起的状态,并且对数据库做脱机和分离的操作,报出数据库文件不可访问的错误,可能是因为数据库的数据文件和日志文件在数据库正常连接的情况下,文件所在的磁盘脱机了,导致数据库在一段时间内找不到数据库的文件,就把数据库置于一个恢复挂起的状态了,所以磁盘联机后,重启数据库服务,重新去找数据文件和日志文件找到了,数据库就可用了。

二、处理步骤

1、数据库恢复挂起截图

  

2、出现恢复挂起的原因

 我这里的数据库出现这种原因,是因为我的数据库数据文件和日志文件是在存储上放着的,当时存储升级微码,所以暂时把该机器上挂载的存储盘脱机了(脱机升微码快),存储微码升级好后,磁盘再次联机,重启机器,数据库服务也自动重启了,登录SSMS客户端,查看数据库的状态就是恢复挂起状态了。

3、处理步骤

(1)尝试restore数据库失败,提示数据库是离线状态

  脚本:restore database run with recovery

(2)对数据库做脱机操作,报错

注: 如果能对数据库脱机成功,再次联机也有可能解决,要看数据库是什么原因导致数据库恢复挂起的。

(3)对数据库做分离操作,也报错同样的错误

  

注: 以上对数据库脱机和分离都报出数据库文件不可访问的错误,查看磁盘文件,发现文件是存在的

(4)迫不得已,所以对数据库服务做了重启

注: 重启数据库服务后,发现数据库好了,可以用了,大功告成!

总结

以上所述是小编给大家介绍的SQLServer数据库处于恢复挂起状态的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • SQL Server 2008及更高版本数据库恢复方法之日志尾部备份

    经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了.人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题. 遇到这种情况,一般都是没有做备份,不然也不会来发问了.首先要冷静,否则会有更大的灾难.直到你放弃. 解决方法: 对于这类问题,主要是找回误操作之前的数据,在2008之前,有个很出名的工具Log Exploer,听说还挺好用的,这个网上大把教程,这里就不多说了.但是唯一遗憾的是,不支持2008及更高版本,这时除了其

  • 关于mysql数据库误删除后的数据恢复操作说明

    在日常运维工作中,对于mysql数据库的备份是至关重要的!数据库对于网站的重要性使得我们对mysql数据的管理不容有失! 然后,是人总难免会犯错误,说不定哪天大脑短路了来个误操作把数据库给删除了,怎么办??? 下面,就mysql数据库误删除后的恢复方案进行说明. 一.工作场景 (1)MySQL数据库每晚12:00自动完全备份. (2)某天早上上班,9点的时候,一同事犯晕drop了一个数据库! (3)需要紧急恢复!可利用备份的数据文件以及增量的binlog文件进行数据恢复. 二.数据恢复思路 (1

  • PL/SQL远程备份和恢复Oracle数据库

    在客户端远程备份的文件保存在数据库所在主机上,不会直接拷贝到客户端. ------------------------------------------ 首先无论你的Oracle服务器是Linux还是windows操作系统,Oracle的备份和恢复操作都是使用DBMS_DUMP来实现导入(备份)和导出(恢复).首先你要安装好PL/SQL,用PL/SQL来执行我下面提供的JOB就可以实现了.  一.Oracle的导出(备份) 1.用PLSQL连接Oracle数据库服务器,使用你需要导出的用户连接

  • SQL Server 2008数据库误删数据如何进行数据恢复

    有个朋友很着急地打电话给我,他用delete语句误删除了SQL Server 2008数据库中两个表中的所有记录,而这个数据库之前没有任何备份.让我帮他解决一下,不然他要赔偿客户很多钱. SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可.但是,这个恢复需要有两个前提条件: 1. 至少有一个误删除之前的数据库完全备份. 2. 数据库的恢复模式(Recovery mode)是"完整(Full)". 针对这两个前提条件,会有三种情况: 情况一.如果这两个前提条件都存在

  • 详解如何通过Mysql的二进制日志恢复数据库数据

    经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响.所以本文我们将和大家一起分享学习下如何通过Mysql的二机制日志(binlog)来恢复数据. 系统环境: 操作系统:CentOS 6.5 X64  (虚拟机): WEB服务:PHP+Mysql+apache: 网站:为方便,直接在本地用蝉知系统搭建一个DEMO站点: 操作步骤: 1.开启binlog功能及基本操作: 2.往站点添加数据: 3.刷新binlog日志: 4.删除

  • 快速实现SQL Server数据库恢复备份

    本文为大家分享了SQL Server数据库恢复备份的两种方法,供大家参考,具体内容如下 第一种方法:通常我们采用恢复备份的方式,选择目标数据库,选择源设备进行恢复. 截图如下: 第二种方法:这种方式有时候不太方便,而脚本方式将更方便,使用脚本方式如下. /* 备份数据DB 到.bak文件.然后利用此bak文件恢复一个新的数据库DBTest. */ USE master BACKUP DATABASE DB TO DISK = 'e:\DBTest.bak' RESTORE FILELISTONL

  • Linux上通过binlog文件恢复mysql数据库详细步骤

     一.binlog 介绍 服务器的二进制日志记录着该数据库的所有增删改的操作日志(前提是要在自己的服务器上开启binlog),还包括了这些操作的执行时间.为了显示这些二进制内容,我们可以使用mysqlbinlog命令来查看. 用途1:主从同步 用途2:恢复数据库(也是线上出现一次数据库文件丢失后,才对这个有所了解并学习的) mysqlbinlog命令用法:shell> mysqlbinlog [options] log_file ... <!--[if !supportLists]-->

  • SQLServer数据库处于恢复挂起状态的解决办法

    一.总结 如果数据库处于一个恢复挂起的状态,并且对数据库做脱机和分离的操作,报出数据库文件不可访问的错误,可能是因为数据库的数据文件和日志文件在数据库正常连接的情况下,文件所在的磁盘脱机了,导致数据库在一段时间内找不到数据库的文件,就把数据库置于一个恢复挂起的状态了,所以磁盘联机后,重启数据库服务,重新去找数据文件和日志文件找到了,数据库就可用了. 二.处理步骤 1.数据库恢复挂起截图 2.出现恢复挂起的原因 我这里的数据库出现这种原因,是因为我的数据库数据文件和日志文件是在存储上放着的,当时存

  • sqlserver数据库迁移后,孤立账号解决办法

    复制代码 代码如下: declare @cmd nvarchar(4000) set @cmd = N'exec [?].sys.sp_change_users_login @Action = ''Auto_Fix'' , @UserNamePattern = ''qa'' , @LoginName = null , @Password = ''abc'' ' exec sp_msforeachdb @cmd

  • 关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法

    最近项目用到了backbone 做前后端的分离方案,遇见了中文乱码问题,解决方案总结如下: 假设需要存一条课程记录到后台 model定义如下: var AddCourse= Backbone.Model.extend({ url:path+"/course/add", parse : function(response){ return response.data; } }); encodeURIComponent 函数 将中文的内容进行编码 $('#addCourseBtn' ).c

  • Oracle数据库ORA 54013错误的解决办法

    ORA-54013: 不允许对虚拟列执行 INSERT 操作 这是Oracle 11 的新特性 -- 虚拟列. 在以前的Oracle 版本,当我们需要使用表达式或者一些计算公式时,我们会创建数据库视图,如果我们需要在这个视图上使用索引,我们会创建基于函数的索引.现在Oracle 11允许我们直接在表上使用虚拟列来存储表达式.虚拟列的值是不存储在磁盘的,它们是在查询时根据定义的表达式临时计算的.我们不能往虚拟列中插入数据,我们也不能隐式的添加数据到虚拟列,我们只能使用物理列来插入数据.然后可以查询

  • Android PopupWindow被输入法弹上去之后无法恢复原位的解决办法

    问题描述: 我的PopupWindow位于屏幕底部,它上面有一个EditText输入框,而当我点击这个EditText的时候,随着输入法的弹出,我的PopupWindow也会随着上升,但是当我结束输入,关闭输入法的时候,PopupWindow却没有随着输入法一下下滑,而是停在屏幕中间,下面显示的是Activity的背景色.(小米手机上出现,三星note上没有出现) 解决办法: 给PopupWindow增加一个属性:popWindow.setSoftInputMode(WindowManager.

  • SQLserver安装时要求CDKEY的解决办法

    [可用]如果出现安装sql server 2000要求CD-KEY的情况,请使用regedt32找开注册表,在以下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager]中建立一个DWORD键 SafeDLLSearchMode并设值为0 这个试过,是可以用的 H6TWQ-TQQM8-HXJYG-D69F7-R84VM -----2KSVR序列号 JCYFH-BYJMR-C4PVV-VD9G3-VXDYG --

  • Oracle数据库ORA-12560错误问题的解决办法

    官网中关于ORA-12560的解释: ORA-12560: TNS:protocol adapter error Cause: A generic protocol adapter error occurred. Action: Check addresses used for proper protocol specification. Before reporting this error, look at the error stack and check for lower level

  • SQLSERVER数据库中的5173错误解决方法

    昨天同事给你我一个有问题的数据库,叫我修复一下因为客户那边需要这个数据库,这个数据库只有一个mdf文件和一个ldf文件, 当我附加数据库的时候报错,数据库是SQL2005 附上有损坏的数据库文件: 因为之前在论坛也遇到过,所以按照论坛的方法来解决,结果还是不行 把ldf文件移到别的地方,然后附加的时候使用下面SQL语句重建事务日志文件 我的数据库文件放在C:\Users\Administrator\Desktop\新建文件夹目录下 复制代码 代码如下: USE [master] GO CREAT

  • 记一次公司仓库数据库服务器死锁过程及解决办法

    死锁的四个必要条件: 互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用. 请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源. 非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺. 循环等待条件(Circular wait):系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源. 仓库拣货卡死,排查了数据库的很多地方,都没有头绪,最后到SQL Server 错误日志里查看,终于

  • php插入中文到sqlserver 2008里出现乱码的解决办法分享

    今天使用php操作数据库时发现插入SQL Server 2008数据库里的中文字段出现乱码,下面是我一开始时的一些情况: 开发环境是php5.3.3+Apache2.2.17+SQL Server 2008,php脚本文件的编码是utf-8,传给数据库的编码是GB2312(SQL Server的默认字符编码可能是这个,我不肯定),我用的是微软官方提供的SQLSRV库来连接数据库的(PS:SQL Server 2005开始已经不支持用mssql.dll来连接了),故使用sqlsrv_query($

随机推荐