SQL Server 2000 大容量内存设置实现方法
标准的 32 位地址最多可映像 4 GB 内存。因此,32 位进程的标准地址空间限制为 4 GB。
默认情况下,在 32 位 Microsoft Windows 操作系统中,将为操作系统保留 2 GB 空间,另外 2 GB 空间可由应用程序使用。
在32bit操作系统中,一般SQL Server可以使用的内存不到2G,就算开启了3GB开关,也使用不到3G。现在,内存容量超过4GB的服务器越来越多,如果要SQL SERVER2000可以使用大容量的内存,我们需要做以下设定。
如何开启操作系统3G开关
修改boot.ini文件(要在C盘下看到boot.ini需要在勾掉“隐藏受保护的操作系统文件”),在启动windows项中添加 /3G 参数。修改过后的boot.ini文件应该类似以下内容:
1 |
|
多了一个 /3G 参数。这个参数的作用,就是让windows启动时,将自己的内核及支持程序装载到内存地址 0xC0000000 到 0xFFFFFFFF 之间,给应用程序留出3G的空间来。
设置SQL Server使用大容量内存步骤:
- 安装SQL Server2000,升级至SP4 (8.00.2039),并打上AWE补丁SQL2000-KB899761-v8.00.2040
SQL2000-KB899761-v8.00.2040-x86x64-chs.exe sql2000-kb948110-v8.00.2050-x86x64-chs.exe
- 在 C:\boot.ini 档中设定 /PAE 参数,然后重开机,让OS抓到内存
备注: PAE(物理地址扩展)
例子:multi(0)disk(0)rdisk(0)partition(1)=”Microsoft Windows 2000 Advanced Server” /fastdetect /PAE
在SQL Query Analyzer中输入下列指令,来启动SQL Server的AWE功能(这里设定内存为6G):
1
2
3
4
5
6
7
8
9
10
11
12sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
sp_configure 'max server memory', 6000
RECONFIGURE
GO
sp_configure 'allow updates', 1
RECONFIGURE WITH OVERRIDE
GO在控制面板–管理工具–本地安全策略(或域安全策略中)–安全设置–本机策略—用户权限分配右边窗口中选取“内存中锁定页面”,在其设定画面新增用户或组,加入MSSQLSERVER服务的启动账号(比如administrator)。
在命令提示符号下输入
1
2secedit /refreshpolicy machine_policy /enforce 或是 gpupdate (gpupdate 针对windows xp, 2003)
secedit /refreshpolicy machine_policy /enforce (针对windows2000)Windows 2000 接受此请求后,会向用户显示以下文本:
来自域的组策略传播已为这台计算机触发。要完成传播并使新策略生效,需要几分钟的时间。请检查应用程序日志。
Windows 2003 下执行 gpupdate 后的结果。
C:>gpupdate
正在刷新策略…
用户策略刷新完成。
计算机策略刷新完成。
要检查在策略处理中的错误,请查阅事件日志。
重新启动SQL Server服务使设定生效
在SQL Query Analyzer中输入下列指令,来关闭SQL Server的allow updates功能:
1
2
3sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE
GO开启任务管理器看看内存是否跟设定值一样
术语解释:
PAE(Physical Address Extension):
PAE 是 IA32 处理器新增的功能,可以寻址 4 GB 以上的物理内存。Microsoft Windows 2000 Advanced Server、Microsoft Windows 2000 Datacenter Server、Microsoft Windows Server 2003,企业版和 Microsoft Windows Server 2003,Datacenter Edition 可以使用 PAE 寻址超过 4 GB 的物理内存。如果要启用 PAE,请使用 Boot.ini 档案中的 /PAE 参数。
AWE(Address Windowing Extensions):
AWE 是一个 API 集,它使程序能够保留大内存块。保留的内存是非分页的,并且只可以由该程序来使用。