Dieser Monitor überprüft die Verfügbarkeit der Verteilungsdatenbank vom Abonnenten.
Der Abonnent kann seine Verteilungsdatenbank nicht erreichen.
Um diesen Monitor zu verwenden, müssen Administratorberechtigungen in "Verteilerverfügbarkeit der Microsoft SQL Server-Replikation aus Abonnentenüberwachung – ausführendes Profil" hinzugefügt werden.
Datenbanknamen in der Liste der Datenbanknamen sollten durch Kommas getrennt werden.
Ein Datenbankname muss die Anforderungen einer der folgenden Bezeichnerklassen erfüllen:
1) Regulär
Das erste Zeichen muss eines der folgenden sein:
– Ein Buchstabe gemäß Definition durch Unicode-Standard 3.2. Die Unicode-Definition von Buchstaben umfasst lateinische Buchstaben von a bis z und von A bis Z sowie Buchstaben aus anderen Sprachen.
– Unterstrich (_)
Nachfolgende Zeichen dürfen Folgendes enthalten:
– Buchstaben gemäß Definition durch Unicode-Standard 3.2
- Dezimalzahlen aus Skripts vom Typ "Standardlateinisch" oder anderen Skripts;
– At-Zeichen (@), Dollarzeichen ($), Nummernzeichen (#) oder Unterstrich (_)
2) Mit Trennzeichen: Kann beliebige Zeichen enthalten und sollte durch doppelte Anführungszeichen oder eckige Klammern getrennt werden.
3) Ohne Trennzeichen: Kann praktisch jede beliebige Zeichenfolge enthalten und sollte diese Anforderungen erfüllen:
Darf keiner der nachstehenden Klassen angehören
Darf kein Komma enthalten
Darf nicht mit einem Leerzeichen beginnen oder auf ein Leerzeichen enden
Die Namen von Datenbanken, die einer der oben aufgeführten Klassen angehören, dürfen zwischen 1 und 128 Zeichen umfassen, Trennzeichen nicht eingeschlossen.
Weitere Informationen finden Sie unter https://msdn.microsoft.com/en-us/library/ms175874.
Diese Situation wird ggf. verursacht durch:
Ein Verbindungsproblem zwischen dem Verteiler und dem Abonnenten.
Unzureichende Berechtigungen für das Konto des Replikationsverteilungs-Agents oder des Merge-Agents für den Zugriff auf die Verteilungsdatenbank.
Keine Möglichkeit zum Konfigurieren von CredSSP
Überprüfen Sie die folgenden Bedingungen:
Stellen Sie sicher, dass der Netzwerkzugriff zwischen dem Verteiler und dem Abonnenten ordnungsgemäß konfiguriert ist.
Stellen Sie sicher, dass Firewalls zwischen dem Verteiler und dem Abonnenten so konfiguriert sind, dass der Zugriff auf die von Microsoft SQL Server verwendeten Ports zulässig ist.
Stellen Sie sicher, dass der Windows-Remoteverwaltungsdienst (WS-Management) auf dem Abonnenten ausgeführt wird.
Stellen Sie sicher, dass Firewallausnahmen so konfiguriert sind, dass Verbindungen für die Windows-Remoteverwaltung über HTTP-In zulässig sind.
Stellen Sie sicher, dass das Konto des Replikations-Agents ordnungsgemäß und so konfiguriert ist, dass der Zugriff auf den Verteiler und den Abonnenten erfolgen kann.
Stellen Sie sicher, dass die Konten des Verteilungs-Agents und des Merge-Agents der festen Rolle "db_owner" für die Verteilungs- und die Abonnentendatenbanken hinzugefügt werden.
Stellen Sie sicher, dass sich das Überwachungskonto in der Gruppe "Lokale Administratoren" auf dem Verteiler und den Abonnenten befindet.
Stellen Sie sicher, dass der folgende Registrierungsschlüssel auf dem Verteiler und den Abonnenten vorhanden ist: "LocalAccountTokenFilterPolicy"=dword:00000001 in [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system]
Wenn Ihre Replikationstopologie eine Firewall aufweist, können Sie den folgenden Artikel lesen: http://support.microsoft.com/kb/164667/
Führen Sie Folgendes aus, um den LocalAccountTokenFilterPolicy-Schlüssel hinzuzufügen:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
Name | Beschreibung | Standardwert |
Warnungspriorität | Definiert die Warnungspriorität. | Normal |
Warnungsschweregrad | Definiert den Warnungsschweregrad. | Fehler |
CredSsp aktiviert | Gibt an, dass "CredSsp" vor der Ausführung dieses Workflows aktiviert wird. Die Aktivierung bleibt nach der Ausführung bestehen. | Ja |
Datenbanknamen | Die Liste der Namen für Datenbanken, die überprüft werden sollen, getrennt durch das Zeichen ",". |
|
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Nein |
Generiert Benachrichtigungen. | Definiert, ob der Workflow eine Warnung generiert. | Ja |
Intervall (Sekunden) | Das periodische Intervall in Sekunden, in dem der Workflow ausgeführt werden soll. | 300 |
Port | Port des wsman-Diensts | 5985 |
Präfix | Name des wsman-Diensts | wsman |
Abonnentennamen | Die Liste der Namen von Abonnenten, die als Überprüfungsquelle verwendet werden sollen, getrennt durch das Zeichen "|". |
|
Synchronisierungszeit | Synchronisierungszeit |
|
Timeout (Sekunden) | Gibt die Zeit an, die der Workflow ausgeführt werden darf, bevor er geschlossen und als fehlgeschlagen markiert wird. | 300 |
Timeout für Datenbankverbindung (Sekunden) | Es tritt ein Fehler beim Workflow auf, und ein Ereignis wird registriert, wenn der Workflow nicht innerhalb des angegebenen Zeitraums auf die Datenbank zugreifen kann. | 15 |
Transport | Das Präfix des Protokolls für den Zugriff auf den wsman-Dienst. | 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>