Controllo dello stato mirroring del database in C #
Domanda
esigenze applicative # Il nostro C per connettersi a SQL 2005 e 2008 basi di dati e controllare ciò che lo stato attuale del mirroring del database è (ad es. È abilitato, sospesa, in pausa, scollegato, ecc). Ci sono proprietà in cui posso controllare questo?
Tutte le nostre banche dati che vengono a specchio non hanno alcun testimone e failover manuale (mirroring sincrono).
Molto apprezzato se qualcuno può aiutare me o puntare a una certa documentazione, ricerche di Google non si rivolgono a molto su questo.
Soluzione
Lo stato attuale è mostrato nella sys.database_mirroring
:
SELECT mirroring_state
FROM sys.database_mirroring
WHERE database_id = DB_ID('...');
Altri suggerimenti
Il articolo MSDN qui descritte tutte le stored procedure di sistema che verrà vi darà le informazioni necessarie
È possibile anche recuperare o aggiornare la stato attuale eseguendo il Sistema sp_dbmmonitorresults memorizzata procedura.
Un non-ovvia differenza tra l'utilizzo dei sp_dbmmonitorresults e utilizzando la tabella sys.database_mirroring che è in risposta di Remus è delle autorizzazioni necessarie
diritti necessari per sys.database_mirroring
Secondo l'articolo MSDN Remo con riferimenti a
Per visualizzare la riga per un database di master o tempdb, è necessario eseguire essere il proprietario del database o avere almeno ALTER qualsiasi database o visualizzare qualsiasi un'autorizzazione a livello di server di database o Autorizzazione CREATE DATABASE nel database master. Per vedere non NULL valori su un database mirror, è necessario essere un membro del sysadmin ruolo del server
diritti necessari per sp_dbmmonitorresults
Secondo il precedente citato MSDN articolo il mirroring di SP
componenti del server sysadmin di ruolo, e gli utenti che sono stati aggiunti a il dbm_monitor fisso ruolo di database