Wenn ich ein Failover für eine Datenbank durchführe, führen auch die anderen, die denselben Spiegelendpunkt verwenden, ein Failover durch?

11

Wir haben zwei Datenbanken für die Spiegelung auf einer einzelnen SQL Server-Instanz eingerichtet: eine Testdatenbank und eine Produktionsdatenbank. Beide werden mit genau denselben Endpunkten auf einen anderen Server gespiegelt.

Wenn ich in die Datenbankeigenschaften für die Testdatenbank gehe und auf die Schaltfläche "Failover" klicke, wird dann auch ein Failover für die Produktionsdatenbank durchgeführt, da beide Datenbanken einen Spiegelendpunkt gemeinsam nutzen und die Eigenschaften der Servernetzwerkadressen identisch sind.

Geben Sie hier die Bildbeschreibung ein

Ich mache mir Sorgen, weil ich beim Einrichten der Spiegelung für die 2. Datenbank nichts Neues konfigurieren musste. Es wurden nur alle vorhandenen Informationen verwendet.

Wenn ich die Schaltfläche "Failover" in den Datenbankeigenschaften verwende, führt dies zu einem Failover aller Datenbanken, die diesen Endpunkt verwenden, oder nur der spezifischen Datenbank, für die ich die Eigenschaften ansehe?

Rachel
quelle

Antworten:

19

Die Antwort von @ mrdenny ist richtig, dass ein Failover über eine Datenbank nicht auch zu einem Failover aller anderen Datenbanken führt.

Nur um einen besseren Überblick darüber zu geben, was ein Datenbankspiegelungsendpunkt ist:

Von BOL ,

Die Verbindungsverwaltung in Microsoft SQL Server 2005 und späteren Versionen basiert auf Endpunkten. Ein Endpunkt ist ein SQL Server-Objekt, mit dem SQL Server über das Netzwerk kommunizieren kann. Für die Datenbankspiegelung benötigt eine Serverinstanz einen eigenen dedizierten Datenbankspiegelungsendpunkt. Alle Spiegelungsverbindungen auf einer Serverinstanz verwenden einen einzelnen Datenbankspiegelungsendpunkt. Dieser Endpunkt ist ein spezieller Endpunkt, der ausschließlich zum Empfangen von Datenbankspiegelungsverbindungen von anderen Serverinstanzen verwendet wird.

Um flexibler zu sein, können Sie T-SQL für das manuelle Failover verwenden:

Schalten Sie die Spiegelung in der Spiegel-DB aus (Unterbrechung der Spiegelung).

ALTER DATABASE <<DB NAME>> SET PARTNER OFF

Setzen Sie den Wiederherstellungs-Mod der DB auf RECOVERY

RESTORE DATABASE <<DB NAME>> WITH RECOVERY

Fix und verwaiste Benutzer, wenn Sie die SQL-Authentifizierung verwenden

EXEC sp_change_users_login Auto_Fix , ‘<<username>>’

BEARBEITEN:

Da Sie den Hochsicherheitsmodus verwenden (gemäß Ihrem Screenshot), können Sie vom Hauptserver aus Folgendes verwenden

ALTER DATABASE <<DB NAME>> SET PARTNER FAILOVER

Dabei erfolgt nur der Rollentausch und die Spiegelungsrichtung wird umgekehrt - das Prinzip wird zum Spiegel und umgekehrt. Beachten Sie, dass SPIEGEL nicht GEBROCHEN ist.

Beachten Sie dies gemäß diesem MSDN-Artikel

Manuelles Failover kann nur vom Hauptserver aus initiiert werden.

Wenn Sie das gesamte Failover automatisieren möchten, lesen Sie Database Mirroring Automation

Kin Shah
quelle
8

Nein es wird nicht. Die Datenbanken werden unabhängig voneinander ausgefallen. Es gibt keinen Schaden, der über die Testdatenbank ausfällt. Die Produktionsdatenbank bleibt dort, wo sie ist.

mrdenny
quelle