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
Not
Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Använd AlwaysOn-tillgänglighetsgrupper i stället.
När speglingsdatabasen har förberetts (se Förbered en speglingsdatabas för spegling (SQL Server)) kan du upprätta en databasspeglingssession. Huvud-, speglings- och vittnesserverinstanserna måste vara separata serverinstanser, som ska finnas på separata värdsystem.
Viktig
Vi rekommenderar att du konfigurerar databasspegling under låg belastning eftersom konfiguration av spegling kan påverka prestanda.
Not
En viss serverinstans kan delta i flera samtidiga databasspeglingssessioner med samma eller olika partner. En serverinstans kan vara en partner i vissa sessioner och ett vittne i andra sessioner. Speglingsserverinstansen måste köra samma version av SQL Server som huvudserverinstansen. Databasspegling är inte tillgängligt i varje utgåva av Microsoft SQL Server. En lista över funktioner som stöds av versionerna av SQL Server finns i funktioner som stöds av versionerna av SQL Server 2016. Dessutom rekommenderar vi starkt att de körs på jämförbara system som kan hantera identiska arbetsbelastningar.
Så här upprättar du en databasspeglingssession
Skapa speglingsdatabasen. Mer information finns i Förbereda en speglingsdatabas för spegling (SQL Server).
Konfigurera säkerhet på varje serverinstans.
Varje serverinstans i en databasspeglingssession kräver en databasspeglingsslutpunkt. Om slutpunkten inte finns måste du skapa den.
Notera
Den form av autentisering som används för databasspegling av en serverinstans är en egenskap för dess databasspeglingsslutpunkt. Det finns två typer av transportsäkerhet för databasspegling: Windows-autentisering eller certifikatbaserad autentisering. Mer information finns i Transport Security för databasspegling och AlwaysOn-tillgänglighetsgrupper (SQL Server).
På varje partnerserver kontrollerar du att det finns en ändpunkt för databasspegling. Oavsett hur många speglingssessioner som ska stödjas kan serverinstansen bara ha en databasspeglingsslutpunkt. Om du tänker använda den här serverinstansen exklusivt för partner i databasspeglingssessioner kan du tilldela rollen partner till slutpunkten (ROLE**=**PARTNER). Om du även tänker använda den här servern som vittnesserver i databasspeglingssessioner på andra servrar, tilldelar du rollen för slutpunkten till ALL.
Om du vill köra en SET PARTNER-instruktion måste tillståndet för båda partnernas slutpunkter anges till STARTED.
Om du vill veta om en serverinstans har en databasspeglingsslutpunkt och om du vill lära dig dess roll och tillstånd använder du följande Transact-SQL-instruktion på den instansen:
SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
Viktig
Konfigurera inte om en databasspeglingsslutpunkt som används. Om en databasspeglingsslutpunkt finns och redan används rekommenderar vi att du använder slutpunkten för varje session på serverinstansen. Om du släpper en slutpunkt som används kan slutpunkten startas om, vilket stör anslutningarna för de befintliga sessionerna, vilket kan verka vara ett fel till de andra serverinstanserna. Detta är särskilt viktigt i högsäkerhetsläge med automatisk redundans, där omkonfiguration av slutpunkten på en partner kan orsaka en redundansväxling. Om ett vittne har ställts in för en session kan det dessutom leda till att huvudservern för sessionen förlorar kvorum om du släpper slutpunkten för databasspeglingen. Om det inträffar tas databasen offline och dess användare kopplas från. Mer information finns i Kvorum: Hur ett vittne påverkar databastillgängligheten (Databasspegling).
Om någon av partnerna saknar en slutpunkt kan du läsa Skapa en databasspeglingsslutpunkt för Windows-autentisering (Transact-SQL).
Om serverinstanser körs under olika domänanvändarkonton kräver var och en en inloggning i den huvuddatabasen för de andra. Om inloggningen inte finns måste du skapa den. Mer information finns i Tillåt nätverksåtkomst till en databasspeglingsslutpunkt med hjälp av Windows-autentisering (SQL Server).
Om du vill ange huvudservern som partner i speglingsdatabasen ansluter du till speglingsservern och utfärdar följande instruktion:
ÄNDRA <DATABASNAMN> SET PARTNER =<SERVERNÄTVERKSADRESS>
där <database_name> är namnet på databasen som ska speglas (det här namnet är detsamma för båda partnerna) och <server_network_address> är serverns nätverksadress för huvudservern.
Syntaxen för en servernätverksadress är följande:
TCP://<systemadress>:<port>
där <systemadress> är en sträng som entydigt identifierar måldatorsystemet och <port> är det portnummer som används av speglingsslutpunkten för partnerserverinstansen. Mer information finns i Ange en servernätverksadress (databasspegling).
På speglingsserverinstansen anger till exempel följande ALTER DATABASE-instruktion partnern som den ursprungliga huvudserverinstansen. Databasnamnet är AdventureWorks, systemadressen är DBSERVER1 namnet på partnerns system och porten som används av partnerns databasspeglingsslutpunkt är 7022:
ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://DBSERVER1:7022'
Den här instruktionen förbereder speglingsservern för att bilda en session när den kontaktas av huvudservern.
Om du vill ange speglingsservern som partner i huvuddatabasen ansluter du till huvudservern och utfärdar följande instruktion:
ÄNDRA <databasen_namn> set partner =<servernätverksadress>
Mer information finns i steg 4.
På huvudserverinstansen anger till exempel följande ALTER DATABASE-instruktion partnern som den ursprungliga speglingsserverinstansen. Databasnamnet är AdventureWorks, systemadressen är DBSERVER2 namnet på partnerns system och porten som används av partnerns databasspeglingsslutpunkt är 7025:
ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://DBSERVER2:7022'
Om du anger den här instruktionen på huvudservern börjar databasspeglingssessionen.
Som standard är en session inställd på fullständig transaktionssäkerhet (SAFETY är inställt på FULL), vilket startar sessionen i synkront högsäkerhetsläge utan automatisk redundans. Du kan konfigurera om sessionen så att den körs i högsäkerhetsläge med automatisk redundans eller i asynkront, högpresterande läge enligt följande:
Högsäkerhetsläge med automatisk redundansväxling
Om du vill att en session med högsäkerhetsläge ska stödja automatisk redundans lägger du till en vittnesserverinstans. Mer information finns i Lägg till ett databasspeglingsvittne med Windows-autentisering (Transact-SQL).
läge med höga prestanda
Om du inte vill ha automatisk redundans och föredrar att betona prestanda framför tillgänglighet kan du också inaktivera transaktionssäkerheten. Mer information finns i Ändra transaktionssäkerhet i en databasspeglingssession (Transact-SQL).
Not
I högprestandaläge bör WITNESS vara inställt på OFF. För mer information, se Kvorum: Hur Ett Vittne Påverkar Databastillgängligheten (Databasspegling).
Exempel
Anteckning
I följande exempel upprättas en databasspeglingssession mellan partner för en befintlig speglingsdatabas. Information om hur du skapar en speglingsdatabas finns i Förbereda en speglingsdatabas för spegling (SQL Server)=.
Exemplet visar de grundläggande stegen för att skapa en databasspeglingssession utan ett vittne. De två partnerna är standardserverinstanserna i två datorsystem (PARTNERHOST1 och PARTNERHOST5). De två partnerinstanserna kör samma Windows-domänanvändarkonto (MYDOMAIN\dbousername).
På huvudserverinstansen (standardinstans på PARTNERHOST1) skapar du en slutpunkt som stöder alla roller med port 7022:
--create an endpoint for this instance CREATE ENDPOINT Endpoint_Mirroring STATE=STARTED AS TCP (LISTENER_PORT=7022) FOR DATABASE_MIRRORING (ROLE=ALL) GO --Partners under same domain user; login already exists in master.
Not
Ett exempel på hur du ställer in en inloggning finns i Tillåt nätverksåtkomst till en databasspeglingsslutpunkt med hjälp av Windows-autentisering (SQL Server).
På speglingsserverinstansen (standardinstans på PARTNERHOST5) skapar du en slutpunkt som stöder alla roller med port 7022:
--create an endpoint for this instance CREATE ENDPOINT Endpoint_Mirroring STATE=STARTED AS TCP (LISTENER_PORT=7022) FOR DATABASE_MIRRORING (ROLE=ALL) GO --Partners under same domain user; login already exists in master.
Säkerhetskopiera databasen på huvudserverinstansen (på PARTNERHOST1):
BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdvWorks_dbmirror.bak' WITH FORMAT GO
Återställ databasen på speglingsserverinstansen (på
PARTNERHOST5
):RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\AdvWorks_dbmirror.bak' WITH NORECOVERY GO
När du har skapat den fullständiga säkerhetskopian av databasen 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 vid den föregående databassäkerhetskopian:
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
På speglingsserverinstansen anger du serverinstansen på PARTNERHOST1 som partner (vilket gör den till den första huvudservern):
USE master; GO ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://PARTNERHOST1:7022' GO
Viktig
Som standard körs en databasspeglingssession i synkront läge, vilket beror på att ha full transaktionssäkerhet (SAFETY är inställt på FULL). Om du vill att en session ska köras i asynkront läge med höga prestanda ställer du in SAFETY på AV. För mer information, se Driftlägen för databasspegling.
På huvudserverinstansen anger du serverinstansen på
PARTNERHOST5
som partner (vilket gör den till den första speglingsservern):USE master; GO ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://PARTNERHOST5:7022' GO
Om du vill använda högsäkerhetsläge med automatisk redundans konfigurerar du vittnesserverinstansen. Mer information finns i Lägg till ett databasspeglingsvittne med Windows-autentisering (Transact-SQL).
Not
Ett fullständigt exempel som visar säkerhetskonfiguration, förbereder speglingsdatabasen, konfigurerar partner och lägger till ett vittne finns i Konfigurera databasspegling (SQL Server).
Se även
Att konfigurera Databasspegling (SQL Server)
ALTER DATABASE (Transact-SQL)
Tillåt nätverksåtkomst till en databasspeglingsslutpunkt med hjälp av Windows-autentisering (SQL Server)
Förbered en speglingsdatabas för spegling (SQL Server)
Skapa en databasspeglingsslutpunkt för Windows-autentisering (Transact-SQL)
databasspegling och loggöverföring (SQL Server)
Databasspegling (SQL Server)
Databasspegling och replikering (SQL Server)
Konfigurera databasspegling (SQL Server)
Ange en servernätverksadress (databasspegling)
Driftslägen för databasspegling