MSSQL 2016: 无法使用地址窗口扩展,因为未被授予“锁定内存页”特权

Microsoft.SQLServer.2016.AWE__Could_not_use_Address_Windowing_Extensions_because__lock_pages_in_memory__privilege_was_not_granted_5_Rule (Rule)

当 SQL Server 因未被授予“锁定内存页”特权而无法使用地址窗口扩展时,规则将触发警报。

Knowledge Base article:

摘要

在为 SQL Server 配置 AWE 之前,必须授予“锁定内存页”权限。

原因

默认情况下,SQL Server 2016 中“锁定内存页”选项设置为 OFF。

解决方法

如果您具有系统管理员权限,则可以使用 Windows 组策略工具(gpedit.msc)手动启用该选项,并将此权限分配给正在运行 SQL Server 的帐户。

“组策略”控制台上,展开“计算机配置”,再展开“Windows 设置”

展开“安全设置”,再展开“本地策略”

选择“用户权限分配”文件夹。

细节窗格中随即显示出策略。

在该窗格中,双击“锁定内存页”

“本地安全策略设置”对话框中,单击“添加”

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

可替代参数

名称

说明

默认值

已启用

启用或禁用工作流。

优先级

定义警报优先级。

1

严重性

定义警报严重性。

2

Element properties:

TargetMicrosoft.SQLServer.2016.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID17179
Event Source$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2016: 无法使用地址窗口扩展(AWE),因为未被授予“锁定内存页”特权
{0}
Event LogApplication
CommentMom2016ID='{D2616971-B256-4F53-A630-48D833A03F5C}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2016.AWE__Could_not_use_Address_Windowing_Extensions_because__lock_pages_in_memory__privilege_was_not_granted_5_Rule" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{D2616971-B256-4F53-A630-48D833A03F5C}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>17179</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2016.AWE__Could_not_use_Address_Windowing_Extensions_because__lock_pages_in_memory__privilege_was_not_granted_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>