Übersicht von Mirroring:
Mirroring wird in erster Linie zur Erhöhung der Datenbankverfügbarkeit realisiert. Ähnliche Versand Spiegelung loggt ist auch auf pro Datenbank Basis umgesetzt. Die Datenbankspiegelung unterhält zwei Kopien einer einzigen Datenbank, die auf verschiedenen Instanzen von SQL Server Database Engine (Server-Instanzen) befinden müssen. Typischerweise befinden sich diese Server-Instanzen auf Computern an verschiedenen Standorten. Eine Serverinstanz dient die Datenbank-Clients (der Hauptserver), während die andere Serverinstanz fungiert als heiß oder Warm-Standby-Server (der Spiegel-Server).
Voraussetzungen für die Datenbankspiegelung
1. Stellen Sie sicher, dass die beiden Partner, das ist der Hauptserver und Spiegelserver laufen die gleiche Version von Microsoft SQL Server 2005. Die Partner benötigen entweder SQL Server 2005 Standard Edition, SQL Server 2005 Enterprise Edition oder SQL Server 2005 Developer Edition .
2. Wenn Sie einen Zeugen verwenden, stellen Sie sicher, dass SQL Server 2005 auf dem System installiert ist. Der Zeuge kann auf jedem zuverlässigen Computersystem ausführen, die SQL Server 2005 Standard Edition, Enterprise Edition, Workgroup Edition, SQL Server 2005 Developer Edition oder Express Edition unterstützt.
3. SQL 2005 SP1 oder höher Version ist für Mirroring erforderlich
4. Die Hauptdatenbank muss in der vollständigen Wiederherstellungsmodell sein. Protokolldatensätze, die von Bulk-protokollierte Operationen führen kann, nicht auf die Spiegeldatenbank gesendet werden.
5. Stellen Sie sicher, dass der Spiegelserver genügend Speicherplatz für die Spiegeldatenbank hat.
ALTER DATABASE [Adventure] SAFETY FULL SET
An diesem Punkt wird die Spiegelung automatisch gestartet, und die Haupt- und Mirror-Servern synchronisiert.
Database Mirroring Katalog Aufrufe:
Eine Datenbank-Spiegelungssitzung besteht aus der Beziehung zwischen dem Partner ausgebildet ist, dient und möglicherweise den Zeugenserver. Jede der beteiligten Server hält einige Metadaten über die Sitzung und den aktuellen Zustand der Datenbanken.
* Sys.database_mirroring -> liefert Informationen über Haupt- und Spiegel
* Sys.database_mirroring_witnesses -> liefert Informationen über Zeugenserver
Alle Metadaten für Datenbank erforderlich Spiegelung (insbesondere die Spiegelung Failover-LSN und Partner-Server-Namen) werden von den Spiegeln Partnern gehalten. Der Zeuge hält nur Daten, die für ihre Rolle als Zeuge in einem High Availability-Modus, insbesondere Anzahl der Rolle Sequenz, die die Anzahl der Rollenwechsel in der Session-Tracks.
Die Datenbankspiegelung Staaten und Übergang:
Datenbank Zustände für jeden Server werden während der Datenbankspiegelungssitzung gehalten, auf jedem Partner-Server aufgezeichnet und von der sys.database_mirroring Katalogsicht ausgewiesen. Die mirroring_state Spalte gibt eine Zahl für den Staat und die mirroring_state_desc Spalte gibt den Namen für den Staat. Statusinformationen über den Zeugen ist auch aus der gleichen Katalogsicht ausgewiesen.
Zusätzlich zu den Zuständen für jede Datenbank berichtet, gibt es drei Sätze, die bei der Beschreibung der Server und Datenbanken in der Datenbankspiegelung beteiligt nützlich sind.
1. Exposed - Die Daten auf dem Haupt ausgesetzt ist, wenn es Transaktionen verarbeitet, aber keine Log-Daten werden an den Spiegel gesendet. Wenn eine Haupt Datenbank ausgesetzt wird, ist es mit Benutzerverbindungen und die Verarbeitung von Transaktionen aktiv. Es werden jedoch keine Log-Einträge werden auf der Spiegeldatenbank gesendet werden, und wenn der Auftraggeber ausfallen sollte, wird der Spiegel keine der Transaktionen aus dem Haupt haben von dem Punkt der Auftraggeber den exponierten Zustand eingetreten. Auch kann das Transaktionsprotokoll des Auftraggebers nicht abgeschnitten werden, so dass die Protokolldatei unbegrenzt wachsen wird.
2. Kann die Datenbank nicht dienen - Wenn ein Haupt Server keine Benutzerverbindungen zulässt auf die Datenbank und alle Transaktionen verarbeitet werden. Wenn ein Zeuge gesetzt worden ist, wenn der Hauptserver nicht ein Quorum mit einem anderen Server bilden kann, wird es aufhören, die Datenbank dient. Es wird nicht mehr Benutzerverbindungen und Transaktionen auf der Prinzipaldatenbank erlauben, und werden alle aktuellen Benutzer trennen. Sobald es wieder ein Quorum bilden kann, wird es zurückgeben, die Datenbank zu dienen.
3. Isoliert - Ein Server getrennt wird, wenn es nicht von den anderen Servern in der Datenbank-Spiegelungssitzung in Verbindung treten können, und sie können it.A Server sein kann, funktionsfähig, aber Kommunikationsleitungen sind nach unten zwischen ihm und den beiden anderen Servern in der Datenbankspiegelungssitzung nicht kontaktieren . In diesem Fall werde nennen wir den Server getrennt. Wenn ein Zeuge gesetzt worden ist, dann, wenn der Hauptserver getrennt wird, wird es nicht mehr in der Lage sein, um die Datenbank zu dienen, weil es keine Server in der Sitzung ist, mit dem er ein Quorum bilden.
Wenn Sicherheit voll ist, tritt der Haupt erste der Synchronisierungs-Zustand und sobald es mit dem Spiegel synchronisiert, geben beide Partner den synchronisierten Zustand. Wenn Sicherheit ausgeschaltet ist, beginnen die Partner-Datenbanken mit dem synchronisierenden Zustand. Sobald der Spiegel gefangen hat, geht der Zustand zu synchronisierenden und bleibt dort, unabhängig davon, wie weit dahinter. Für beide Sicherheitseinstellungen, wenn die Sitzung angehalten oder es Redo-Fehler auf dem Spiegel, tritt der Auftraggeber den Suspend-Zustand. Wenn der Spiegel nicht mehr verfügbar ist, wird der Auftraggeber den entkoppelten Zustand ein.