Delen via


Databasespiegeling en Momentopnamen (SQL Server)

Van toepassing op:SQL Server

U kunt profiteren van een gespiegelde database die u onderhoudt voor beschikbaarheidsdoeleinden om rapportage te offloaden. Als u een gespiegelde database wilt gebruiken voor rapportage, kunt u een momentopname van de database maken in de gespiegelde database en aanvragen voor clientverbindingen omschakelen naar de meest recente momentopname. Een momentopname van een database is een statische, alleen-lezen, transactieconsistente momentopname van de brondatabase, zoals deze bestond op het moment dat de momentopname werd gemaakt. Als u een momentopname van een database wilt maken in een gespiegelde database, moet de database de gesynchroniseerde mirroringstatus hebben.

In tegenstelling tot de gespiegelde database zelf is een momentopname van een database toegankelijk voor clients. Zolang de mirror-server met de hoofdserver communiceert, kunt u clients instrueren verbinding te maken met een momentopname. Omdat een momentopname van een database statisch is, zijn nieuwe gegevens niet beschikbaar. Als u relatief recente gegevens beschikbaar wilt maken voor uw gebruikers, moet u periodiek een nieuwe momentopname van de database maken en toepassingen binnenkomende clientverbindingen naar de nieuwste momentopname laten leiden.

Een nieuwe momentopname van een database is bijna leeg, maar deze groeit in de loop van de tijd naarmate er meer en meer databasepagina's voor het eerst worden bijgewerkt. Omdat elke momentopname van een database op deze manier stapsgewijs groeit, verbruikt elke momentopname van de database zoveel resources als een normale database. Afhankelijk van de configuraties van de mirrorserver en principal-server, kan het hebben van een overmatig aantal momentopnamen van een database op een gespiegelde database de prestaties van de principal-database verminderen. Daarom raden we u aan slechts enkele relatief recente momentopnamen op uw spiegeldatabases te bewaren. Normaal gesproken moet u, nadat u een vervangende momentopname hebt gemaakt, binnenkomende query's omleiden naar de nieuwe momentopname en de eerdere momentopname verwijderen nadat de huidige query's zijn voltooid.

Opmerking

Zie Database Snapshots (SQL Server) voor meer informatie over databasemomentopnamen.

Als de rol wordt overgeschakeld, worden de database en de bijbehorende momentopnamen opnieuw opgestart, waardoor gebruikers tijdelijk de verbinding verbreken. Daarna blijven de momentopnamen van de database op het serverexemplaar waar ze zijn gemaakt, wat de nieuwe hoofd-database is geworden. Gebruikers kunnen de momentopnamen blijven gebruiken na de failover. Hierdoor wordt echter een extra belasting op de nieuwe principal-server geplaatst. Als de prestaties in uw omgeving een probleem zijn, raden we u aan een momentopname te maken op de nieuwe gespiegelde database wanneer deze beschikbaar is, clients omleiden naar de nieuwe momentopname en alle momentopnamen van de database verwijderen uit de voormalige gespiegelde database.

Opmerking

Overweeg replicatie voor een toegewezen rapportageoplossing die goed wordt uitgeschaald. Zie SQL Server-replicatie voor meer informatie.

Example

In dit voorbeeld worden momentopnamen gemaakt op een gespiegelde database.

Stel dat de database van een databasespiegelingssessie is AdventureWorks2025. In dit voorbeeld worden drie database-snapshots gemaakt op de gespiegelde kopie van de AdventureWorks-database, die zich op de F-schijf bevindt. De momentopnamen hebben de naam AdventureWorks_0600, AdventureWorks_1200en AdventureWorks_1800 om hun geschatte aanmaaktijden te identificeren.

  1. Maak de eerste momentopname van de database op de spiegel van AdventureWorks2025.

    CREATE DATABASE AdventureWorks_0600  
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_0600.SNP')  
       AS SNAPSHOT OF AdventureWorks2022  
    
  2. Maak de tweede momentopname van de database op de spiegel van AdventureWorks2025. Gebruikers die nog steeds gebruikmaken AdventureWorks_0600 , kunnen deze blijven gebruiken.

    CREATE DATABASE AdventureWorks_1200  
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1200.SNP')  
       AS SNAPSHOT OF AdventureWorks2022  
    

    Op dit moment kunnen nieuwe clientverbindingen programmatisch worden omgeleid naar de meest recente momentopname.

  3. Maak de derde momentopname op de spiegel AdventureWorks2025. Gebruikers die nog steeds AdventureWorks_0600 of AdventureWorks_1200 gebruiken, kunnen daarmee doorgaan.

    CREATE DATABASE AdventureWorks_1800  
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1800.SNP')  
        AS SNAPSHOT OF AdventureWorks2022  
    

    Op dit moment kunnen nieuwe clientverbindingen programmatisch worden omgeleid naar de meest recente momentopname.

Gerelateerde taken

Zie ook

Momentopnamen van databases (SQL Server)
Clients verbinden met een database mirroringsessie (SQL Server)