Disponibilidad de la base de datos de distribución desde un suscriptor

Microsoft.SQLServer.2016.Replication.Monitor.DistributionDBAvailabilityFromSubscriber (UnitMonitor)

Este monitor comprueba la disponibilidad de la base de datos de distribución desde el suscriptor.

Knowledge Base article:

Resumen

El suscriptor no es capaz de acceder a su base de datos de distribución.

Configuración

Para usar esta supervisión, es necesario agregar privilegios de administrador en "Disponibilidad del distribuidor de replicación de Microsoft SQL Server desde el perfil de identificación de supervisión de suscriptor".

Los nombres de base de datos en la cadena de lista de nombres de base de datos deben estar separados por comas.

Un nombre de base de datos debe cumplir con los requisitos de una de las siguientes clases de identificadores:

1) Normal

- Una letra tal y como se define en Unicode Standard 3.2. La definición de letras de Unicode incluye caracteres latinos de la a a la z, de la A a la Z y también caracteres de letras de otros idiomas.

- El guion bajo (_)

- letras tal y como se define en Unicode Standard 3.2;

- números decimales del latín básico o de otros scripts;

- la arroba (@), signo de dólar ($), signo de número (#) o guion bajo (_).

2) Delimitado: puede contener cualquier carácter y debe estar delimitado por comillas dobles o corchetes.

3) Sin delimitar: puede ser casi cualquier secuencia de caracteres y debe cumplir con los siguientes requisitos:

Cualquier nombre de base de datos que pertenezca a cualquiera de las clases anteriores debe tener entre 1 y 128 caracteres, sin incluir los caracteres delimitadores.

Para obtener más información, consulte la página https://msdn.microsoft.com/en-us/library/ms175874.

Causas

Esta situación se puede deber a:

Resoluciones

Compruebe las siguientes condiciones:

Adicional

Si hay un firewall en la topología de replicación, puede leer el siguiente artículo: http://support.microsoft.com/kb/164667/

Para agregar la clave LocalAccountTokenFilterPolicy, ejecute lo siguiente:

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Prioridad de alerta

Define la prioridad de la alerta.

Normal

Gravedad de alerta

Define la gravedad de la alerta.

Error

CredSSP habilitado

Indica que CredSsp está habilitado antes de ejecutar este flujo de trabajo. Lo dejará habilitado tras la ejecución

Nombres de bases de datos

Lista de nombres de bases de datos que se deben comprobar, delimitadas por el símbolo «,»

 

Habilitado

Habilita o deshabilita el flujo de trabajo.

No

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.

300

Puerto

Puerto del servicio WSMan

5985

Prefijo

Nombre del servicio WSMan

wsman

Nombres de suscriptores

Lista de nombres de suscriptores que deben utilizarse como origen de comprobación, delimitados por el símbolo «|»

 

Tiempo de sincronización

Tiempo de sincronización

 

Tiempo de espera (segundos)

Especifica el tiempo durante el que se puede ejecutar el flujo de trabajo antes de que se cierre y se marque como error.

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

Transporte

Prefijo del protocolo para tener acceso al servicio WSMan

http

Element properties:

TargetMicrosoft.SQLServer.2016.Replication.Distributor
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.Replication.MonitorType.DistributorAvailabilityFromSubscriberMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Replicación de MSSQL2016: La base de datos de distribución no está disponible desde el suscriptor.
La base de datos de distribución no está disponible desde los suscriptores ({0})
{1}
RunAsMicrosoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Replication.Monitor.DistributionDBAvailabilityFromSubscriber" Accessibility="Public" Enabled="false" Target="MS2RD!Microsoft.SQLServer.2016.Replication.Distributor" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.Replication.MonitorType.DistributorAvailabilityFromSubscriberMonitorType" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Replication.Monitor.DistributionDBAvailabilityFromSubscriber.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Subscriber']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='Message']$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Success" MonitorTypeStateID="Health" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Distributor>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</Distributor>
<Subscriber/>
<Domain>$RunAs[Name="MSRL!Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor"]/Domain$</Domain>
<User>$RunAs[Name="MSRL!Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor"]/UserName$</User>
<Pass>$RunAs[Name="MSRL!Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor"]/Password$</Pass>
<Transport>http</Transport>
<Prefix>wsman</Prefix>
<Port>5985</Port>
<DatabaseNames/>
<CredSspEnabled>true</CredSspEnabled>
<IntervalSeconds>300</IntervalSeconds>
<SqlTimeout>15</SqlTimeout>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>