配置 SQL Server 以便使用 2 GB 以上的物理内存(包括SQL Server 2005)

  1. 云栖社区>
  2. 博客>
  3. 正文

配置 SQL Server 以便使用 2 GB 以上的物理内存(包括SQL Server 2005)

springfe 2008-03-09 22:02:00 浏览281

1.    概要

使用Windows 2000 Server 的操作系统,对于SQL Server而言,需要打开操作系统的3G开关,它才能利用到2G以上的物理内存,否则这些4G以上内存只有2G能够被SQL Server使用到。

      如果服务器上的内存高于4G,请打开操作系统的/3G开关。这样重新启动后,SQL Server将会自动利用大内存来提升数据库的性能,而不再受到2G的内存使用限制!

    使用Windows 2000 Advanced ServerWindows 2000 Datacenter Windows Server 2003如果使用 Boot.ini /PAE 开关和 AWE 启用选项SQL Server 2000 就可以使用4G以上内存。

2.    支持的操作系统版本

l          Windows 2000 Server<?XML:NAMESPACE PREFIX = O />

通常情况下,SQL Server 2000 Enterprise Edition SQL Server 2000 Developer Edition 最多可以使用 2 GB 的物理内存。如果使用 AWE 启用选项,SQL Server 最多可以使用 4 GB 的物理内存。

由于在 Microsoft Windows 2000 Server 上不能使用“物理地址扩展”(PAE),因此无法为 Windows 2000 Server 上的应用程序分配 4 GB 以上的物理内存。

注意:此外,Windows 2000 Server 不能在 Boot.ini 文件中使用 3 GB 开关;

不过,Microsoft Windows 2000 Advanced Server Microsoft Windows Datacenter 版本却可以在 Boot.ini 文件中使用 3 GB 开关。

l          Windows 2000 Advanced ServerWindows 2000 Datacenter Windows Server 2003

32 位寻址模式可以提供的最大物理内存量为 4 GB。所有基于 IA-32 结构的处理器(从 Intel Pentium Pro 开始)都支持一种新的 36 位物理寻址模式,称为“物理地址扩展”(PAE)PAE 允许 Windows 2000 Advanced Server 上最多使用 8 GB 的物理内存,允许 Windows 2000 Datacenter Server 上最多使用 32 GB 的物理内存。这是因为,根据测试,Windows 2000 Datacenter Server 上的内存限制为 32 GBPAE 模式内核需要 Intel 结构的处理器 Pentium Pro(或更高性能的处理器),以及 Windows 2000 Advanced Server Windows 2000 Datacenter

Windows Server 2003 上支持的最大内存为 4 GB。但是,Windows Server 2003 Enterprise Edition 支持 32 GB 的物理 RAM。使用物理地址扩展 (PAE) 功能,Windows Server 2003 Datacenter Edition 可支持 64 GB 的物理内存。

对于下列系统,可以在 Boot.ini 文件中使用 3 GB 开关:

Microsoft Windows Server 2003

Microsoft Windows Server 2003 Enterprise Edition Microsoft Windows Server 2003 Datacenter Edition

SQL Server 2000 Enterprise SQL Server 2000 Developer Edition 都可以使用下列选项:

如果在 SQL Server 中使用 Boot.ini /PAE 开关和 AWE 启用选项,SQL Server 2000 就可以使用 4 GB 以上的内存。没有 /PAE 开关,SQL Server 最多只能使用 3 GB 的内存。

Windows 2000 Data Center 上,要使 AWE 可以使用 16 GB 以上的内存,请确保在 Boot.ini 文件中没有使用 /3GB 开关。如果在 Boot.ini 文件中使用 /3GB 开关,Windows 2000 可能无法正常提供 16 GB 以上的任何内存。

所有 32 位应用程序都有 4 GB 的进程地址空间(32 位地址最多可以映射 4 GB 的内存)。如下图:

<?XML:NAMESPACE PREFIX = V />

3.    SQL Server 2000配置步骤

3.1.  Windows 2000 Server 配置操作系统支持AWE

3.1.1.   修改BOOT.INI文件

我的电脑->C: (如下图)

3.1.2.   启用操作系统3GB开关  

修改boot.ini文件,在启动windows项中添加 /3GB 参数。修改过后的boot.ini文件应该类似以下内容: 

[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" /3GB /fastdetect   

3.1.3.   启用锁定内存页选项(windows)

启用锁定内存页选项

"开始"菜单上单击"运行"子菜单,然后在"打开"框中键入"gpedit.msc"

"组策略"控制台上,展开"计算机配置",然后展开"Windows 设置"

展开"安全设置",然后展开"本地策略"

选择"用户权限分配"复选框。

详细资料窗格中随即显示出策略。

在详细资料窗格中,双击"锁定内存页"

"本地安全策略设置"对话框中,单击"添加"按钮。

"选择用户或组"对话框中,添加有权运行 sqlservr.exe 的帐户。

 

3.1.4.   启用SQL Server AWE支持  

下面的示例说明了如何启用 AWE 并为服务器内存最大值选项配置 3 GB 的限制:

sp_configure 'show advanced options', 1

RECONFIGURE

GO

sp_configure 'awe enabled', 1

RECONFIGURE

GO

sp_configure 'max server memory', 3072

RECONFIGURE

GO

 

3.1.5.   重新启动服务

为了支持 3 GB 的用户模式进程空间,必须将 /3gb 参数添加到 boot.ini 文件中并重新启动计算机,从而使 /3gb 参数生效。设置此参数后,用户应用程序线程可以寻址 3 GB 的进程地址空间,而为操作系统保留 1 GB 的进程地址空间。

 

3.2.  Microsoft Windows Server 2003 Enterprise Edition 配置操作系统支持AWE

3.2.1.   修改BOOT.INI文件

我的电脑->C: (如下图)

3.2.2.   启用操作系统/PAE开关  

如果在 SQL Server 中使用 Boot.ini /PAE 开关和 AWE 启用选项,SQL Server 2000 就可以使用 4 GB 以上的内存。没有 /PAE 开关,SQL Server 最多只能使用 3 GB 的内存。

Windows 2000 Data Center 上,要使 AWE 可以使用 16 GB 以上的内存,请确保在 Boot.ini 文件中没有使用 /3GB 开关。如果在 Boot.ini 文件中使用 /3GB 开关,Windows 2000 可能无法正常提供 16 GB 以上的任何内存。

 

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, <?XML:NAMESPACE PREFIX = ST1 />Enterprise" /noexecute=optout /fastdetect /PAE

3.2.3.   启用锁定内存页选项(windows)

启用锁定内存页选项

"开始"菜单上单击"运行"子菜单,然后在"打开"框中键入"gpedit.msc"

"组策略"控制台上,展开"计算机配置",然后展开"Windows 设置"

展开"安全设置",然后展开"本地策略"

选择"用户权限分配"复选框。

详细资料窗格中随即显示出策略。

在详细资料窗格中,双击"锁定内存页"

"本地安全策略设置"对话框中,单击"添加"按钮。

"选择用户或组"对话框中,添加有权运行 sqlservr.exe 的帐户。

 

3.2.4.   启用SQL Server AWE支持  

下面的示例说明了如何启用 AWE 并为服务器内存最大值选项配置 6 GB 的限制:

sp_configure 'show advanced options', 1

RECONFIGURE

GO

sp_configure 'awe enabled', 1

RECONFIGURE

GO

sp_configure 'max server memory', 6144

RECONFIGURE

GO

3.2.5.   重新启动服务

必须重新启动 SQL Server 2000 实例才能使更改生效。

net stop mssqlserver

net start mssqlserver

这样,SQL 服务启动后,就会把6G的内存给锁定,完全供SQL使用

4.    SQL Server 2005配置步骤

4.1.  Windows Server 2003使用SQL Server 2005概述

SQL Server 2005 支持在 Windows Server 2003 上动态分配 AWE 映射内存。通过允许访问超过在所配置虚拟内存地址空间上设置的限制的可用物理内存,AWE 可扩展 32 位操作系统上运行的应用程序的功能。

启动过程中,SQL Server 仅保留一小部分 AWE 映射内存。需要额外的 AWE 映射内存时,操作系统会动态地将其分配给 SQL Server。同样,如果需要更少的资源,SQL Server 会将 AWE 映射内存返还给操作系统,以供其他进程或应用程序使用。SQL Server 和操作系统之间的这种平衡受到 min server memory max server memory 参数的限制。

Windows Server 2003 中运行 SQL Server 2005 时,无需重新启动 SQL Server 实例,SQL Server 即可响应 max server memory min server memory 配置选项的更改。

Windows Server 2003 下,如果服务器的物理内存小于虚拟内存地址空间上已配置的限制,则该服务器支持动态 AWE 映射内存。在这种情况下使用 AWE 不会对性能产生影响,但添加的物理内存超过虚拟内存地址限制时,可以在不重新启动服务器的情况下使用此物理内存。

4.2.  启用AWE

对于 Windows Server 2003,由于 AWE 映射内存管理是动态的,因此在启动过程中,只分配总可用物理内存的一小部分。

如果已成功启用此选项,当 SQL Server 2005 实例启动时,SQL Server 错误日志中将写入消息“Address Windowing Extensions enabled”。

必须在启用 AWE 之前为 SQL Server 帐户授予 LOCK PAGE IN MEMORY 权限。

awe enabled 选项是一个高级选项。如果使用 sp_configure 系统存储过程来更改该设置,则只有在 show advanced options 设置为 1 时才能更改 awe enabled。必须重新启动 SQL Server 实例,AWE 才会生效。

4.3.  启用锁定内存页选项(windows)

启用锁定内存页选项

"开始"菜单上单击"运行"子菜单,然后在"打开"框中键入"gpedit.msc"

"组策略"控制台上,展开"计算机配置",然后展开"Windows 设置"

展开"安全设置",然后展开"本地策略"

选择"用户权限分配"复选框。

详细资料窗格中随即显示出策略。

在详细资料窗格中,双击"锁定内存页"

"本地安全策略设置"对话框中,单击"添加"按钮。

"选择用户或组"对话框中,添加有权运行 sqlservr.exe 的帐户。

4.4.  启用SQL Server 2005AWE支持

若要启用 AWE,请将 awe enabled 设置为 1。除非指定了 max server memory 的值,否则 SQL Server 将保留几乎所有可用内存,只留下 128 MB 或更少。

如果已成功启用该选项,则当 SQL Server 2000 实例启动时,SQL Server 错误日志中将出现"已启用地址窗口扩展"这条消息。

awe enabled 是高级选项。如果正在使用 sp_configure 系统存储过程更改该设置,则只有

show advanced options 设置为 1 时才能更改 awe enabled

 如下:设定SQL 使用6G的内存

  sp_configure 'show advanced options', 1

  RECONFIGURE

  GO

  sp_configure 'awe enabled', 1

  RECONFIGURE

  GO

  sp_configure 'max server memory', 6144

  RECONFIGURE

  GO

4.5.  重新启动服务

 必须重新启动 SQL Server 2005 实例才能使更改生效。

 net stop mssqlserver

 net start mssqlserver

 这样,SQL 服务启动后,就会把6G的内存给锁定,完全供SQL使用