Databasspegling och databasögonblicksbilder (SQL Server)

Gäller för:SQL Server

Du kan dra nytta av en speglingsdatabas som du underhåller i tillgänglighetssyfte för att avlasta rapporteringen. Om du vill använda en speglingsdatabas för rapportering kan du skapa en ögonblicksbild av databasen på speglingsdatabasen och dirigera klientanslutningsbegäranden till den senaste ögonblicksbilden. En ögonblicksbild av databasen är en statisk, skrivskyddad, transaktionskonsekvent ögonblicksbild av källdatabasen som den fanns när ögonblicksbilden skapades. Om du vill skapa en databasögonblicksbild på en speglingsdatabas måste databasen vara i synkroniserat speglingstillstånd.

Till skillnad från själva speglingsdatabasen är en databasögonblicksbild tillgänglig för klienter. Så länge speglingsservern kommunicerar med huvudservern kan du dirigera rapportklienter att ansluta till en ögonblicksbild. Observera att eftersom en ögonblicksbild av databasen är statisk är nya data inte tillgängliga. Om du vill göra relativt nya data tillgängliga för dina användare måste du skapa en ny databasögonblicksbild med jämna mellanrum och låta program dirigera inkommande klientanslutningar till den senaste ögonblicksbilden.

En ny databasögonblicksbild är nästan tom, men den växer med tiden när fler och fler databassidor uppdateras för första gången. Eftersom varje ögonblicksbild i en databas växer inkrementellt på det här sättet förbrukar varje databasögonblicksbild lika mycket resurser som en vanlig databas. Beroende på konfigurationerna för speglingsservern och huvudservern kan det minska prestandan för huvuddatabasen om du har ett överdrivet antal ögonblicksbilder av databasen på en speglingsdatabas. Därför rekommenderar vi att du bara behåller några få relativt nya ögonblicksbilder på dina speglingsdatabaser. När du har skapat en ersättningsögonblicksbild bör du omdirigera inkommande frågor till den nya ögonblicksbilden och släppa den tidigare ögonblicksbilden när alla aktuella frågor har slutförts.

Anmärkning

Mer information om ögonblicksbilder av databaser finns i Databasögonblicksbilder (SQL Server).

Om rollväxling sker startas databasen och dess ögonblicksbilder om, vilket tillfälligt kopplar från användare. Därefter finns databasögonblicksbilderna kvar på den serverinstans där de skapades, som har blivit den nya huvuddatabasen. Användare kan fortsätta att använda ögonblicksbilderna efter felväxlingen. Detta medför dock ytterligare belastning på den nya huvudservern. Om prestanda är ett problem i din miljö rekommenderar vi att du skapar en ögonblicksbild av den nya speglingsdatabasen när den blir tillgänglig, omdirigerar klienter till den nya ögonblicksbilden och släpper alla ögonblicksbilder av databasen från den tidigare speglingsdatabasen.

Anmärkning

Överväg replikering för en dedikerad rapporteringslösning som skalar ut bra. Mer information finns i SQL Server-replikering.

Example

Det här exemplet skapar ögonblicksbilder på en speglad databas.

Anta att databasen för en databasspeglingssession är AdventureWorks2025. Det här exemplet skapar tre databasögonblicksbilder på speglingskopian av AdventureWorks databasen, som finns på F enheten. Ögonblicksbilderna heter AdventureWorks_0600, AdventureWorks_1200och AdventureWorks_1800 för att identifiera deras ungefärliga skapandetider.

  1. Skapa den första ögonblicksbilden av databasen i speglingen av AdventureWorks2025.

    CREATE DATABASE AdventureWorks_0600  
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_0600.SNP')  
       AS SNAPSHOT OF AdventureWorks2022  
    
  2. Skapa den andra ögonblicksbilden av databasen i speglingen av AdventureWorks2025. Användare som fortfarande använder AdventureWorks_0600 kan fortsätta att använda den.

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

    Nu kan nya klientanslutningar dirigeras programmatiskt till den senaste ögonblicksbilden.

  3. Skapa den tredje ögonblicksbilden i speglingen AdventureWorks2025. Användare som fortfarande använder AdventureWorks_0600 eller AdventureWorks_1200 kan fortsätta att använda dem.

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

    Nu kan nya klientanslutningar dirigeras programmatiskt till den senaste ögonblicksbilden.

Relaterade uppgifter

Se även

Databasögonblicksbilder (SQL Server)
Ansluta klienter till en databasspeglingssession (SQL Server)