Stato del database

Microsoft.SQLServer.2005.Database.DBStatusMonitor (UnitMonitor)

Questo monitoraggio controlla lo stato del database come riportato da Microsoft® SQL Server™.

Knowledge Base article:

Riepilogo

Questo monitoraggio controlla lo stato del database come riportato da Microsoft® SQL Server™. Questa operazione viene effettuata eseguendo una query nel database master dell'istanza SQL e restituendo lo stato del database. Se si riceve un avviso generato da questo monitoraggio, è richiesto l'intervento dell'utente per riportare il database allo stato operativo.

Cause

Uno stato di tipo non integro indica che il database SQL Server™ non è attualmente disponibile. Tutti gli stati, ad eccezione dello stato ONLINE, determineranno uno stato di tipo non integro. Gli stati possibili vengono descritti in dettaglio di seguito.

Stato del database SQL

Descrizione

Stato di integrità MOM

ONLINE

Il database è disponibile per l'accesso. Il filegroup primario è online sebbene sia possibile che la fase di annullamento del recupero non sia stata completata.

VERDE

OFFLINE

Il database non è disponibile. Un database viene portato offline a seguito di un'azione esplicita da parte dell'utente e rimane tale finché l'utente non interviene. È ad esempio possibile che il database sia stato portato offline per consentire lo spostamento di un file su un nuovo disco. In tal caso verrà portato nuovamente online dopo il completamento dell'operazione di spostamento.

ROSSO

RECOVERY PENDING

SQL Server™ ha rilevato un errore correlato a una risorsa durante il recupero. Il database non è danneggiato, tuttavia i file potrebbero risultare mancanti oppure limitazioni relative alle risorse di sistema ne potrebbero impedire l'avvio. Il database non è disponibile. Per risolvere il problema che ha causato l'errore e consentire il completamento del processo di recupero, è necessario un ulteriore intervento da parte dell'utente.

ROSSO

SUSPECT

Almeno il filegroup primario è sospetto e potrebbe essere danneggiato. Non è possibile recuperare il database durante l'avvio di SQL Server™. Il database non è disponibile. Per risolvere il problema, è necessario l'intervento dell'utente.

ROSSO

EMERGENCY

L'utente ha modificato il database e impostato lo stato su EMERGENCY. Il database è in modalità utente singolo e può corretto o ripristinato. Il database è contrassegnato come READ_ONLY, la registrazione è disabilitata e l'accesso è limitato ai soli membri del ruolo predefinito del server sysadmin. Lo stato EMERGENCY viene utilizzato principalmente per la risoluzione dei problemi. È ad esempio possibile impostare lo stato EMERGENCY per un database contrassegnato come sospetto in modo da consentire all'amministratore di sistema di accedere in sola lettura al database. Solo i membri del ruolo predefinito del server sysadmin possono impostare lo stato EMERGENCY per un database.

ROSSO

RESTORING

È in corso il ripristino di uno o più file del filegroup primario oppure il ripristino di uno o più file secondari viene eseguito offline. Il database non è disponibile.

GIALLO

RECOVERING

È in corso il recupero del database. Il processo di recupero è uno stato temporaneo. Il database verrà portato automaticamente online se il recupero ha esito positivo. Se invece ha esito negativo, il database verrà contrassegnato come sospetto. Il database non è disponibile.

GIALLO

Per trovare lo stato esatto che è stato riportato per il database, esaminare il contesto della modifica o dell'avviso relativo allo stato.

Soluzioni

È possibile tentare di riportare online il database per risolvere il problema. A tale scopo, eseguire la seguente attività:

Impostazione database sullo stato online

Risorse esterne

Per ulteriori informazioni su SQL Server™, vedere il sito Web all'indirizzo

http://www.microsoft.com/sql

Element properties:

TargetMicrosoft.SQLServer.2005.Database
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2005.DBStatus
RemotableTrue
AccessibilityPublic
Alert Message
Database offline
Il database {2} nell'istanza di SQL Server {1} sul computer {0} è in stato offline/recupero in sospeso/sospetto/in emergenza
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2005.Database.DBStatusMonitor" Accessibility="Public" Enabled="true" Target="SQL2005Core!Microsoft.SQLServer.2005.Database" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2005.DBStatus" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2005.Database.DBStatusMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Good" MonitorTypeStateID="Good" HealthState="Success"/>
<OperationalState ID="Bad" MonitorTypeStateID="Bad" HealthState="Error"/>
<OperationalState ID="NeitherGoodNorBad" MonitorTypeStateID="NeitherGoodNorBad" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<ConnectionString>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</DatabaseName>
<IntervalSeconds>3600</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>