データベースが IsShutdown とマークされていると、エラー 945 が返されます。これは、不足しているファイル、または通常は容易に修正できる他のリソース エラーが原因で、データベースが復旧できない場合に発生します。
データベースが IsShutdown とマークされていると、エラー 945 が返されます。これは、不足しているファイル、または通常は容易に修正できる他のリソース エラーが原因で、データベースが復旧できない場合に発生します。
最初に、DATABASEPROPERTY を使用して、データベースが IsShutdown とマークされていることを確認します。
次に、エラー ログを参照してエラーの原因を特定し、次に示すようなアクションを行います。
ファイルを使用できるようにし、ALTER DATABASE を使用してデータベースを OFFLINE にします。
ALTER DATABASE を使用してデータベースを ONLINE にします
最初に、DATABASEPROPERTY を使用して、データベースが IsShutdown とマークされていることを確認します。
次に、エラー ログを参照してエラーの原因を特定し、次に示すようなアクションを行います。
1 つ以上のデータまたはログ ファイルが不足している場合
ファイルを使用できるようにし、ALTER DATABASE を使用してデータベースを OFFLINE にします。
ALTER DATABASE を使用してデータベースを ONLINE にします。
ログ領域が不足している場合
sp_add_log_file_recover_suspect_db() を使用して、別のログ ファイルを追加します。
このプロシージャによって、データベースが復旧し、オンラインになります。
データ領域が不足している場合:
sp_add_data_file_recover_suspect_db() を使用して、別のログ ファイルを追加します。
このプロシージャによって、データベースが復旧し、オンラインになります。
メモリが不足している場合:
複数のデータベースが同時に復旧するときに、メモリ不足のエラーが発生することがあります。操作を再試行すると、問題が解決する場合があります。:
ALTER DATABASE を使用して操作を再試行し、データベースを OFFLINE にします。
ALTER DATABASE を使用してデータベースを ONLINE にします
操作を再試行しても失敗する場合は、メモリを解放することを検討してください。
名前 | 説明 | 既定値 |
有効 | ワークフローを有効または無効にします。 | はい |
優先度 | アラートの優先順位を定義します。 | 1 |
重要度 | アラートの重大度を定義します。 | 1 |
Target | Microsoft.SQLServer.2016.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 945 | ||
Event Source | $Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2016ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2016.Database_cannot_be_opened_due_to_inaccessible_files_or_insufficient_memory_or_disk_space._See_the_SQL_Server_errorlog_for_details_1_5_Rule" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';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>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>945</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.2016.Database_cannot_be_opened_due_to_inaccessible_files_or_insufficient_memory_or_disk_space._See_the_SQL_Server_errorlog_for_details_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>