既定では、SQL Server はユーザー接続に必要なメモリを動的に管理します。ただし、接続の最大数は user connections 構成オプションを 0 以外の値に設定することにより固定値に設定できます。user connections オプションを 0 以外の値に設定することはお勧めできません。このオプションが 0 以外の値に設定されており、指定された接続数を超えた場合は、追加のログインを試行すると上記のメッセージが表示されて失敗します。値が 1 に設定されていると、SQL Server インスタンスが起動しないことがあります。
SQL Server が実行中で、その SQL Server に対する既存のシステム管理者接続を持っている場合は、次のコマンドを発行してユーザー接続数のオプションを既定値の 0 (動的) に戻します。
sp_configure 'user connections', 0
go
オーバーライドによる再構成
変更を有効にするために SQL Server インスタンスを再起動する必要があります。
SQL Server が起動しない場合、または既存の接続の 1 つを使用できない場合は、SQL Server インスタンスを最小構成で起動し、ユーザー接続数のオプションを既定値の 0 (動的) に戻す必要があります。
インスタンスがクラスター化されている場合は、SQL Server および SQL Server エージェントがオフラインになっており、作業しているノードが SQL Server ディスク リソースを所有することを確認します。
この SQL Server インスタンスに接続できる MS DTC および他のアプリケーションまたはサービスを停止するかオフラインにします。
次の構文を使用して SQL Server をコマンド プロンプトから起動します (SQL Server のこのインスタンスの binn ディレクトリに切り替える必要があります)。
SQL Server 2008 の既定のインスタンスまたは SQL Server 7.0 の場合: sqlservr.exe -c -f
SQL Server 2008 の名前付きインスタンスの場合: sqlservr.exe -c -f -s {instancename}
SQL Server Management Studio を使用して SQL Server に接続します。SQL Server でシステム管理者の権限を持つログオン プロファイルを必ず使用するようにします。
次のコマンドを実行します。
sp_configure 'user connections', 0 go reconfigure with override
[コマンド プロンプト] ウィンドウで、Ctrl+C キーを押して SQL Server を終了します。「Y」と入力して SQL Server をシャットダウンします。
通常どおり SQL Server を起動します。
名前 | 説明 | 既定値 |
有効 | ワークフローを有効または無効にします。 | はい |
優先順位 | アラートの優先順位を定義します。 | 1 |
重大度 | アラートの重大度を定義します。 | 1 |
Target | Microsoft.SQLServer.2008.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 17809 | ||
Event Source | $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2008ID='{A9344B04-ED2A-4F54-B91D-CC99D35469F1}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Microsoft.SQLServer.SQLDefaultAccount |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2008.Maximum_limit_for_connections_has_been_reached_1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{A9344B04-ED2A-4F54-B91D-CC99D35469F1}';MOM2008GroupID={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" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>17809</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2008.Maximum_limit_for_connections_has_been_reached_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>