Gibt es eine einfache Möglichkeit, ein automatisches Failover einer einzelnen gespiegelten Datenbank auszulösen?

8

Ich habe 3 gespiegelte Datenbanken auf einer einzelnen Instanz von sqlserver2008-R2 in einer hohen Sicherheit mit automatischer Failover-Konfiguration. Gibt es eine Möglichkeit, ein automatisches Failover von nur einer Datenbank auszulösen?

Ich möchte simulieren, wo die Datenbank tatsächlich nicht erreichbar ist, und nicht nur auf die Schaltfläche "Failover" von SSMS klicken. Ich kann den Endpunkt auf dem primären stoppen, aber das würde dazu führen, dass alle drei Datenbanken nicht erreichbar sind, da sie denselben Endpunkt verwenden.

Wie deaktiviere ich nur 1 dB?

dat_girl
quelle

Antworten:

3

Wenn Ihre Spiegelung für hohe Sicherheit / automatisches Failover richtig konfiguriert ist, würde ich gerne glauben, dass Sie die Hauptdatenbank damit einfach offline schalten könnten:

alter database YourDb set offline
with rollback immediate
go

Ich glaube, wenn Sie die Datenbank offline schalten, erhalten Sie ein automatisches Failover, ohne die beiden anderen Datenbanken zu beeinträchtigen, für die Sie kein Failover durchführen möchten.

Thomas Stringer
quelle
1
Dies ist die Lösung, von der ich gehofft hatte, dass sie funktionieren würde, aber ich bekomme eine Nachricht 1468, die Datenbank ist an der Spiegelung beteiligt, die Anweisung alter ist fehlgeschlagen.
dat_girl
@dat_girl Kannst du zuerst versuchen, es als Einzelbenutzer mit sofortigem Rollback festzulegen und dann die obige Anweisung versuchen?
Thomas Stringer
Das hat auch nicht funktioniert @shark, der gleiche Fehler. Ich denke, ich müsste die Spiegelung beenden, bevor Änderungen am Status der Datenbank vorgenommen werden können.
dat_girl
2

Damit die Spiegelung sinnvoll ist, benötigen Sie mindestens eine zweite Instanz von SQL-Server: eine für den "Principal" und eine für den "Mirror".

Informationen zum Installieren einer weiteren Instanz finden Sie unter: Instanzkonfiguration .

Damit das automatische Failover wirksam wird, benötigen Sie außerdem eine dritte Instanz (den "Zeugen" ), mit der der Status des Principals und des Spiegels (Verbindung) überwacht wird ("... der Zeuge bedient die Datenbank nicht. Automatische Unterstützung Failover ist die einzige Rolle des Zeugen ").

Informationen zum Einrichten des gesamten Spiegels mit Failover finden Sie unter: Automatisches Failover und synchrone Datenbankspiegelung (Hochsicherheitsmodus) .

Nach Abschluss der Schritte können Sie Ihre Konfiguration testen, indem Sie einen der SQL Server-Dienste (Principal oder Mirror) beenden. Die gespiegelte Datenbank wird dann verfügbar.

Ich empfehle dringend, die Instanzen nicht auf demselben echten Server auszuführen, da dies Sie nicht vor Hardware-Katastrophen schützt!

MjSt
quelle
Danke @vorax, aber ich habe bereits ein Spiegelungssetup und es funktioniert gut. Ich möchte den Dienst auch nicht stoppen, da dadurch alle Datenbanken auf der Instanz heruntergefahren würden. Ich möchte nur aufhören 1.
dat_girl
0

Hmm, alter database whateverdb set partner failoversollte es tun, aber es könnte den gesamten Server mit sich bringen, ich habe keinen zur Hand, mit dem ich experimentieren kann, und die Dokumente scheinen Server und Datenbank ärgerlicherweise austauschbar zu verwenden.

Gaius
quelle