Dela via


Database Mirroring och Log Shipping (SQL Server)

gäller för:SQL Server

En viss databas kan speglas eller loggsändas; den kan också samtidigt speglas och loggsändas. Tänk på följande om du vill välja vilken metod som ska användas:

  • Hur många målservrar behöver du?

    Om du bara behöver en enda måldatabas är databasspegling den rekommenderade lösningen.

    Om du behöver mer än en måldatabas måste du använda loggöverföring, antingen ensam eller med databasspegling. Genom att kombinera dessa tillvägagångssätt får du fördelarna med databasspegling tillsammans med stöd för flera destinationer som tillhandahålls av loggöverföring.

  • Om du behöver fördröja återställningen av loggen på måldatabasen (vanligtvis för att skydda mot logiska fel) använder du loggöverföring, ensam eller med databasspegling.

I det här avsnittet beskrivs överväganden för att kombinera loggöverföring och databasspegling.

Anmärkning

Introduktioner till dessa tekniker finns i Databasspegling (SQL Server) och Om loggöverföring (SQL Server).

Kombinera loggöverföring och databasspegling

Huvuddatabasen i en speglingssession kan också fungera som den primära databasen i en loggöverföringskonfiguration, eller tvärtom, eftersom säkerhetskopieringsdelningen för loggöverföringar är intakt. Databasspeglingssessionen körs i alla driftslägen, oavsett om den är synkron (med transaktionssäkerhet inställd på FULL) eller asynkron (med transaktionssäkerhet inställd på OFF).

Anmärkning

Om du vill använda databasspegling på en databas krävs alltid den fullständiga återställningsmodellen.

Vanligtvis, när du kombinerar loggöverföring och databasspegling, upprättas speglingssessionen före loggöverföringen, även om det inte är nödvändigt. Sedan konfigureras den aktuella huvuddatabasen som primär för loggöverföring (huvuddatabasen/den primära databasen) tillsammans med en eller flera sekundära fjärrdatabaser. Speglingsdatabasen måste också konfigureras som en primär server för loggöverföring ( speglingsdatabasen/den primära databasen). Loggleveransens sekundära databaser bör finnas på andra serverinstanser än antingen den primära servern eller speglingsservern.

Anmärkning

Inställningarna för skiftlägeskänslighet på de servrar som ingår i loggöverföringen bör stämma överens.

Under en loggöverföringssession skapar backupjobb loggsäkerhetskopior på den primära databasen och placerar dem i en säkerhetskopieringsmapp. Därifrån kopieras säkerhetskopiorna av sekundärservrarnas kopieringsjobb. För att säkerhetskopieringsjobben och kopieringsjobben ska lyckas måste de ha åtkomst till mappen för loggtransport-säkerhetskopiering. För att maximera tillgängligheten för den primära servern rekommenderar vi att du etablerar säkerhetskopieringsmappen på en delad säkerhetskopieringsplats på en separat värddator. Se till att alla loggleveransservrar, inklusive speglings-/primärservern, kan komma åt den delade säkerhetskopieringsplatsen (kallas för en säkerhetskopieringsdelning).

Om du vill tillåta att loggöverföringen fortsätter när databasspeglingen växlar över måste du även konfigurera speglingsservern som en primär server med samma konfiguration som du använder för den primära servern på huvuddatabasen. Speglingsdatabasen är i återställningstillståndet, vilket hindrar säkerhetskopieringsjobben från att säkerhetskopiera loggen på speglingsdatabasen. Detta säkerställer att speglings-/primärdatabasen inte stör huvuddatabasen/den primära databasen vars loggsäkerhetskopior för närvarande kopieras av sekundära servrar. För att förhindra falska aviseringar loggar säkerhetskopieringsjobbet ett meddelande till tabellen log_shipping_monitor_history_detail när säkerhetskopieringsjobbet körs på speglings-/primärdatabasen och agentjobbet returnerar statusen lyckades.

Speglings-/primärdatabasen är inaktiv i loggöverföringssessionen. Men om speglingens omkoppling sker kommer den tidigare speglingsdatabasen att bli aktiv som huvuddatabas. Då blir databasen också aktiv som den primära loggöverföringsdatabasen. De säkerhetskopieringsjobb för loggöverföring som tidigare inte kunde överföra loggen för databasen börjar nu göra det. En failover gör att den tidigare huvuddatabasen/primära databasen blir den nya speglings-/primärdatabasen och går in i ett återställningstillstånd, och säkerhetskopieringsjobben på den databasen upphör att skapa loggsäkerhetskopior.

Anmärkning

I händelse av en automatisk redundansväxling sker växlingen till speglingsrollen när den tidigare huvuddatabasen/den primära databasen återansluter till speglingssessionen.

För att köras i högsäkerhetsläge med automatisk redundans konfigureras speglingssessionen med ytterligare en serverinstans som kallas vittnet. Om huvuddatabasen går förlorad av någon anledning efter att databasen har synkroniserats och om speglingsservern och vittnet fortfarande kan kommunicera med varandra sker automatisk redundans. En automatisk failover gör att speglingsservern antar huvudrollen och tar sin databas online som huvuddatabas. Om platsen för loggöverföringssäkhetskopiering är tillgänglig för den nya primära servern, börjar säkerhetskopieringsjobben att skicka loggöverföringssäkhetskopior till den platsen. Databasspeglingens synkrona läge garanterar att loggkedjan inte påverkas av en speglingsredundans och att endast giltig logg återställs. De sekundära servrarna fortsätter att kopiera loggsäkerhetskopior utan att veta att en annan serverinstans har blivit den primära servern.

När du använder en lokal loggövervakning krävs inga särskilda åtgärder för att hantera det här scenariot. Information om hur du använder en fjärrövervakningsinstans med det här scenariot finns i "Effekten av databasspegling på en fjärrövervakningsinstans" senare i det här avsnittet.

Växla över från huvudkontot till speglingsdatabasen

Följande bild visar hur loggöverföring och databasspegling fungerar tillsammans när spegling körs i högsäkerhetsläge med automatisk redundansväxling. Inledningsvis är Server_A både huvudservern för spegling och den primära servern för loggleverans. Server_B är speglingsservern och är även konfigurerad som en primär server, som för närvarande är inaktiv. Server_C och Server_D är sekundära loggleveransservrar. För att maximera tillgången till loggöverföringssessionen finns säkerhetskopieringsplatsen i en delad katalog på en separat värddator.

Loggöverföring och databasspegling

Efter en speglingsövertag förblir det primära servernamnet som definierats på den sekundära servern oförändrat. .

Effekten av databasspegling på en fjärrövervakningsinstans

När loggöverföring används med en fjärrövervakningsinstans påverkar kombinationen av loggöverföringssession och databasspegling informationen i monitoreringstabellerna. Informationen om den primära är en kombination av den som konfigurerats på huvudkontot/primärt och övervakaren som konfigurerats på varje sekundär.

Om du vill hålla övervakningen så sömlös som möjligt rekommenderar vi att du anger det ursprungliga primära namnet när du konfigurerar den primära på den sekundära servern. Den här metoden underlättar även ändring av loggleveranskonfigurationen från Microsoft SQL Server Agent. För att få mer information om övervakning, se Övervaka loggleverans (Transact-SQL).

Konfigurera spegling och loggleverans tillsammans

För att konfigurera databasspegling och loggöverföring tillsammans krävs följande steg:

  1. Återställ säkerhetskopior av huvuddatabasen/den primära databasen med NORECOVERY till en annan serverinstans för att senare användas som speglingsdatabas för huvuddatabasen/den primära databasen. Mer information finns i Förbereda en speglingsdatabas för spegling (SQL Server).

  2. Konfigurera databasspegling. Mer information finns i Upprätta en databasspeglingssession med Windows-autentisering (SQL Server Management Studio) eller Konfigurera databasspegling (SQL Server).

  3. Återställa säkerhetskopior av huvuddatabasen/den primära databasen till andra serverinstanser som senare ska användas som loggöverföring av sekundära databaser för den primära databasen.

  4. Konfigurera loggöverföring på huvuddatabasen som primär databas för en eller flera sekundära databaser.

    Du bör konfigurera en enskild delning som säkerhetskopieringskatalog (en säkerhetskopieringsdelning). Detta säkerställer att säkerhetskopieringsjobben fortsätter att skriva till samma katalog som tidigare efter rollväxlingen mellan huvud- och speglingsservrarna. Bästa praxis är att se till att den här resursen finns på en annan fysisk server än de servrar som är värdar för de databaser som är involverade i spegling och loggleverans.

    Mer information finns i Konfigurera loggleverans (SQL Server).

  5. Manuellt växla över från den primära servern till den sekundära.

    Så här utför du en manuell redundansväxling:

  6. Konfigurera loggöverföring på den nya huvuddatabasen (tidigare spegel) som primär.

    Viktigt!

    Utför inte konfiguration från en sekundär enhet.

    Du måste använda samma säkerhetskopieringsresurs som du använde i steg 4.

    Transaktionsloggens leveransgränssnitt i SQL Server Management Studio stöder endast en primär databas per loggleveranskonfiguration. Därför måste du använda lagrade procedurer för att konfigurera den nya huvudkomponenten som den primära.

  7. Utför en annan manuell redundansväxling för att återställa till det ursprungliga huvudkontot.