Windows2003
企业版 + Sql Server2005手工调整数据库服务器内存
最近犯了一个大的错误,总以为
Windows2003
能够合理的使用多余的内存,能够智能化处理内存,事实非然。
事情是这样的,我有一台数据库服务器,
32
位,操作系统是
Windows2003
企业版,
4G
内存,
320G存储空间
,使用
SQLSERVER2005
数据库管理系统,
里边有若干个数据库,平时主要处理大量的业务外,还设置了一些同步,由于及时优化,
CPU
一直保持在
5%
以下,各项主要指标观察下来一直正常,如数据库的缓冲命中率保持在
95%
以上等,所以平时就以默认安装的模式运行着,本以为
SQLSERVER2005
能合理的分配内存,至少比
SQLSERVER2000
有了很大的改进,且操作系统也由
Windows 2000Server
更新为
Windows 2003
,内存不足时无论是系统还是数据库本身都会自动调整内存(
Sqlserver2000
需要手工调整,可
Google
一下),最近观察不管是什么时候内存使用都不超过
2G
,且
SQLSERVER2005
占用
1.7G
的现象,开始以为是数据数内存足够了,也没有在意,后来越想越觉得有问题,当操作大表时,数据库占用的内存都有任何改变,于是
Google
一下才发现也需要手工调整,当然是原因一大堆,想想解释得也合理。于是也及时进行了调整,效果还不错。
这里把调整的步骤讲给大家,希望有同样问题的朋友参考参考:
1.
打开操作系统启动时
PAE
配置项;
步骤:找到系统安装的引导位置的目录下找到
boot.ini
文件,默认是隐藏只读的,找到
Windows2003
启动配置,在后面加上空格
/PAE ,
保存;重启
示例所示:
multi(0)disk(0)rdisk(0)partition(2)/%systemroot%= "Windows Server 2003 Datacenter Edition " /PAE
multi(0)disk(0)rdisk(0)partition(2)/%systemroot%= "Windows Server 2003 Datacenter Edition " /PAE
2
.打开组策略,添加数据库运行所依赖的帐号有权进行锁定内存;大部分情况下,数据库运行的帐号都是系统级的帐号,如
administrator
或者是
administrators
组的帐号,当然也有处于安全考虑的给了一个运行权限很小的帐号,只能运行数据库;所以必须授权该帐号具有锁定内存的权限;
步骤:开始
->
运行
->gpedit.msc->
组策略
->
计算机设置
->windows
配置
->
安全设置
->
本地策略
->
用户权限分配
->
锁定内存页
->
本地安全策略设置
->
添加
->
选择运行的帐号或者组;
3.
重启服务器,远程维护的要查看
boot.ini
是否正确,切起切起,否则后果可想而知;
4.
配置数据库,重启后操作系统已支持大内存了,但数据库还是需要配置的;默认都未配置;执行以下命令即可
步骤:打开查询分析器,进行以下操作,这里以
3G
内存给数据库使用为例进行操作,这几条命令分别含义是:打开高级选项,打开锁定内存,设置最大内存,最好是一起完成;
sp_configure
'show advanced options', 1
RECONFIGURE
GO
sp_configure
'awe enabled', 1
RECONFIGURE
GO
sp_configure
'max server memory', 3072
RECONFIGURE
GO
5.
重启数据库,当配置项手工配置好后,需要重启数据库,这时你就发现
SQLSERVER2005
数据库占用多大的内存了,再看看数据库的属性也改变了,
AWE
上打了勾,最大内存改为
3G
了,以前是很大的,忽悠我
^-^
注意点:
1.
当操作系统
PAE
未打开时,配置数据库是没有用的,数据库会提示出错,告诉你内存锁定系统当前不支持;
2.
Boot.ini
文件是隐藏的,只读的,先修改属性后再操作;
3.
数据库重启前最好先备份,防患于未然;
4.
不知是操作系统问题,还是盗版的问题,我的
SQLSERVER2005
在进程任务管理器只有
180M
,经过和朋友确认,才知是显示错误,其实也不知是错误还是就是这样的,我想有一种可能,那就是系统把
3G
划给数据库使用后,自己只有
1G
,他只知道自己分配的那一块给数据库系统
180M
吧;
5.
数据库的内存设置有一个合理限度,根据服务器业务多少确定,但不能超过物理内存,我觉得至少得留
500M
给系统吧,另外如果系统中还有其他的服务在使用也要考虑进去,否则系统内存不足,引起磁盘页面交换频繁,反而使性能有所下降。
2008-03-11
LiveCoach