今天检查公司生产服务器的SQL Server数据库,惊讶的发现有三个生产数据库变为了single user mode。奇怪的是没有任何人和程序执行过SQL语句将这三个数据库设置为single user mode,是自动变的。后来在网上查了查原来发现,重启windows server原来有可能导致SQL Server数据库意外变为single user mode。原文如下:

问题:

Why did SQL Server go into single user mode?

I've had an application that's been running great for several months. Thankfully I use try/catch blocks in my database calls because this morning I get an email alert from my catch block that said:

Message: Login failed for user 'NT AUTHORITY\NETWORK SERVICE'. Reason: Server is in single user mode. Only one administrator can connect at this time.
Source: .Net SqlClient Data Provider
Data: System.Collections.ListDictionaryInternal

So I go and try to access the application, and yep, verified that it doesn't work.

I was able to remote desktop over to the server and log into SQL Server which suddenly "fixed" the issue, but I don't know why this happened. ("Fixed" as in now the application does it's normal CRUD operations.)

Does anyone know why this might have spontaneously happened?

Also, if I go to database -> properties -> options -> State, I verified that Restrict Access is in "MULTI_USER".

The app is powered by the mighty SQL Server 2005 express. Is that the problem?

回答:

Did you check your Windows Event Logs to see if anything happened to the server? Did it reboot after installing any updates?

Got a crazy system admin that didn't let me know that was going on. Just checked the event viewer and saw that's exactly what was going on. Thanks for helping me verify what was going on! – Anjisan Mar 31 '09 at 14:18

@Sung Meister: According to the Event Viewer (system) on the server, he was applying updates which included stopping/starting SQL Server. Would have been nice to know ahead of time. Had no idea he was doing that. Good thing I used try/catch and error logging. – Anjisan Mar 31 '09
 
This also happened to me when Windows Update was installing a service pack. – Jorrit Schippers Mar 30 '12 at 12:18

所以我们看到有些windows server的安全补丁安装后,要求重启服务器。这有可能导致SQL Server的某些数据库变为single user mode。所以在重启服务器前要小心,最好将所有SQL Server的数据库offline之后再重启服务器,这是最安全的做法。

原文链接

 

服务器重启可能会导致SQL Server中部分数据库变为single user mode的更多相关文章

  1. SQL Server中查询数据库及表的信息语句

    /* -- 本文件主要是汇总了 Microsoft SQL Server 中有关数据库与表的相关信息查询语句. -- 下面的查询语句中一般给出两种查询方法, -- A方法访问系统表,适应于SQL 20 ...

  2. SQL Server中通用数据库角色权限处理

    SQL Server中通用数据库角色权限处理   最近和同事在做数据库权限清理的事情,主要是删除一些账号:取消一些账号的较大的权限等,例如,有一些有db_owner权限,我们取消账号的数据库角色db_ ...

  3. SQL Server中通用数据库角色权限的处理详解

    SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除 ...

  4. 《SQL Server企业级平台管理实践》读书笔记——SQL Server中收缩数据库不好用的原因

    数据库管理员有时候需要控制文件的大小,可能选择收缩文件,或者把某些数据文件情况以便从数据库里删除. 这时候我们就要使用到DBCC SHRINKFILE命令,此命令的脚本为: DBCC SHRINKFI ...

  5. SQL Server 中创建数据库、更改主文件组示例

    以下示例在 SQL Server 实例上创建了一个数据库.该数据库包括一个主数据文件.一个用户定义文件组和一个日志文件.主数据文件在主文件组中,而用户定义文件组包含两个次要数据文件.ALTER DAT ...

  6. SQL Server中使用数据库快照的方式来完成测试环境中数据库的轻量级备份还原操作

    在开发或者测试环境的数据库中,经常会发现有开发或者测试人员误删除表或者数据的情况,对于开发或者测试库,一般都没有安排定时的备份任务去备份数据库,一方面是由于存储资源有限,不太可能给开发或者测试环境准备 ...

  7. sql server 中查询数据库下有多少张表以及同义词等信息

    --查询数据库有多少张表SELECT count(0) from sysobjects where xtype = 'u' 复制代码 解释:sysobjects系统对象表. 保存当前数据库的对象.如约 ...

  8. SQL Server中的GUID

    GUID(Global unique identifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个 16 字节的二进制值. GUID ...

  9. sql server中的系统数据库

    1.master数据库 master是SQL Server中最重要的数据库,是整个数据库服务器的核心.用户不能直接修改该数据库,如果损坏了master数据库,整个SQL Server服务器将不能工作. ...

随机推荐

  1. redisTemplate实现轻量级消息队列, 异步处理excel并实现腾讯云cos文件上传下载

    背景 公司项目有个需求, 前端上传excel文件, 后端读取数据.处理数据.返回错误数据, 最简单的方式同步处理, 客户端上传文件后一直阻塞等待响应, 但用户体验无疑很差, 处理数据可能十分耗时, 没 ...

  2. Django+Echarts画图实例

    所有演示均基于Django2.0 阅读此篇文章你可以: 了解Django中aggregate和annotate函数的使用方法 获取一个Django+Echarts绘制柱状图的完整示例 需求说明 一张会 ...

  3. 初入Java后端之Servlet

    初入Java后端之Servlet 后端 Servlet  什么是Servlet? Servlet实际上是一个按照Servlet规范写的Java类.是运行在Web服务端的Java应用程序.与Java程序 ...

  4. ActiveMQ Pub/Sub版的HelloWorld

    1. pom.xml 这个和上一篇是一样的: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&qu ...

  5. 【转】GDI+中发生一般性错误的解决办法

    今天在开发.net引用程序中,需要System.Drawing.Image.Save 创建图片,debug的时候程序一切正常,可是发布到IIS后缺提示出现“GDI+中发生一般性错误”的异常. 于是开始 ...

  6. [转]SQL Server 中WITH (NOLOCK)浅析

    本文转自:https://www.cnblogs.com/kerrycode/p/3946268.html 概念介绍 开发人员喜欢在SQL脚本中使用WITH(NOLOCK), WITH(NOLOCK) ...

  7. SQL Server T—SQL 视图 事务

    一 视图 视图是存储在数据库中的查询的SQL 语句, 视图是从一个或多个表或视图中导出的表,是一张虚表,只能对视图进行查询,不能增.删.改. 对视图进行修改要在相应的基本表中进行修改,修改会自动的反应 ...

  8. 使用 SQLServer On Linux 作为开发数据库遇到的编码问题

    在维护旧的项目的时候,遇到了使用 varchar 类型存储中文的情况,本地数据库是直接使用来自上古时期的 T-SQL 创建的.为了方便,我就没有安装 Windows 版的 SQLServer,直接用的 ...

  9. Access to XMLHttpRequest at 'XXX' from origin 'XX' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present o AJAX跨域请求解决方法

    今天出现了一个问题找了好久先看代码: 这可能是个BUG吧插入代码: dataType: 'jsonp', crossDomain: true, 最终:

  10. Mysql系统知识梳理

    1 数据库分类 MySQL Oracle redis 2 MySQL 存储引擎有哪些 ENGINE=InnoDB 提供事务安全表,支持外键. MyISAM Memory数据存入内存中,如果内存出现异常 ...