Este monitor comprueba la disponibilidad de la base de datos de distribución desde el suscriptor.
El suscriptor no es capaz de acceder a su base de datos de distribució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
El primer carácter debe ser uno de los siguientes:
- 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 (_)
Los caracteres siguientes pueden incluir lo siguiente:
- 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:
no debe pertenecer a una de las siguientes clases;
no debe contener comas;
no debe comenzar o finalizar con ningún carácter de espacio en blanco.
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.
Esta situación se puede deber a:
Un problema de conectividad entre el distribuidor y el suscriptor.
El agente de mezcla o de distribución de replicación no dispone de permisos suficientes para acceder a la base de datos de distribución.
Imposibilidad de configurar CredSSP
Compruebe las siguientes condiciones:
Asegúrese de que el acceso a redes entre el distribuidor y el suscriptor está configurado correctamente.
Asegúrese de que todos los firewalls entre el distribuidor y el suscriptor están configurados para permitir acceso en los puertos que usa Microsoft SQL Server.
Asegúrese de que el servicio Administración remota de Windows (WS-Management) se está ejecutando en el suscriptor.
Asegúrese de que las excepciones de firewall están configuradas para permitir conexiones para la Administración remota de Windows mediante HTTP-In.
Asegúrese de que la cuenta del agente de replicación está configurada correctamente para tener acceso tanto al distribuidor como al suscriptor.
Asegúrese de que las cuentas del agente de distribución y del agente de mezcla se agregan al rol fijo db_owner en las bases de datos de distribución y del suscriptor.
Asegúrese de que la cuenta de supervisión está en el grupo de administradores locales en el distribuidor y en los suscriptores.
Asegúrese de que la siguiente clave del Registro está presente en el distribuidor y en los suscriptores: "LocalAccountTokenFilterPolicy"=dword:00000001 en [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system]
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
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 | Sí |
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. | Sí |
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 |
Target | Microsoft.SQLServer.2016.Replication.Distributor | ||
Parent Monitor | System.Health.AvailabilityState | ||
Category | AvailabilityHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2016.Replication.MonitorType.DistributorAvailabilityFromSubscriberMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor |
<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>