Vorbereiten einer Spiegeldatenbank auf die Spiegelung (SQL Server)

Eine Datenbank-Spiegelungssitzung kann erst beginnen, nachdem der Datenbankbesitzer oder Systemadministrator sichergestellt hat, dass die Spiegeldatenbank erstellt und auf die Spiegelung vorbereitet wurde. Zum Erstellen einer neuen Spiegeldatenbank sind zumindest eine vollständige Sicherung der Prinzipaldatenbank sowie eine nachfolgende Protokollsicherung erforderlich, wobei beide auf der Spiegelserverinstanz mithilfe von WITH NORECOVERY wiederhergestellt werden müssen.

In diesem Thema wird beschrieben, wie Sie eine Spiegeldatenbank in SQL Server 2012 mit SQL Server Management Studio oder Transact-SQL vorbereiten.

  • Vorbereitungen:  

    Anforderungen

    Einschränkungen

    Empfehlungen

    Sicherheit

  • So bereiten Sie eine vorhandene Spiegeldatenbank auf das erneute Starten der Spiegelung vor

  • So bereiten Sie eine neue Spiegeldatenbank vor

  • Nachverfolgung:  Nach der Vorbereitung einer Spiegeldatenbank

  • Verwandte Aufgaben

Vorbereitungen

Anforderungen

  • Die Prinzipalserver- und Spiegelserverinstanz müssen unter derselben Version von SQL Server ausgeführt werden. Obwohl der Spiegelserver eine höhere SQL Server-Version aufweisen darf, wird diese Konfiguration nur für einen sorgfältig geplanten Upgradeprozess empfohlen. In einer solchen Konfiguration laufen Sie Gefahr, ein automatisches Failover auszuführen, bei dem die Datenverschiebung automatisch angehalten wird, da Daten nicht zu einer niedrigen SQL Server-Version verschoben werden können. Weitere Informationen finden Sie unter Minimieren der Ausfallzeit von gespiegelten Datenbanken beim Aktualisieren von Serverinstanzen.

  • Die Prinzipalserver- und Spiegelserverinstanz müssen unter derselben Edition von SQL Server ausgeführt werden. Informationen zur Unterstützung der Datenbankspiegelung in SQL Server 2012 finden Sie unter Von den SQL Server 2012-Editionen unterstützte Funktionen.

  • Für die Datenbank muss das vollständige Wiederherstellungsmodell verwendet werden.

    Weitere Informationen finden Sie unter Anzeigen oder Ändern des Wiederherstellungsmodells einer Datenbank (SQL Server) oder sys.databases (Transact-SQL) und ALTER DATABASE (Transact-SQL).

  • Der Name der Spiegeldatenbank muss mit dem Namen der Prinzipaldatenbank übereinstimmen.

  • Damit die Spiegelung funktionsfähig ist, muss sich die Spiegeldatenbank im Wiederherstellungsstatus befinden. Beim Vorbereiten einer Spiegeldatenbank müssen Sie für jeden Wiederherstellungsvorgang RESTORE WITH NORECOVERY verwenden. Stellen Sie mindestens die vollständige Sicherung der Prinzipaldatenbank mit WITH NORECOVERY wieder her, und zwar gefolgt von allen nachfolgenden Protokollsicherungen.

  • Stellen Sie sicher, dass das System, auf dem die Spiegeldatenbank erstellt werden soll, ein Laufwerk mit ausreichend Speicherplatz für die Spiegeldatenbank besitzen muss.

Einschränkungen

  • Die master-, msdb-, temp- oder model-Systemdatenbanken können nicht gespiegelt werden.

  • Sie können keine Datenbank spiegeln, die einer AlwaysOn-Verfügbarkeitsgruppe angehört.

Empfehlungen

  • Verwenden Sie entweder die letzte vollständige Datenbanksicherung oder eine aktuelle differenzielle Datenbanksicherung der Prinzipaldatenbank.

  • Wenn eine sehr häufige Ausführung eines Protokollsicherungsauftrags in der Prinzipaldatenbank geplant ist, müssen Sie möglicherweise den Sicherungsauftrag deaktivieren, bis die Spiegelung beginnt.

  • Wenn möglich sollte der Pfad (einschließlich des Laufwerkbuchstabens) der Spiegeldatenbank mit dem Pfad der Prinzipaldatenbank identisch sein.

    Wenn sich die Pfade unterscheiden müssen, weil sich beispielsweise die Prinzipaldatenbank auf Laufwerk 'F': befindet, auf dem Spiegelsystem jedoch kein Laufwerk F: vorhanden ist, müssen Sie die MOVE-Option in die RESTORE-Anweisung einschließen.

    Wichtiger HinweisWichtig

    Damit eine Datei während einer Spiegelungssitzung hinzugefügt werden kann, ohne dass sich dies auf die Sitzung auswirkt, muss der Pfad der Datei auf beiden Servern vorhanden sein. Wenn Sie die Datenbankdateien bei der Erstellung der Spiegeldatenbank verschieben, kann bei einem später durchgeführten Vorgang zum Hinzufügen einer Datei in der Spiegeldatenbank ein Fehler auftreten oder die Spiegelung wird möglicherweise angehalten. Informationen zum Umgang mit Fehlern bei einem Dateierstellungsvorgang finden Sie unter Problembehandlung für die Datenbankspiegelungskonfiguration (SQL Server).

  • Wenn die Prinzipaldatenbank über Volltextkataloge verfügt, sollten Sie sich den Inhalt unter Datenbankspiegelung und Volltextkataloge (SQL Server) durchlesen.

  • Bei einer Produktionsdatenbank erstellen Sie die Sicherung stets auf einem separaten Medium.

Sicherheit

TRUSTWORTHY wird beim Sichern einer Datenbank auf OFF festgelegt. Deshalb ist TRUSTWORTHY bei einer neuen Spiegeldatenbank immer OFF. Muss die Datenbank nach einem Failover vertrauenswürdig sein, sind zusätzliche Installationsschritte erforderlich. Weitere Informationen finden Sie unter Einrichten der TRUSTWORTHY-Eigenschaft für eine Spiegeldatenbank (Transact-SQL).

Informationen zum Aktivieren der automatischen Verschlüsselung des Datenbank-Hauptschlüssels einer Spiegeldatenbank finden Sie unter Einrichten einer verschlüsselten Spiegeldatenbank.

Berechtigungen

Datenbankbesitzer oder Systemadministrator.

[Nach oben]

So bereiten Sie eine vorhandene Spiegeldatenbank auf das erneute Starten der Spiegelung vor

Wenn die Spiegelung entfernt wurde und die Spiegeldatenbank sich weiterhin im RECOVERING-Status befindet, können Sie die Spiegelung erneut starten.

  1. Erstellen Sie mindestens eine Protokollsicherung auf der Prinzipaldatenbank. Weitere Informationen finden Sie unter Sichern eines Transaktionsprotokolls (SQL Server).

  2. Verwenden Sie auf der Spiegeldatenbank RESTORE WITH NORECOVERY, um alle Protokollsicherungen wiederherzustellen, die seit dem Entfernen der Spiegelung auf der Prinzipaldatenbank erstellt wurden. Weitere Informationen finden Sie unter Wiederherstellen einer Transaktionsprotokollsicherung (SQL Server).

So bereiten Sie eine neue Spiegeldatenbank vor

So bereiten Sie eine Spiegeldatenbank vor

HinweisHinweis

Ein Transact-SQL-Beispiel für diese Prozedur finden Sie weiter unten in diesem Abschnitt unter Beispiel (Transact-SQL).

  1. Stellen Sie eine Verbindung mit einer Prinzipalserverinstanz her.

  2. Erstellen Sie entweder eine vollständige Datenbanksicherung oder eine differenzielle Datenbanksicherung der Prinzipaldatenbank.

  3. In der Regel müssen Sie mindestens eine Protokollsicherung auf der Prinzipaldatenbank erstellen. Eine Protokollsicherung ist jedoch möglicherweise nicht erforderlich, wenn die Datenbank erst kürzlich erstellt wurde und bisher keine Protokollsicherung vorgenommen wurde oder wenn das Wiederherstellungsmodell soeben von SIMPLE in FULL geändert wurde.

  4. Sofern sich die Sicherungen nicht auf einem Netzlaufwerk befinden, auf das von beiden Systemen zugegriffen werden kann, kopieren Sie die Datenbank- und Protokollsicherungen in das System, von dem die Spiegelserverinstanz gehostet wird.

  5. Stellen Sie eine Verbindung zur Spiegelserverinstanz her.

  6. Erstellen Sie mit RESTORE WITH NORECOVERY die Spiegeldatenbank, indem Sie die vollständige Datenbanksicherung und optional die letzte differenzielle Datenbanksicherung auf der Spiegelserverinstanz wiederherstellen.

    HinweisHinweis

    Wenn Sie die Datenbank dateigruppenweise wiederherstellen, stellen Sie sicher, dass Sie die vollständige Datenbank wiederherstellen.

  7. Wenden Sie unter Angabe von RESTORE WITH NORECOVERY alle ausstehenden Protokollsicherungen auf die Spiegeldatenbank an.

Beispiel (Transact-SQL)

Bevor Sie eine Datenbank-Spiegelungssitzung starten können, müssen Sie die Spiegeldatenbank erstellen. Dies sollte vor dem Starten der Spiegelungssitzung erfolgen.

In diesem Beispiel wird die AdventureWorks2012 -Beispieldatenbank verwendet, in der standardmäßig das einfache Wiederherstellungsmodell verwendet wird.

  1. Damit die AdventureWorks2012 -Datenbank für die Datenbankspiegelung verwendet werden kann, ändern Sie sie so, dass das vollständige Wiederherstellungsmodell verwendet wird.

    USE master;
    GO
    ALTER DATABASE AdventureWorks 
    SET RECOVERY FULL;
    GO
    
  2. Nach dem Ändern des Wiederherstellungsmodells der Datenbank von SIMPLE in FULL erstellen Sie eine vollständige Sicherung, die zum Erstellen der Spiegeldatenbank verwendet werden kann. Da das Wiederherstellungsmodell soeben geändert wurde, wird die Option WITH FORMAT angegeben, um einen neuen Mediensatz zu erstellen. Dies ist hilfreich, um die Sicherungen unter dem vollständigen Wiederherstellungsmodell von vorherigen Sicherungen zu trennen, die unter dem einfachen Wiederherstellungsmodell erstellt wurden. Im Rahmen dieses Beispiels wird die Sicherungsdatei (C:\AdventureWorks.bak) auf dem gleichen Laufwerk wie die Datenbank erstellt.

    HinweisHinweis

    Bei einer Produktionsdatenbank sollten Sie die Sicherung stets auf einem separaten Medium erstellen.

    Erstellen Sie auf der Prinzipalserverinstanz (auf PARTNERHOST1) folgendermaßen eine vollständige Sicherung der Prinzipaldatenbank:

    BACKUP DATABASE AdventureWorks 
        TO DISK = 'C:\AdventureWorks.bak' 
        WITH FORMAT
    GO
    
  3. Kopieren Sie die vollständige Sicherung auf den Spiegelserver.

  4. Stellen Sie die vollständige Sicherung mit der Option RESTORE WITH NORECOVERY auf der Spiegelserverinstanz wieder her. Der Wiederherstellungsbefehl hängt davon ab, ob die Pfade der Prinzipal- und Spiegeldatenbanken identisch sind.

    • Wenn die Pfade identisch sind, führen Sie Folgendes aus:

      Stellen Sie auf der Spiegelserverinstanz (auf PARTNERHOST5) folgendermaßen die vollständige Sicherung wieder her:

      RESTORE DATABASE AdventureWorks 
          FROM DISK = 'C:\AdventureWorks.bak' 
          WITH NORECOVERY
      GO
      
    • Wenn die Pfade unterschiedlich sind, führen Sie Folgendes aus:

      Wenn sich der Pfad der Spiegeldatenbank vom Pfad der Prinzipaldatenbank unterscheidet (z. B. wenn die Laufwerkbuchstaben unterschiedlich sind), ist es für das Erstellen der Spiegeldatenbank erforderlich, dass der Wiederherstellungsvorgang eine MOVE-Klausel einschließt.

      Wichtiger HinweisWichtig

      Wenn die Pfadnamen der Prinzipal- und Spiegeldatenbanken unterschiedlich sind, können Sie keine Datei hinzufügen. Der Grund hierfür besteht darin, dass die Spiegelserverinstanz beim Empfangen des Protokolls für das Hinzufügen einer Datei versucht, die neue Datei an dem Speicherort abzulegen, der von der Prinzipaldatenbank verwendet wird.

      So wird beispielsweise über den folgenden Befehl eine Sicherung einer Prinzipaldatenbank in "C:\Programme\Microsoft SQL Server\MSSQL.n\MSSQL\Data\" an einem anderen Speicherort ("D:\Programme\Microsoft SQL Server\MSSQL.n\MSSQL\Data\") erstellt; in diesem Verzeichnis soll die Spiegeldatenbank gespeichert werden.

      RESTORE DATABASE AdventureWorks
         FROM DISK='C:\AdventureWorks.bak'
         WITH NORECOVERY, 
            MOVE 'AdventureWorks_Data' TO 
               'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Data.mdf', 
            MOVE 'AdventureWorks_Log' TO
               'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Log.ldf';
      GO
      
  5. Nach dem Erstellen der vollständigen Sicherung müssen Sie eine Protokollsicherung in der Prinzipaldatenbank erstellen. Über die folgende Transact-SQL-Anweisung wird beispielsweise das Protokoll in derselben Datei gesichert, die auch bei der vorhergehenden vollständigen Sicherung verwendet wurde:

    BACKUP LOG AdventureWorks 
        TO DISK = 'C:\AdventureWorks.bak' 
    GO
    
  6. Sie können erst mit der Spiegelung beginnen, nachdem Sie die erforderliche Protokollsicherung (und alle nachfolgenden Protokollsicherungen) angewendet haben.

    So wird beispielsweise mit der folgenden Transact-SQL-Anweisung das erste Protokoll von C:\AdventureWorks.bak wiederhergestellt:

    RESTORE LOG AdventureWorks 
        FROM DISK = 'C:\AdventureWorks.bak' 
        WITH FILE=1, NORECOVERY
    GO
    
  7. Werden zusätzliche Protokollsicherungen vor dem Beginn der Spiegelung vorgenommen, müssen Sie auch all diese Protokollsicherungen nacheinander mithilfe von WITH NORECOVERY auf dem Spiegelserver wiederherstellen.

    So werden beispielsweise mit der folgenden Transact-SQL-Anweisung zwei zusätzliche Protokolle von C:\AdventureWorks.bak wiederhergestellt:

    RESTORE LOG AdventureWorks 
        FROM DISK = 'C:\AdventureWorks.bak' 
        WITH FILE=2, NORECOVERY
    GO
    RESTORE LOG AdventureWorks 
        FROM DISK = 'C:\AdventureWorks.bak' 
        WITH FILE=3, NORECOVERY
    GO
    

Ein vollständiges Beispiel für das Einrichten der Datenbankspiegelung, das Einrichten der Sicherheit, das Vorbereiten der Spiegeldatenbank, das Einrichten der Partner und das Hinzufügen eines Zeugen finden Sie unter Einrichten einer Sitzung für die Datenbankspiegelung (SQL Server).

[Nach oben]

Nachverfolgung: Nach der Vorbereitung einer Spiegeldatenbank

  1. Wenn seit dem letzten RESTORE LOG-Vorgang Protokollsicherungen vorgenommen wurden, müssen Sie jede zusätzliche Protokollsicherung mit RESTORE WITH NORECOVERY manuell anwenden.

  2. Starten Sie die Spiegelungssitzung. Weitere Informationen finden Sie unter Einrichten einer Datenbank-Spiegelungssitzung mithilfe der Windows-Authentifizierung (SQL Server Management Studio) oder Einrichten einer Datenbank-Spiegelungssitzung mithilfe der Windows-Authentifizierung (Transact-SQL).

  3. Wenn Sie den Sicherungsauftrag für die Prinzipaldatenbank deaktiviert haben, aktivieren Sie den Auftrag erneut.

  4. Muss die Datenbank nach einem Failover vertrauenswürdig sein, sind zusätzliche Installationsschritte nach dem Beginn der Spiegelung erforderlich. Weitere Informationen finden Sie unter Einrichten der TRUSTWORTHY-Eigenschaft für eine Spiegeldatenbank (Transact-SQL).

[Nach oben]

Verwandte Aufgaben

Siehe auch

Verweis

BACKUP (Transact-SQL)

RESTORE (Transact-SQL)

RESTORE-Argumente (Transact-SQL)

Konzepte

Datenbankspiegelung (SQL Server)

Transportsicherheit für Datenbankspiegelung und AlwaysOn-Verfügbarkeitsgruppen (SQL Server)

Einrichten einer Sitzung für die Datenbankspiegelung (SQL Server)

Sichern und Wiederherstellen von Volltextkatalogen und Indizes

Datenbankspiegelung und Volltextkataloge (SQL Server)

Datenbankspiegelung und Replikation (SQL Server)