Domanda

Ho 3 banche dati (uno principale, uno specchio e un testimone) e sto cercando di rendere questo sistema il più fault tolerant possibile.

Così stavo pensando a fare qualche extra Codding di proteggermi contro la perdita del testimone in alcuni casi.

Voglio tenere traccia di mirroring_state_desc in sys.database_mirroring database, in modo che in caso cambia da sincronizzazione con DISCONNESSO saprò la sua non è sicuro per promuoverlo al capitale, ma se cambia da sincronizzato al scollegato è ok per promuoverlo (sto lavorando in modalità ad alta sicurezza)

Il mio primo approccio era quello di avere un servizio di Windows personalizzati monitorare questa tabella ... ma facendo che sto facendo un sacco di inutili seleziona al database.

Così ho pensato, forse un trigger sarebbe quello che sto cercando ... ma ho bloccato con solo

CREATE TRIGGER modify_state ON SYS.database_mirroring FOR INSERT, UPDATE

Ho bisogno di aiuto per il resto della sintassi.

Ho un database state_db con 2 colonne (last_state e current_state), e ho bisogno di essere in grado di controllare lo stato attuale, con l'uno nella mia state_db. se sono diverse Voglio modificare il last_state con current_state e current_state con lo stato fresco leggere da sys.database_mirroring

La mia domanda è, posso utilizzare un trigger per l'inserimento e la modifica per mantenere un database ausiliario con gli ultimi 2 stati di sys.database_mirroring ?? e se sì, come posso farlo?

È stato utile?

Soluzione

Non è possibile creare trigger su oggetti di sistema. In modo da andare giù per il sentiero che stai pensando, non è possibile.

La cosa migliore per la tolleranza aumento difetto è quello di spostare il database testimone al suo hardware del server proprio, (non solo un altro esempio sulla stessa macchina, anche se SQL Server consente di impostare in su in questo modo), separare sia dal preside e lo specchio.

In questo modo si è altamente improbabile che un fallimento che tira fuori sia il database principale e il tuo specchio, allo stesso tempo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top