Registro mirror vuoto sul primario ma corretto sul mirror


8

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_dbmmonitorresultsproc restituisce tutte le colonne come NULL per un determinato database di principi mentre sp_dbmmonitorresultssul mirror restituisce informazioni valide:

Cronologia sul server principale

Cronologia sul server mirror

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:

inserisci qui la descrizione dell'immagine Zoom: fare clic per la versione a dimensione intera

Quando è corso sullo specchio:

inserisci qui la descrizione dell'immagine 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_dbmmonitorupdateun 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:

inserisci qui la descrizione dell'immagine

Tuttavia, se eseguo lo stesso SQL sul primario non ci sono righe!

Ciò suggerirebbe che la sys.dm_os_performance_counterstabella non viene popolata per il mirroring? Cosa lo causerebbe ???

Risposte:


5

Bene, ci sono voluti mesi ma finalmente ho trovato il problema!

Il sys.dm_os_performance_counters non veniva affatto popolato sul server primario.

Si scopre che i contatori dove non sono stati installati, sono stato in grado di farlo manualmente come segue:

C:\Windows\system32>lodctr "D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSS
QLSERVER\MSSQL\Binn\perf-MSSQLSERVERsqlctr.ini"

Riavviato SQL e boom, la tabella viene ora popolata, comprese le mie statistiche di mirroring.


Deve essere stato divertente da rintracciare.
Zane,

0

Hai provato a rimuovere il processo di monitoraggio del mirroring del database sull'istanza principale e a ricrearlo?

Ciò non comporta la reinizializzazione della sessione di mirroring del database, semplicemente il rilascio e la ricreazione del processo utilizzando le stesse procedure memorizzate utilizzate da SSMS per gestire il monitoraggio del mirroring del database.

Ecco i collegamenti alle voci della documentazione online:

E un breve script di esempio:

    -- you'll need to be connected to the instance as a member
    -- of the sysadmin fixed server role, of course.

    -- delete the database mirroring monitoring job

    exec msdb.dbo.sp_dbmmonitordropmonitoring;
    go

    -- rebuild the database mirroring monitoring job
    -- the procedure accepts an optional parameter
    -- specifying the number of minutes between updates.
    -- the default is 1 minute.

    exec msdb.dbo.sp_dbmmonitoraddmonitoring;
    go

Ciao Koz, questa è stata una delle prime cose che ho provato, temo, l'ho appena provato di nuovo, nessun cambiamento. Mordo solo il proiettile, rimuovo il mirroring e lo aggiungo di nuovo.
HeavenCore,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.