昨天网上一网友说,由于他同事误将“max server memory”设置为10M后,SQL Server数据库登录不了,当时我简单测试了一下,今天有空就顺手将整个过程整理一下,记录在此。

在SSMS的UI界面设置“max server memory”,即使你设置为10M大小,但是它会“悄悄”默认修改为128M,你用Profile跟踪或者设置后会发现,它偷偷“修改”了你的设置值(改为了128M),

EXEC sys.sp_configure N'max server memory (MB)', N'128'

GO

RECONFIGURE WITH OVERRIDE

GO

 

Configuration option 'max server memory (MB)' changed from 4096 to 128. Run the RECONFIGURE statement to install.

如果你没有注意这些细节,或者不信这个事情,那么也可以用脚本测试一下,如下所示,它提示你这个值(10M)不是一个有效值。

当你对“max server memory”做了错误设置后,那么基本上,任何查询或连接都会出现类似下面这样的错误:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

 

------------------------------

There is insufficient system memory in resource pool 'internal' to run this query. (Microsoft SQL Server, Error: 701)

 

 

 

 

 

 

------------------------------

ADDITIONAL INFORMATION:

 

A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - 远程主机强迫关闭了一个现有的连接。) (Microsoft SQL Server, Error: 10054)

 

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=10054&LinkId=20476

 

------------------------------

远程主机强迫关闭了一个现有的连接。

你检查数据库的错误日志,就会发现有很多额外信息,摘抄部分如下:

.........................................................

.........................................................

2019-12-24 10:15:32.84 spid53      There is insufficient system memory in resource pool 'internal' to run this query.

2019-12-24 10:15:52.88 spid53      Error: 18056, Severity: 20, State: 29. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.

2019-12-24 10:15:55.89 Server      Error: 17300, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.

2019-12-24 10:16:12.70 Server       Failed allocate pages: FAIL_PAGE_ALLOCATION 1

2019-12-24 10:16:12.70 Server   

 

Process/System Counts                         Value

---------------------------------------- ----------

Available Physical Memory                6614454272

Available Virtual Memory                 140726213148672

Available Paging File                    7776440320

Working Set                                95432704

Percent of Committed Memory in WS               100

Page Faults                                   57030

System physical memory high                       1

System physical memory low                        0

Process physical memory low                       1

Process virtual memory low                        0

2019-12-24 10:16:12.70 Server      

Memory Manager                                   KB

---------------------------------------- ----------

VM Reserved                                10652776

VM Committed                                  57972

Locked Pages Allocated                        86472

Large Pages Allocated                             0

Emergency Memory                               1024

Emergency Memory In Use                          16

Target Committed                             131072

Current Committed                            144448

Pages Allocated                               84176

Pages Reserved                                    0

Pages Free                                        0

Pages In Use                                 144432

Page Alloc Potential                         -19912

NUMA Growth Phase                                 2

Last OOM Factor                                   1

Last OS Error                                     0

2019-12-24 10:16:12.70 Server      

Memory node Id = 0                               KB

---------------------------------------- ----------

VM Reserved                                10652712

VM Committed                                  57952

Locked Pages Allocated                        86472

Pages Allocated                               84176

Pages Free                                        0

Target Committed                             131048

Current Committed                            144424

Foreign Committed                                 0

Away Committed                                    0

Taken Away Committed                              0

2019-12-24 10:16:12.70 Server      

Memory node Id = 64                              KB

---------------------------------------- ----------

VM Reserved                                       0

VM Committed                                     20

Locked Pages Allocated                            0

2019-12-24 10:16:12.70 Server      

MEMORYCLERK_SQLGENERAL (node 0)                  KB

---------------------------------------- ----------

.........................................................

.........................................................

要解决这个问题,你需要关闭数据库服务, 然后以单用户模式+最小配置启动数据库实例,然后去修改max server memory参数。 关闭数据库过程中如果遇到一些问题,可以通过重启服务器解决问题(这个要根据具体实际情况决定,有时候不会遇到问题,有时候会遇到一些问题,例如net stop mssqlserver命令卡住,出现service_state[MSSQLSERVER]): Stop pending)

注意:如果以单用户模式启动,然后以sqlcmd去连接数据库,就会出现下面错误,所以必须以单用户模式+最小配置启动数据库实例

EXEC sys.sp_configure 'max server memory (MB)',4096;  #根据实际情况设置内存大小。

 

RECONFIGURE

 

GO

然后重启SQL Server实例,问题就解决了。 当然你也可以还原master库的备份到其它测试数据库,然后用还原后master数据库的相关文件替换当前数据库master的相关文件来解决问题。但是那样会相对麻烦,没有这种方法简便、有效!

C:\Windows\system32>net stop mssqlserver

The SQL Server (MSSQLSERVER) service is stopping.

The SQL Server (MSSQLSERVER) service was stopped successfully.

C:\Windows\system32>net start mssqlserver

The SQL Server (MSSQLSERVER) service is starting.

The SQL Server (MSSQLSERVER) service was started successfully.

SQL Server误设置max server memory处理小结的更多相关文章

  1. 限制sqlserver最大内存后无法连接-EXEC sp_configure max server memory

    在sql server 中设置了过小的 "max server memory"最大内存后,sqlserver可启动,但是无法连接. 网络上流行的"sqlserver 内存 ...

  2. max server memory

    MS SQL Server 2008 R2,主要是用作ERP的数据库,但它的内存使用率非常高: 经查资料,原来数据库有默认的情况之下,使用内存时它是尽可能使用完有效内存.如果你不想这样,你可以手动分配 ...

  3. DAC重置max server memory

    15:44 2014-01-24 08R2,一次通过GUI更改'最大服务器内存(MB)'为16MB,errorlog显示信息如下 :: . Run the RECONFIGURE statement ...

  4. SQL Server数据库与max degree of parallelism参数

    我们今天主要向大家讲述的是SQL Server数据库中的max degree of parallelism参数,当 SQL Server 数据库在具N个微处理器或是 CPU 的计算机上运行时,它将为每 ...

  5. Sharepoint 性能之SQL Server内存设置

    In this article, let's understand the Minimum and Maximum server memory settings of SQL Server. The ...

  6. 设置Proxy Server和SQL Server实现互联网上的数据库安全

    ◆首先,我们需要了解一下SQL Server在WinSock上定义协议的步骤: 1. 在”启动”菜单上,指向”程序/Microsoft Proxy Server”,然后点击”Microsoft Man ...

  7. 将 SQL Server 实例设置为自动启动(SQL Server 配置管理器)

    本主题说明如何使用 SQL Server 配置管理器在 SQL Server 2012 中将 SQL Server 实例设置为自动启动. 在安装过程中,SQL Server 通常配置为自动启动. 如果 ...

  8. SQL Server数据库设置自动备份策略

    一. 简单介绍 SQL Server自带的维护计划是一个非常有用的维护工具,能够完成大部分的数据库的维护任务. 数据库的备份也是日常工作中非常重要的一个环节.备份的方法非常的多. 今天给大家介绍最简单 ...

  9. SQL server已经设置为单用户模式,还是无法做分离、属性设置等操作

    https://www.cnblogs.com/xingyunqiu/p/10336938.html SQL server已经设置为单用户模式,Sql server还原失败数据库正在使用,无法获得对数 ...

随机推荐

  1. DD boost你值得拥有

    也不知道什么时候就被赶到这条路上来了,只听领导的一声令下,备份啊能不能在异地也存一份呀?? 啊?? 领导语重心长的说你看啊,我们这个备份是这个样子的 现在的南京的两个工厂备份要在对方留一份备份的存档, ...

  2. Go语言实现:【剑指offer】整数中1出现的次数(从1到n整数中1出现的次数)

    该题目来源于牛客网<剑指offer>专题. 求出1 ~ 13的整数中1出现的次数,并算出100 ~ 1300的整数中1出现的次数?为此他特别数了一下1 ~ 13中包含1的数字有1.10.1 ...

  3. Source Code Structure - Python 源码目录结构

    Source Code Structure - Python 源码目录结构 Include 目录包含了 Python 提供的所有头文件, 如果用户需要用 C 或 C++ 编写自定义模块扩展 Pytho ...

  4. 分区格式化大于2 TiB磁盘

    如果您要分区格式化一块大于2 TiB的作数据盘用的云盘(本文统一称为 大容量数据盘,小于2 TiB的数据盘统称为 小容量数据盘),您必须采用GPT分区形式.本文档描述了如何在不同的操作系统里分区格式化 ...

  5. es5实现一个class

    es5实现一个class https://juejin.im/post/5ac1c5bf518825558949f898#heading-9

  6. 如何在SQL Server中生成和使用CRUD存储过程

    在本文中,请参阅如何在SQL Server中生成和使用CRUD存储过程. 大多数数据库系统基于缩写CRUD调用的最简单的4种数据操作操作进行操作. 此首字母缩写词代表CREATE,READ,UPDAT ...

  7. cesium结合geoserver实现地图空间查询(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  8. MySql数据库精简与绿色启动

    1.下载MYSQL的zip包,解压ZIP包 版本低的相对需要的空间少,最好能在mysql-5.6以下,我测试的最高5.6版本为mysql-5.6.46,主要是里面有my.ini文件,高于5.6的版本里 ...

  9. JAVA 增删改查接口命名规范(dao层与 service 层

    开发时,有很多规范,这里写的是命名规范. Dao 接口命名   insert batchInsert selectOne selectById count selectList update dele ...

  10. kthrotlds(WatchDogs变种)查杀方法

    病毒现象 服务器出现卡顿.CPU飙升 以下为WatchDogs的判断方式及其命令:存在恶意进程watchdogs: ps -ef | grep watchdogs存在恶意进程ksoftirqds: p ...