Delen via


Een mirrordatabase voorbereiden voor spiegeling (SQL Server)

Van toepassing op:SQL Server

Voordat een databasespiegelingsessie kan worden gestart, moet de eigenaar of systeembeheerder van de database ervoor zorgen dat de gespiegelde database is gemaakt en gereed is voor spiegeling. Om een nieuwe gespiegelde database te maken, moet u minimaal een volledige back-up van de hoofd-database maken, gevolgd door een logboekback-up, en beide herstellen op de mirrorserver met behulp van WITH NORECOVERY.

In dit onderwerp wordt beschreven hoe u een gespiegelde database in SQL Server voorbereidt met behulp van SQL Server Management Studio of Transact-SQL.

Voordat u begint

Behoeften

  • De principal- en mirrorserverexemplaren moeten worden uitgevoerd op dezelfde versie van SQL Server. Hoewel het mogelijk is dat de mirrorserver een hogere versie van SQL Server heeft, wordt deze configuratie alleen aanbevolen tijdens een zorgvuldig gepland upgradeproces. In een dergelijke configuratie loopt u het risico op een automatische failover, waarbij gegevensverplaatsing automatisch wordt onderbroken omdat gegevens niet naar een lagere versie van SQL Server kunnen worden verplaatst. Raadpleeg Gespiegelde exemplaren upgraden voor meer informatie.

  • De principal- en mirrorserverexemplaren moeten worden uitgevoerd op dezelfde editie van SQL Server. Zie Edities en ondersteunde functies van SQL Server 2022 voor informatie over ondersteuning voor databasespiegeling in SQL Server.

  • De database moet het volledige herstelmodel gebruiken.

    Zie Het herstelmodel van een database (SQL Server) of sys.databases (Transact-SQL) en ALTER DATABASE (Transact-SQL) voor meer informatie.

  • De naam van de gespiegelde database moet gelijk zijn aan de naam van de principal-database.

  • De gespiegelde database moet de status HERSTELLEN hebben zodat spiegeling werkt. Wanneer u een gespiegelde database voorbereidt, moet u RESTORE WITH NORECOVERY gebruiken voor elke herstelbewerking. Minimaal moet u MET NORECOVERY een volledige back-up van de principal-database herstellen, gevolgd door alle volgende logboekback-ups.

  • Het systeem waarin u van plan bent om de gespiegelde database te maken, moet over een schijfstation beschikken met voldoende ruimte om de gespiegelde database te bewaren.

Beperkingen en beperkingen

  • U kunt de hoofddatabases, msdb, temp of modelsysteemdatabases niet spiegelen.

  • U kunt een database die deel uitmaakt van een AlwaysOn-beschikbaarheidsgroep niet spiegelen.

Aanbevelingen

  • Gebruik een zeer recente volledige databaseback-up of een recente differentiële databaseback-up van de principal-database.

  • Als een back-uptaak voor logboeken zeer vaak wordt uitgevoerd op de principal-database, moet u de back-uptaak mogelijk uitschakelen totdat spiegeling is gestart.

  • Indien mogelijk moet het pad (inclusief de stationsletter) van de gespiegelde database identiek zijn aan het pad van de principale database.

    Als de bestandspaden moeten verschillen, bijvoorbeeld als de hoofddatabase zich op schijf F: bevindt, maar het spiegelsysteem geen F:-schijf heeft, moet u de optie VERPLAATSEN opnemen in de instructie RESTORE.

    Belangrijk

    Als u een bestand toevoegt tijdens een spiegelingssessie zonder dat dit van invloed is op de sessie, moet het pad van het bestand op beide servers bestaan. Als u de databasebestanden verplaatst bij het maken van de gespiegelde database, kan een latere bewerking voor het toevoegen van bestanden in de gespiegelde database mislukken en ervoor zorgen dat spiegeling wordt onderbroken. Zie voor informatie over hoe om te gaan met een mislukte bewerking voor het maken van bestanden, Problemen met de configuratie van databasespiegeling (SQL Server) oplossen.

  • Als de principale database volledige-tekstcatalogi heeft, raden we u aan Databasespiegeling en Full-Text Catalogi (SQL Server) te raadplegen.

  • Voor een productiedatabase maakt u altijd een back-up van een afzonderlijk apparaat.

Veiligheid

BETROUWBAAR is ingesteld op UIT wanneer een back-up van een database wordt gemaakt. Daarom is TRUSTWORTHY altijd UITGESCHAKELD op een nieuwe gespiegelde database. Als de database na een failover betrouwbaar moet zijn, zijn er aanvullende installatiestappen nodig. Zie Een gespiegelde database instellen om de betrouwbare eigenschap (Transact-SQL) te gebruiken voor meer informatie.

Zie Een versleutelde gespiegelde database instellen voor informatie over het inschakelen van automatische ontsleuteling van de hoofdsleutel van de database van een gespiegelde database.

Machtigingen

Database-eigenaar of systeembeheerder.

Een bestaande gespiegelde database voorbereiden om spiegeling opnieuw te starten

Als spiegeling is verwijderd en de gespiegelde database nog steeds de status HERSTELLEN heeft, kunt u spiegeling opnieuw starten.

  1. Maak ten minste één logboekback-up op de principal-database. Zie Back-up maken van een transactielogboek (SQL Server)voor meer informatie.

  2. Gebruik RESTORE WITH NORECOVERY in de gespiegelde database om alle logboekback-ups te herstellen die zijn gemaakt op de principal-database sinds spiegeling is verwijderd. Zie Een back-up van een transactielogboek herstellen (SQL Server) voor meer informatie.

Een nieuwe gespiegelde database voorbereiden

Een gespiegelde database voorbereiden

Opmerking

Zie Voorbeeld (Transact-SQL) verderop in deze sectie voor een Transact-SQL voorbeeld van deze procedure.

  1. Verbinding maken met de hoofdserverinstantie.

  2. Maak een volledige databaseback-up of een differentiële databaseback-up van de hoofddatabase.

  3. Normaal gesproken moet u ten minste één logboekback-up maken op de principal-database. Een logboekback-up is echter mogelijk niet nodig als de database zojuist is gemaakt en er nog geen logboekback-up is gemaakt, of als het herstelmodel zojuist is gewijzigd van SIMPLE in FULL.

  4. Tenzij de back-ups zich op een netwerkstation bevinden dat toegankelijk is vanuit beide systemen, kopieert u de database en logboekback-ups naar het systeem waarop het exemplaar van de mirrorserver wordt gehost.

  5. Verbinding maken met de mirrorserverinstantie.

  6. Maak de gespiegelde database met RESTORE WITH NORECOVERY door de volledige databaseback-up te herstellen en, indien gewenst, de meest recente differentiële databaseback-up naar het mirrorserverexemplaar.

    Opmerking

    Als u de databasebestandsgroep per bestandsgroep herstelt, moet u ervoor zorgen dat u de hele database herstelt.

  7. Gebruik RESTORE WITH NORECOVERY om alle openstaande logboekback-ups of andere back-ups toe te passen op de gespiegelde database.

Voorbeeld (Transact-SQL)

Voordat u een databasespiegelingsessie kunt starten, moet u de gespiegelde database maken. U moet dit doen vlak voordat u de spiegelingssessie start.

In dit voorbeeld wordt de AdventureWorks2022 voorbeelddatabase gebruikt, die standaard gebruikmaakt van het eenvoudige herstelmodel.

  1. Als u databasespiegeling wilt gebruiken met de AdventureWorks2022 database, wijzigt u deze om het volledige herstelmodel te gebruiken:

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
    SET RECOVERY FULL;  
    GO  
    
  2. Nadat u het herstelmodel van de database hebt gewijzigd van SIMPLE naar FULL, maakt u een volledige back-up die kan worden gebruikt om de gespiegelde database te maken. Omdat het herstelmodel zojuist is gewijzigd, wordt de optie WITH FORMAT opgegeven om een nieuwe mediaset te maken. Dit is handig om de back-ups onder het volledige herstelmodel te scheiden van eerdere back-ups die zijn gemaakt onder het eenvoudige herstelmodel. In dit voorbeeld wordt het back-upbestand (C:\AdventureWorks.bak) gemaakt op dezelfde schijf als de database.

    Opmerking

    Voor een productiedatabase moet u altijd een back-up maken van een afzonderlijk apparaat.

    Maak op de hoofdserverinstantie (PARTNERHOST1) als volgt een volledige back-up van de hooffd-database:

    BACKUP DATABASE AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
        WITH FORMAT  
    GO  
    
  3. Kopieer de volledige back-up naar de mirrorserver.

  4. Met RESTORE WITH NORECOVERY herstelt u de volledige back-up naar het exemplaar van de mirrorserver. De herstelopdracht is afhankelijk van of de paden van principal- en mirrordatabases identiek zijn.

    • Als de paden identiek zijn:

      Herstel op het exemplaar van de mirrorserver (op PARTNERHOST5) de volledige back-up als volgt:

      RESTORE DATABASE AdventureWorks   
          FROM DISK = 'C:\AdventureWorks.bak'   
          WITH NORECOVERY  
      GO  
      
    • Als de paden verschillen:

      Als het pad van de gespiegelde database verschilt van het pad van de principale database (bijvoorbeeld wanneer hun stationsletters verschillen), moet voor het maken van de gespiegelde database de herstelbewerking een MOVE-clausule bevatten.

      Belangrijk

      Als de padnamen van de principal- en mirrordatabases verschillen, kunt u geen bestand toevoegen. Dit komt doordat bij het ontvangen van het logboek van de bewerking 'bestand toevoegen', het exemplaar van de mirrorserver probeert het nieuwe bestand op de locatie te plaatsen die door de principale database wordt gebruikt.

      Met de volgende opdracht wordt bijvoorbeeld een back-up van een principal-database hersteld die zich in C:\Program Files\Microsoft SQL Server\MSSQL bevindt. n\MSSQL\Data\ naar een andere locatie, D:\Program Files\Microsoft SQL Server\MSSQL. n\MSSQL\Data, waar de gespiegelde database zich bevindt.

      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. Nadat u de volledige back-up hebt gemaakt, moet u een logboekback-up maken op de principal-database. De volgende Transact-SQL instructie maakt bijvoorbeeld een back-up van het logboek naar hetzelfde bestand dat wordt gebruikt door de voorgaande volledige back-up:

    BACKUP LOG AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
    GO  
    
  6. Voordat u mirroring kunt starten, moet u de vereiste logboekback-up (en eventuele volgende logboekback-ups) toepassen.

    Met de volgende Transact-SQL instructie wordt bijvoorbeeld het eerste logboek hersteld van C:\AdventureWorks.bak:

    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\AdventureWorks.bak'   
        WITH FILE=1, NORECOVERY  
    GO  
    
  7. Als er extra logboekback-ups worden gemaakt voordat u begint met spiegelen, moet u ook al deze logboekback-ups op volgorde herstellen naar de mirrorserver met BEHULP van WITH NORECOVERY.

    Met de volgende Transact-SQL instructie worden bijvoorbeeld twee extra logboeken hersteld van C:\AdventureWorks.bak:

    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  
    

Zie Instellen van databasespiegeling (SQL Server) voor een volledig voorbeeld van hoe je databasespiegeling instelt, security inricht, de gespiegelde database voorbereidt, de partners instelt en een witness toevoegt.

Opvolgen: Na het voorbereiden van een gespiegelde database

  1. Als er extra logboekback-ups zijn gemaakt sinds uw meest recente herstel van het logboek, moet u handmatig elke extra logboekback-up toepassen door RESTORE WITH NORECOVERY te gebruiken.

  2. Start de spiegelingssessie. Zie Een databasespiegelingssessie maken met behulp van Windows-verificatie (SQL Server Management Studio) of een databasespiegelingssessie maken met behulp van Windows-verificatie (Transact-SQL).

  3. Als u de back-uptaak in de principal-database hebt uitgeschakeld, moet u de taak opnieuw inschakelen.

  4. Als de database na een failover betrouwbaar moet zijn, zijn er extra installatiestappen nodig nadat spiegeling is gestart. Zie Een gespiegelde database instellen om de betrouwbare eigenschap (Transact-SQL) te gebruiken voor meer informatie.

Gerelateerde taken

Zie ook

Databasespiegeling (SQL Server)
Transportbeveiliging voor Database Mirroring en Always On Availability Groups (SQL Server)
nl-NL: Het Instellen van Databasespiegeling (SQL Server)
Back-ups maken en Full-Text catalogi en indexen herstellen
Databasespiegeling en Full-Text Catalogi (SQL Server)
Databasespiegeling en -replicatie (SQL Server)
BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
RESTORE-argumenten (Transact-SQL)