Estado de copia de seguridad de base de datos

Microsoft.SQLServer.Linux.Monitor.Database.DBBackupStatus (UnitMonitor)

Este monitor comprueba el estado de la copia de seguridad de la base de datos tal y como informa de ella Microsoft SQL Server. Nota: Esta regla está deshabilitada de manera predeterminada. Use las invalidaciones para habilitarla cuando sea necesario.

Knowledge Base article:

Resumen

Este monitor comprueba la existencia y antigüedad de la copia de seguridad de base de datos devueltas por Microsoft SQL Server. Para ello, se ejecuta una consulta en la base de datos maestra de la instancia de SQL y se devuelve la antigüedad de la copia de seguridad de base de datos.

Causas

Hace demasiado tiempo que no se realiza la copia de seguridad de la base de datos.

Resoluciones

Debe realizar una copia de seguridad de la base de datos para resolver el problema.

Para eliminar este problema en el futuro se recomienda programar una copia de seguridad automatizada según las necesidades de la aplicación y los requisitos empresariales.

Adicional

El monitor de estado de copia de seguridad de la base de datos no tiene ninguna lógica para seguir si la base de datos es una réplica secundaria o no.

Puesto que AOG tiene una lógica de copia de seguridad avanzada que requiere una copia de seguridad de al menos una de las bases de datos implicadas, el monitor puede generar alertas de falsos positivos.

El monitor está deshabilitado de forma predeterminada. Si desea habilitar el escenario de supervisión para su entorno, se recomienda mantener el monitor deshabilitado para todos los servidores que no se usan para almacenar la copia de seguridad de la base de datos.

Externo

Las prácticas recomendadas para las copias de seguridad de base de datos de SQL Server

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Prioridad de la alerta

Define la prioridad de alerta.

Normal

Gravedad de la alerta

Define la gravedad de alerta.

Error

Período de copia de seguridad (días)

Frecuencia de copia de seguridad de destino en días. Se debe definir de acuerdo con el objetivo de punto de recuperación (RPO).

7

Habilitado

Habilita o deshabilita el flujo de trabajo.

Genera alertas.

Define si el flujo de trabajo genera una alerta.

Intervalo (segundos)

Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo.

86400

Hora de sincronización

Hora de sincronización especificada en un formato de 24 horas. Se puede omitir.

 

Tiempo de espera (segundos)

Especifica el tiempo que el flujo de trabajo se puede ejecutar antes de cerrarlo y marcarlo como erróneo.

300

Tiempo de expiración de la conexión de base de datos (segundos)

Se producirá un error en el flujo de trabajo y se registrará un evento si no puede obtener acceso a la base de datos durante el período especificado.

15

Element properties:

TargetMicrosoft.SQLServer.Linux.Database
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Linux.MonitorType.Database.DBBackupStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL en Linux: se debería realizar la copia de seguridad de la base de datos
No se ha realizado una copia de seguridad de la base de datos "{2}" en la instancia de SQL Server "{1}" en el equipo "{0}" desde hace {3} días.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.Database.DBBackupStatus" Accessibility="Public" Enabled="false" Target="SqlDiscL!Microsoft.SQLServer.Linux.Database" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.Database.DBBackupStatus" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Monitor.Database.DBBackupStatus.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='DaysSinceBackup']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Good" MonitorTypeStateID="Good" HealthState="Success"/>
<OperationalState ID="Bad" MonitorTypeStateID="Bad" HealthState="Error"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<Threshold>7</Threshold>
<IntervalSeconds>86400</IntervalSeconds>
<SyncTime/>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>