Vorbereiten einer Spiegeldatenbank auf die Spiegelung (SQL Server)

Gilt für:SQL Server

Vorsicht

Dieses Feature wird in einer zukünftigen Version von SQL Server entfernt. Vermeiden Sie die Verwendung dieses Features in neuer Entwicklungsarbeit, und planen Sie, Anwendungen zu ändern, die derzeit dieses Feature verwenden. Verwenden Sie für hohe Verfügbarkeit stattdessen AlwaysOn-Verfügbarkeitsgruppen.

Wichtig

Datenbankspiegelung in SQL Server ist nicht dasselbe wie die Datenbankspiegelung in Microsoft Fabric. Die Spiegelung in Fabric bietet eine bessere analytische Leistung, die Möglichkeit, Ihren Datenbestand mit OneLake in Fabric zu vereinheitlichen und offenen Zugriff auf Ihre Daten im Delta-Parquet-Format.

Mit dem Feature "Mirroring to Microsoft Fabric" können Sie Ihren vorhandenen Datenbestand kontinuierlich direkt in OneLake in Fabric replizieren, einschließlich Daten aus SQL Server 2016+, Azure SQL-Datenbank, Azure SQL Managed Instance, Cosmos DB, Oracle, Snowflake und weiteren Datenbanken.

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 mit SQL Server Management Studio oder Transact-SQL eine Spiegeldatenbank in SQL Server vorbereiten.

Bevor Sie beginnen

Anforderungen

  • Die Prinzipalserver- und Spiegelserverinstanz müssen unter derselben Version von SQL Serverausgefü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 niedrigeren SQL Server-Version verschoben werden können. Weitere Informationen finden Sie unter Upgrading Mirrored Instances.

  • Die Prinzipalserver- und Spiegelserverinstanz müssen unter derselben Edition von SQL Serverausgeführt werden. Informationen zur unterstützten Datenbankspiegelung in SQL Server finden Sie unter Editionen und unterstützte Funktionen von SQL Server 2022.

  • 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 funktioniert, muss sich die Spiegeldatenbank im Status RESTORING befinden. Beim Vorbereiten einer Spiegeldatenbank müssen Sie bei jedem 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.

  • Das System, in dem Sie die Spiegeldatenbank erstellen möchten, muss über ein Laufwerk verfügen, auf dem genügend Speicherplatz vorhanden ist, um die Spiegeldatenbank zu speichern.

Beschränkungen und Einschränkungen

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

  • Sie können keine Datenbank spiegeln, die einer AlwaysOn-Verfügbarkeitsgruppeangehö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 Laufwerksbuchstabens) der Spiegeldatenbank mit dem Pfad der Primärdatenbank identisch sein.

    Wenn sich die Dateipfade z. B. unterscheiden müssen, wenn sich die Prinzipaldatenbank auf laufwerk "F:" befindet, das Spiegelsystem jedoch kein F:-Laufwerk enthält, müssen Sie die MOVE-Option in die RESTORE ANWEISUNG einschließen.

    Wichtig

    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 daher die Datenbankdateien beim Erstellen der Spiegeldatenbank verschieben, kann ein späterer Vorgang zum Hinzufügen einer Datei in der Spiegeldatenbank fehlschlagen und dazu führen, dass die Spiegelung angehalten wird. Informationen zum Umgang mit einem fehlerhaften Dateierstellungsvorgang finden Sie unter Problembehandlung für die Datenbankspiegelungskonfiguration (SQL Server).

  • Wenn die Prinzipaldatenbank über Volltextkataloge verfügt, empfiehlt sich die Lektüre von Datenbankspiegelung und Volltextkataloge (SQL Server).

  • 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 einer Spiegeldatenbank zur Verwendung der TRUSTWORTHY-Eigenschaft (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.

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 Aufheben der Spiegelung auf der Hauptdatenbank 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

Hinweis

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 neueste differenzielle Datenbanksicherung auf der Spiegelserverinstanz wiederherstellen.

    Hinweis

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

  7. Wenden Sie mit RESTORE WITH NORECOVERY alle ausstehenden Protokollsicherungen oder Sicherungen auf die Spiegeldatenbank an.

Beispiel (Transact-SQL)

Bevor Sie eine Datenbank-Spiegelungssitzung starten können, müssen Sie die Spiegeldatenbank erstellen. Sie sollten dies direkt vor dem Start der Spiegelungssitzung tun.

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

  1. Um die Datenbankspiegelung mit der Datenbank AdventureWorks2025 zu verwenden, stellen Sie sie auf das vollständige Wiederherstellungsmodell um:

    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.

    Hinweis

    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. Mit RESTORE WITH NORECOVERY stellen Sie die vollständige Sicherung 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.

      Wichtig

      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.

      Mit dem folgenden Befehl wird beispielsweise eine Sicherung einer Prinzipaldatenbank wiederhergestellt, die sich in C:\Program Files\Microsoft SQL Server\MSSQL befindet. n\MSSQL\Data\ an einem anderen Speicherort, D:\Program Files\Microsoft SQL Server\MSSQL. n\MSSQL\Data, wobei sich die Spiegeldatenbank befindet.

      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. Die folgende Transact-SQL-Anweisung beispielsweise sichert das Protokoll in derselben Datei, 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.

    Beispielsweise stellt die folgende Transact-SQL-Anweisung das erste Transaktionsprotokoll aus C:\AdventureWorks.bak wieder her:

    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.

    Beispielsweise stellt die folgende Transact-SQL-Anweisung zwei weitere Transaktionsprotokolle aus C:\AdventureWorks.bak wieder her:

    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 Anzeigen des Sicherheitssetups, das Vorbereiten der Spiegeldatenbank, das Einrichten der Partner und das Hinzufügen eines Zeugen finden Sie unter Einrichten der Datenbankspiegelung (SQL Server).

Nächste Schritte nach der Vorbereitung einer Spiegeldatenbank

  1. Wenn seit dem letzten RESTORE LOG-Vorgang zusätzliche Protokollsicherungen durchgeführt wurden, müssen Sie alle zusätzlichen Protokollsicherungen 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. Wenn die Datenbank nach einem Failover vertrauenswürdig sein muss, sind nach dem Start der Spiegelung zusätzliche Einrichtungsschritte erforderlich. Weitere Informationen finden Sie unter Einrichten einer Spiegeldatenbank zur Verwendung der TRUSTWORTHY-Eigenschaft (Transact-SQL).

Verwandte Aufgaben

Siehe auch

Datenbankspiegelung (SQL Server)
Transportsicherheit für Datenbankspiegelung und Always On-Verfügbarkeitsgruppen (SQL Server)
Einrichten der Datenbankspiegelung (SQL Server)
Sichern und Wiederherstellen von Volltextkatalogen und Indizes
Datenbankspiegelung und Volltextkataloge (SQL Server)
Datenbankspiegelung und Replikation (SQL Server)
BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
RESTORE Argumente (Transact-SQL)