Abbiamo dozzine di server principali e mirror corrispondenti, la maggior parte funziona bene, tuttavia 1 di loro si comporta in modo strano. In particolare, sp_dbmmonitorresults
proc restituisce tutte le colonne come NULL per un determinato database di principi mentre sp_dbmmonitorresults
sul mirror restituisce informazioni valide:
Ora, ho una vaga idea di quale sia stata la causa; quando il principio e i server mirror dovevano essere configurati, le impostazioni regionali erano errate sul primario (l'ora era corretta ma utilizzava una regione +4 (America ecc.), la regione temporale veniva corretta su GMT +0 DOPO l'installazione del mirroring (scuola ragazzo errore lo so, ma c'est la vie!)
Modifica: 19/12/2012
Oggi ho rimosso il mirroring, cancellato le copie sul mirror e reinstallato il mirroring, tuttavia questo non ha risolto il problema! Farò una taglia su questa domanda per cercare di arrivare alla fine di questo.
Per confermare, se corro EXEC sp_dbmmonitorresults @database_name = 'ProScript'
manualmente su ciascun server restituisce NULL per la maggior parte dei valori sul primario ma restituisce perfettamente sul mirror, come mostrato:
Quando funzionava su primario:
Zoom: fare clic per la versione a dimensione intera
Quando è corso sullo specchio:
Zoom: fare clic per la versione a dimensione intera
Come puoi vedere, i tempi sono attuali e il database è sincronizzato ma log_generation_rate, unsent_log, send_rate ecc. Sono tutti NULL sul primario?
Entrambi i server hanno il processo di monitoraggio in esecuzione ogni minuto con exec sys.sp_dbmmonitorupdate
un passaggio di processo ecc.
Guardando la fonte di sys.sp_dbmmonitorupdate, prende questi valori da sys.dm_os_performance_counters
- quindi se eseguo quanto segue sul mirror:
SELECT counter_name ,
cntr_value
FROM sys.dm_os_performance_counters
WHERE instance_name = 'ProScript'
AND counter_name IN ( N'Log Send Queue KB', N'Log Bytes Sent/sec', N'Redo Queue KB', N'Redo Bytes/sec', N'Transaction Delay', N'Log Bytes Flushed/sec', N'Transactions/sec' )
Ottengo buoni risultati:
Tuttavia, se eseguo lo stesso SQL sul primario non ci sono righe!
Ciò suggerirebbe che la sys.dm_os_performance_counters
tabella non viene popolata per il mirroring? Cosa lo causerebbe ???