MSSQL 2014: non è possibile aprire il database perché alcuni file sono inaccessibili o perché la memoria o lo spazio su disco è insufficiente

Microsoft.SQLServer.2014.Database_cannot_be_opened_due_to_inaccessible_files_or_insufficient_memory_or_disk_space._See_the_SQL_Server_errorlog_for_details_1_5_Rule (Rule)

L'errore 945 si verifica quando il database è contrassegnato come IsShutdown. Questo avviene quando non è possibile recuperare il database a causa di file mancanti o di altri errori delle risorse che, in genere, sono facilmente risolvibili.

Knowledge Base article:

Riepilogo

L'errore 945 si verifica quando il database è contrassegnato come IsShutdown. Questo avviene quando non è possibile recuperare il database a causa di file mancanti o di altri errori delle risorse che, in genere, sono facilmente risolvibili.

Soluzioni

Verificare innanzitutto che il database sia contrassegnato come IsShutdown utilizzando DATABASEPROPERTY.

Determinare quindi la causa dell'errore consultando il log degli errori ed eseguire l'azione appropriata secondo quanto indicato di seguito.

Verificare innanzitutto che il database sia contrassegnato come IsShutdown utilizzando DATABASEPROPERTY.

Determinare quindi la causa dell'errore consultando il log degli errori ed eseguire l'azione appropriata secondo quanto indicato di seguito.

In caso di mancanza di uno o più file di dati o di log:

In caso di mancanza di spazio nel log:

Il database viene recuperato e portato online tramite questa procedura.

In caso di mancanza di spazio per i dati:

Il database viene recuperato e portato online tramite questa procedura.

In caso di memoria insufficiente:

L'errore dovuto a memoria insufficiente può verificarsi quando viene eseguito il recupero contemporaneo di numerosi database. Ripetendo l'operazione, è possibile risolvere il problema:

Se la ripetizione dell'operazione non è sufficiente, è consigliabile liberare memoria.

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Abilitato

Abilita o disabilita il flusso di lavoro.

Priorità

Definisce la priorità dell'avviso.

1

Gravità

Definisce la gravità dell'avviso.

1

Element properties:

TargetMicrosoft.SQLServer.2014.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID945
Event Source$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2014: non è possibile aprire il database perché alcuni file sono inaccessibili o perché la memoria o lo spazio su disco è insufficiente
{0}
Event LogApplication
CommentMom2014ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';MOM2014GroupID={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.2014.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="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2014ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';MOM2014GroupID={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="SQL2014Core!Microsoft.SQLServer.2014.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.2014.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>