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
2
3
4
5
[boot loader]    
timeout=8
default=multi(0)disk(0)rdisk(0)partition(1)
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)="Microsoft Windows 2000 Advanced Server" /3G /fastdetect

多了一个 /3G 参数。这个参数的作用,就是让windows启动时,将自己的内核及支持程序装载到内存地址 0xC0000000 到 0xFFFFFFFF 之间,给应用程序留出3G的空间来。

设置SQL Server使用大容量内存步骤:

  1. 安装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

  1. 在 C:\boot.ini 档中设定 /PAE 参数,然后重开机,让OS抓到内存

备注: PAE(物理地址扩展)

例子:multi(0)disk(0)rdisk(0)partition(1)=”Microsoft Windows 2000 Advanced Server” /fastdetect /PAE

  1. 在SQL Query Analyzer中输入下列指令,来启动SQL Server的AWE功能(这里设定内存为6G):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sp_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
  2. 在控制面板–管理工具–本地安全策略(或域安全策略中)–安全设置–本机策略—用户权限分配右边窗口中选取“内存中锁定页面”,在其设定画面新增用户或组,加入MSSQLSERVER服务的启动账号(比如administrator)。

  3. 在命令提示符号下输入

    1
    2
    secedit /refreshpolicy machine_policy /enforce 或是 gpupdate (gpupdate 针对windows xp, 2003)  
    secedit /refreshpolicy machine_policy /enforce (针对windows2000)

    Windows 2000 接受此请求后,会向用户显示以下文本:

来自域的组策略传播已为这台计算机触发。要完成传播并使新策略生效,需要几分钟的时间。请检查应用程序日志。

Windows 2003 下执行 gpupdate 后的结果。

C:>gpupdate

正在刷新策略…

用户策略刷新完成。

计算机策略刷新完成。

要检查在策略处理中的错误,请查阅事件日志。

  1. 重新启动SQL Server服务使设定生效

  2. 在SQL Query Analyzer中输入下列指令,来关闭SQL Server的allow updates功能:

    1
    2
    3
    sp_configure 'allow updates', 0   
    RECONFIGURE WITH OVERRIDE
    GO
  3. 开启任务管理器看看内存是否跟设定值一样

术语解释:

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 集,它使程序能够保留大内存块。保留的内存是非分页的,并且只可以由该程序来使用。


SQL Server 2000 大容量内存设置实现方法
http://anximin.github.io/2021/10/20/SQL-2K-M/
作者
Sylar
发布于
2021年10月20日
许可协议