Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Innan en databasspeglingssession kan starta måste databasägaren eller systemadministratören se till att speglingsdatabasen har skapats och är redo för spegling. För att skapa en ny speglingsdatabas krävs det att du först tar en fullständig säkerhetskopia av huvuddatabasen, sedan en loggsäkerhetskopia och återställer båda till speglingsserverinstansen, genom att använda WITH NORECOVERY.
Det här avsnittet beskriver hur du förbereder en speglingsdatabas i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL.
Innan du börjar:
Förbereda en befintlig speglingsdatabas för att starta om spegling
Uppföljning:När du har förberett en speglingsdatabas
Innan du börjar
Kravspecifikation
Huvud- och speglingsserverinstanserna måste köras på samma version av SQL Server. Det är möjligt att speglingsservern har en högre version av SQL Server, men den här konfigurationen rekommenderas endast under en noggrant planerad uppgraderingsprocess. I en sådan konfiguration riskerar du en automatisk failover, där dataflytt automatiskt pausas eftersom data inte kan flyttas till en lägre version av SQL Server. Mer information finns i Uppgradera speglade instanser.
Huvud- och speglingsserverinstanserna måste köras på samma version av SQL Server. Information om stöd för databasspegling i SQL Server finns i Utgåvor och funktioner som stöds i SQL Server 2022.
Databasen måste använda den fullständiga återställningsmodellen.
Mer information finns i Visa eller ändra återställningsmodellen för en databas (SQL Server) eller sys.databases (Transact-SQL) och ALTER DATABASE (Transact-SQL).
Namnet på speglingsdatabasen måste vara samma som namnet på huvuddatabasen.
Speglingsdatabasen måste vara i återställningstillståndet för att spegling ska fungera. När du förbereder en speglingsdatabas måste du använda RESTORE WITH NORECOVERY för varje återställningsåtgärd. Minimalt måste du återställa MED NORECOVERY en fullständig säkerhetskopia av huvuddatabasen, följt av alla efterföljande loggsäkerhetskopior.
Det system där du planerar att skapa speglingsdatabasen måste ha en diskenhet med tillräckligt med utrymme för att lagra spegeldatabasen.
Begränsningar och restriktioner
Du kan inte spegla systemdatabaserna master, msdb, temp eller model .
Du kan inte spegla en databas som tillhör en AlwaysOn-tillgänglighetsgrupp.
Rekommendationer
Använd en mycket nyligen fullständig databassäkerhetskopia eller en nyligen genomförd differentiell databassäkerhetskopia av huvuddatabasen.
Om ett säkerhetskopieringsjobb är schemalagt att köras mycket frekvent på den primära databasen kan du behöva avaktivera säkerhetskopieringsjobbet tills speglingen har startats.
Om möjligt bör sökvägen (inklusive enhetsbeteckningen) för speglingsdatabasen vara densamma som sökvägen för huvuddatabasen.
Om filsökvägarna måste skilja sig åt, till exempel om huvuddatabasen finns på enheten F:, men speglingssystemet saknar en F:-enhet, måste du inkludera alternativet FLYTTA i RESTORE-instruktionen.
Viktigt!
Att lägga till en fil under en speglingssession utan att påverka sessionen kräver att sökvägen till filen finns på båda servrarna. Om du flyttar databasfilerna när du skapar speglingsdatabasen kan en senare tilläggsfilåtgärd misslyckas på speglingsdatabasen och orsaka att speglingen pausas. Information om hur du hanterar en misslyckad create-file-åtgärd finns i Felsöka konfiguration av databasspegling (SQL Server).
Om huvuddatabasen har några fulltextkataloger rekommenderar vi att du ser databasspegling och Full-Text kataloger (SQL Server).
Säkerhetskopiera alltid till en separat enhet för en produktionsdatabas.
Säkerhet
TRUSTWORTHY är inställt på AV när en databas säkerhetskopieras. Därför är TRUSTWORTHY alltid AV på en ny speglingsdatabas. Om databasen måste vara tillförlitlig efter en redundansväxling krävs ytterligare konfigurationssteg. Mer information finns i Konfigurera en speglingsdatabas för att använda egenskapen Trustworthy (Transact-SQL).
Information om hur du aktiverar automatisk dekryptering av databashuvudnyckeln för en speglingsdatabas finns i Konfigurera en krypterad speglingsdatabas.
Behörigheter
Databasägare eller systemadministratör.
Förbereda en befintlig speglingsdatabas för att starta om spegling
Om spegling har tagits bort och speglingsdatabasen fortfarande är i återställningstillståndet kan du starta om speglingen.
Gör minst en loggsäkerhetskopia på huvuddatabasen. Mer information finns i Säkerhetskopiera en transaktionslogg (SQL Server).
I speglingsdatabasen använder du RESTORE WITH NORECOVERY för att återställa alla loggsäkerhetskopior som gjorts på huvuddatabasen sedan speglingen togs bort. Mer information finns i Återställa en säkerhetskopiering av transaktionslogg (SQL Server).
Förbereda en ny speglingsdatabas
Förbereda en speglingsdatabas
Anmärkning
Ett Transact-SQL exempel på den här proceduren finns i Exempel (Transact-SQL), senare i det här avsnittet.
Anslut till huvudserverinstansen.
Skapa antingen en fullständig databassäkerhetskopia eller en differentiell databassäkerhetskopia av huvuddatabasen.
Vanligtvis måste du göra minst en loggsäkerhetskopia på huvuddatabasen. En loggsäkerhetskopiering kan dock vara onödig, om databasen just har skapats och ingen loggsäkerhetskopia har gjorts ännu, eller om återställningsmodellen just har ändrats från ENKEL till FULLSTÄNDIG.
Såvida inte säkerhetskopiorna finns på en nätverksenhet som är tillgänglig från båda systemen kopierar du databasen och loggsäkerhetskopiorna till systemet som ska vara värd för speglingsserverinstansen.
Anslut till speglingsserverinstansen.
Med HJÄLP av RESTORE WITH NORECOVERY skapar du speglingsdatabasen genom att återställa den fullständiga databassäkerhetskopian och eventuellt den senaste differentiella databassäkerhetskopian till speglingsserverinstansen.
Anmärkning
Om du återställer databasfilgruppen efter filgrupp måste du återställa hela databasen.
Använd RESTORE WITH NORECOVERY för att tillämpa alla utestående loggsäkerhetskopior eller andra säkerhetskopior på speglingsdatabasen.
Exempel (Transact-SQL)
Innan du kan starta en databasspeglingssession måste du skapa speglingsdatabasen. Du bör göra detta precis innan du startar speglingssessionen.
I det här exemplet används AdventureWorks2022
exempeldatabas, som använder den enkla återställningsmodellen som standard.
Om du vill använda databasspegling med
AdventureWorks2022
databasen ändrar du den så att den använder den fullständiga återställningsmodellen:USE master; GO ALTER DATABASE AdventureWorks SET RECOVERY FULL; GO
När du har modifierat databasens återställningsmodell från SIMPLE till FULL skapar du en fullständig säkerhetskopia som kan användas för att skapa speglingsdatabasen. Eftersom återställningsmodellen just har ändrats anges alternativet WITH FORMAT för att skapa en ny medieuppsättning. Det här är användbart för att separera säkerhetskopiorna under den fullständiga återställningsmodellen från tidigare säkerhetskopior som gjorts under den enkla återställningsmodellen. I det här exemplet skapas säkerhetskopieringsfilen (
C:\AdventureWorks.bak
) på samma enhet som databasen.Anmärkning
För en produktionsdatabas bör du alltid säkerhetskopiera till en separat enhet.
På huvudserverinstansen (på
PARTNERHOST1
) skapar du en fullständig säkerhetskopia av huvuddatabasen på följande sätt:BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdventureWorks.bak' WITH FORMAT GO
Kopiera den fullständiga säkerhetskopian till speglingsservern.
Återställ den fullständiga säkerhetskopian till speglingsserverinstansen med HJÄLP av RESTORE WITH NORECOVERY. Återställningskommandot beror på om sökvägarna för huvuddatabaser och speglingsdatabaser är identiska.
Om sökvägarna är identiska:
På speglingsserverinstansen (på
PARTNERHOST5
) återställer du den fullständiga säkerhetskopian på följande sätt:RESTORE DATABASE AdventureWorks FROM DISK = 'C:\AdventureWorks.bak' WITH NORECOVERY GO
Om sökvägarna skiljer sig åt:
Om sökvägen till speglingsdatabasen skiljer sig från sökvägen till huvuddatabasen (till exempel skiljer sig deras enhetsbeteckningar åt) kräver skapandet av speglingsdatabasen att återställningsåtgärden innehåller en MOVE-sats.
Viktigt!
Om sökvägsnamnen för huvuddatabaserna och speglingsdatabaserna skiljer sig åt kan du inte lägga till en fil. Det beror på att speglingsserverinstansen försöker placera den nya filen på den plats som används av huvuddatabasen när loggen tas emot för åtgärden lägg till fil.
Följande kommando återställer till exempel en säkerhetskopia av en huvuddatabas som finns i C:\Program Files\Microsoft SQL Server\MSSQL. n\MSSQL\Data\ till en annan plats, D:\Program Files\Microsoft SQL Server\MSSQL. n\MSSQL\Data, där speglingsdatabasen ska finnas.
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
När du har skapat den fullständiga säkerhetskopian måste du skapa en loggsäkerhetskopia på huvuddatabasen. Följande Transact-SQL-instruktion säkerhetskopierar till exempel loggen till samma fil som användes av den föregående fullständiga säkerhetskopieringen:
BACKUP LOG AdventureWorks TO DISK = 'C:\AdventureWorks.bak' GO
Innan du kan börja spegla måste du använda den nödvändiga loggsäkerhetskopian (och eventuella efterföljande loggsäkerhetskopior).
Följande Transact-SQL-instruktion återställer till exempel den första loggen från
C:\AdventureWorks.bak
:RESTORE LOG AdventureWorks FROM DISK = 'C:\AdventureWorks.bak' WITH FILE=1, NORECOVERY GO
Om ytterligare loggbackuper sker innan du börjar speglingen måste du också återställa alla dessa loggbackuper i följd till speglingsservern, och använda WITH NORECOVERY.
Följande Transact-SQL-instruktion återställer till exempel ytterligare två loggar från
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
Ett fullständigt exempel på hur du konfigurerar databasspegling, visar säkerhetskonfiguration, förbereder speglingsdatabasen, konfigurerar partner och lägger till ett vittne finns i Konfigurera databasspegling (SQL Server).
Uppföljning: När du har förberett en speglingsdatabas
Om ytterligare loggsäkerhetskopior har gjorts sedan din senaste RESTORE LOG-operation, måste du manuellt tillämpa varje extra loggsäkerhetskopia med RESTORE WITH NORECOVERY.
Starta speglingssessionen. Mer information finns i Upprätta en databasspeglingssession med Windows-autentisering (SQL Server Management Studio) eller Upprätta en databasspeglingssession med Windows-autentisering (Transact-SQL).
Om du inaktiverade säkerhetskopieringsjobbet på huvuddatabasen kan du återaktivera jobbet.
Om databasen måste vara tillförlitlig efter en redundansomkoppling krävs extra konfigurationssteg efter att speglingen har påbörjats. Mer information finns i Konfigurera en speglingsdatabas för att använda egenskapen Trustworthy (Transact-SQL).
Relaterade uppgifter
Återställa en säkerhetskopiering av transaktionslogg (SQL Server)
Upprätta en databasspeglingssession med Windows-autentisering (Transact-SQL)
Konfigurera en speglingsdatabas för att använda egenskapen Trustworthy (Transact-SQL)
Se även
Databasspegling (SQL Server)
Transportsäkerhet för databasspegling och Always On-tillgänglighetsgrupper (SQL Server)
Att konfigurera Databasspegling (SQL Server)
Säkerhetskopiera och återställa Full-Text kataloger och index
Databasspegling och Full-Text kataloger (SQL Server)
Databasspegling och replikering (SQL Server)
Säkerhetskopiering (Transact-SQL)
ÅTERSTÄLLA (Transact-SQL)
RESTORE-argument (Transact-SQL)