Questo monitoraggio controlla la disponibilità del database di distribuzione dal Sottoscrittore.
Il sottoscrittore non riesce a raggiungere il proprio database di distribuzione.
Per usare questo monitoraggio è necessario aggiungere privilegi di amministratore a "Profilo RunAs per il monitoraggio della disponibilità del server di distribuzione della replica di Microsoft SQL Server dal Sottoscrittore".
I nomi di database nella stringa di elenco di nomi di database devono essere separati da virgole.
Un nome di database deve rispettare i requisiti di una delle classi identificatore seguenti:
1) Normale
Il primo carattere deve essere uno dei seguenti:
- Una lettera in base alla definizione dello standard Unicode 3.2. La definizione Unicode di lettere include i caratteri latini dalla a alla z, dalla A alla Z e i caratteri di lettera di altre lingue.
- Il carattere di sottolineatura (_)
I caratteri successivi possono includere i seguenti:
- Lettere in base alla definizione dello standard Unicode 3.2.
- Numeri decimali dai caratteri latini di base o da altri script.
- Il simbolo di chiocciola (@), il simbolo di dollaro ($), il simbolo di cancelletto (#) o il carattere di sottolineatura (_).
2) Delimitato - Può contenere qualsiasi carattere e deve essere delimitato da virgolette doppie o parentesi quadre.
3) Non delimitato - Può corrispondere a quasi tutte le sequenze di caratteri e deve rispettare i requisiti successivi:
Non deve appartenere a una delle classi sottostanti.
Non deve contenere la virgola.
Non deve iniziare o finire con spazi vuoti.
Un nome di database appartenente a una delle classi precedenti deve avere una lunghezza compresa tra 1 e 128 caratteri, esclusi i caratteri delimitatori.
Per altre informazioni, vedere la pagina https://msdn.microsoft.com/en-us/library/ms175874.
Questa situazione può essere causata da:
Problema di connettività tra il server di distribuzione e il sottoscrittore.
Le autorizzazioni per l'agente di distribuzione della replica o per l'account dell'agente di merge non sono sufficienti per accedere al database di distribuzione.
Non è possibile configurare CredSSP
Verificare le condizioni seguenti:
Assicurarsi che l'accesso alla rete tra il server di distribuzione e il Sottoscrittore sia configurato correttamente.
Assicurarsi che i firewall tra il server di distribuzione e il Sottoscrittore siano configurati per consentire l'accesso tramite le porte usate da Microsoft SQL Server.
Assicurarsi che il servizio Gestione remota Windows (WS-Management) sia in esecuzione nel Sottoscrittore.
Assicurarsi che le eccezioni del firewall siano configurate per consentire le connessioni per Gestione remota Windows tramite HTTP in entrata.
Assicurarsi che l'account dell'agente di replica sia configurato correttamente per accedere sia al server di distribuzione che al Sottoscrittore.
Assicurarsi che gli account dell'agente di distribuzione e dell'agente di merge siano aggiunti al ruolo predefinito db_owner nei database di distribuzione e Sottoscrittore.
Assicurarsi che l'account di monitoraggio sia incluso nel gruppo Administrators locale nel server di distribuzione e nei Sottoscrittori.
Assicurarsi che la chiave del Registro di sistema seguente sia presente nel server di distribuzione e nei Sottoscrittori: "LocalAccountTokenFilterPolicy"=dword:00000001 in [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system]
Se nella topologia di replica è presente un firewall, vedere l'articolo seguente: http://support.microsoft.com/kb/164667/
Per aggiungere la chiave LocalAccountTokenFilterPolicy, procedere nel modo seguente:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
Nome | Descrizione | Valore predefinito |
Priorità avviso | Definisce la priorità dell'avviso. | Normale |
Gravità avviso | Definisce la gravità dell'avviso. | Errore |
CredSsp abilitato | Indica che CredSsp è stato abilitato prima dell'esecuzione di questo flusso di lavoro. Verrà lasciato abilitato dopo l'esecuzione | Sì |
Nomi di database | Elenco di nomi per i database da controllare, delimitato dal simbolo ',' |
|
Abilitato | Abilita o disabilita il flusso di lavoro. | No |
Genera avvisi | Definisce se il flusso di lavoro genera un avviso. | Sì |
Intervallo (secondi) | Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro. | 300 |
Porta | Porta del servizio WS-Management | 5985 |
Prefisso | Nome del servizio WS-Management | WS-Management |
Nomi dei sottoscrittori | Elenco di nomi di sottoscrittori da usare come origine di controllo, delimitato dal simbolo '|' |
|
Ora di sincronizzazione | Ora di sincronizzazione |
|
Timeout (secondi) | Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito. | 300 |
Timeout per la connessione di database (secondi) | Il flusso di lavoro avrà esito negativo e registrerà un evento se non riesce ad accedere al database durante il periodo specificato. | 15 |
Trasporto | Prefisso del protocollo per accedere al servizio WS-Management | http |
Target | Microsoft.SQLServer.2008.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.2008.Replication.MonitorType.DistributorAvailabilityFromSubscriberMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor |
<UnitMonitor ID="Microsoft.SQLServer.2008.Replication.Monitor.DistributionDBAvailabilityFromSubscriber" Accessibility="Public" Enabled="false" Target="MS2RD!Microsoft.SQLServer.2008.Replication.Distributor" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.Replication.MonitorType.DistributorAvailabilityFromSubscriberMonitorType" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.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>