Question

J'ai 3 bases de données, (un principal, un miroir et un témoin) et je suis en train de rendre ce système le plus tolérant aux pannes que possible.

Alors je pensais à faire quelques extra Codding pour me protéger contre la perte du témoin dans certains cas.

Je veux garder une trace de mirroring_state_desc dans la base de données sys.database_mirroring, de sorte que dans le cas où il change de SYNCHRONIZING à DISCONNECTED Je sais que pas en sécurité pour le promouvoir au capital, mais si elle change de SYNCHRONISÉE à DISCONNECTED est autorisé à la promotion (je travaille en mode haute sécurité)

Ma première approche était d'avoir une fenêtre sur mesure le service de surveillance de cette table ... mais cela que je fait beaucoup de sélections inutiles à la base de données.

Alors je pensais, peut-être un élément déclencheur serait ce que je cherche ... mais je coincé avec seulement

CREATE TRIGGER modify_state ON SYS.database_mirroring FOR INSERT, UPDATE

Je besoin d'aide pour le reste de la syntaxe.

J'ai une base de données state_db avec 2 colonnes (last_state et current_state), et je dois être en mesure de vérifier l'état actuel, avec celui de mon state_db. si elles sont différentes, je veux modifier le last_state avec current_state et current_state avec l'état frais lire sys.database_mirroring

Ma question est, puis-je utiliser un déclencheur pour insérer et modifier pour maintenir une base de données auxiliaire avec les 2 derniers états de sys.database_mirroring ?? et si oui, comment puis-je faire?

Était-ce utile?

La solution

Vous ne pouvez pas créer des déclencheurs sur les objets du système. Donc, en descendant le chemin que vous pensez est impossible.

Votre meilleur pari pour la tolérance aux pannes d'augmentation est de déplacer votre base de données témoin à son propre matériel de serveur, (pas seulement une autre instance sur la même boîte, même si SQL Server vous permet de le configurer de cette façon), distinct du principal et le miroir.

De cette façon, vous êtes très peu probable d'avoir un échec qui prend à la fois votre principale et votre base de données miroir en même temps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top