1、 主要设置min server memory 和 max server memory ,如果同台服务器有多台吃内存大户服务, max server memory 给设置一个值稍大的值出来,别让SQL server把WINDOWS内存都吃完了也别让其他的服务把WINDOWS内存吃完了,这样才会相安无事2设置方法可以通过命令方式的,楼上的挺好,还有就是通过SQL SERVER企业管理器进行:鼠标右键服务器\属性\内存 可以看多最大内存和最小内存设置选项。
如果能在实例级别为同一SQL服务器上的不同实例限制其能够使用的最大和最小内存,就能降低这种情况对其他应用系统的影响。具体的 *** 作如下:
(一)实例的最大和最小内存设置
为实例设置合适的最大和最小内存,如图。
(二)为 *** 作系统预留足够的内存
假如一台8GB的服务器,我们可以限制数据库使用的内存上限不超过6GB,剩下的2GB留给 *** 作系统使用。
(三)配置lock pages in memory
查看SQL进程的启动账户,如图。
在组策略里设置启动SQL Server的账户拥有锁定内存页的权限。如图。
在下图的添加用户或组界面,添加SQL server的服务启动账户,如图。
设置完成后,需要关注的两个问题:
1、因为SQL Server锁定了内存页,当Windows内存告急时,SQL Server就不能对Windows的内存告急做出响应,因为SQL Server的特性是内存有多少用多少,因此很有可能在无法做出对Windows低内存的响应时造成Windows的不稳定甚至崩溃。因此开启了”Lock Page In Memory”之后,要限制SQL Server Buffer Pool的内存使用
2、还有一个问题是当Buffer Pool通过AllocateUserPhysicalPages分配内存时,我们在任务管理器中看到的sqlservrexe占用的内存就仅仅包含Buffer Pool中非Data Cache部分和MemToLeave部分,而不包含Data Cache部分,因此看起来有可能造成sqlservrexe只占用了几百兆内存而内存的使用是几十G。这时我们就需要在Perfmonexe中查看SQL Server:Memory Manager\Total Server Memory计数器去找到SQL Server真实占用的内存。(由于SQL server 2012内存管理机制的变化,所以个人认为这一条原则可能只适用于SQL server 2008R2以前的数据库版本)
1、1选择“开始 > 所有程序 > Microsoft SQL Server 2008 R2 > SQL Server Management Studio”。系统显示“连接到服务器”界面。
2、2输入各项数据,单击连接
3、3系统显示“对象资源管理器”界面
4、4上图单击右键,在d出的快捷菜单中选择“属性”。
5、5在左侧导航栏中选择“内存”,将右侧“最大服务器内存”的值设置为物理内存的60%,本例以8G内存为例
6、6最后单击确定,设置完成
以上就是关于数据库内存不足,如何设置内存管理全部的内容,包括:数据库内存不足,如何设置内存管理、如何设置SQLServer数据库内存、怎么设置sql2008数据库最大服务器内存等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)