Språk
Kommentar
Å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.
Med databasspegling i SQL Server kan du behålla en kopia eller spegling av en SQL Server-databas på en beredskapsserver. Spegling säkerställer att det finns två separata kopior av data hela tiden, vilket ger hög tillgänglighet och fullständig dataredundans. När du har konfigurerat databasspegling för en SQL Server-databas, stöder Microsoft.Data.SqlClient det utan ytterligare klientkod. Du kan också ange en redundanspartnerserver i ConnectionString-egenskapen.
Följande händelsesekvens inträffar när SqlConnection objektet är riktat mot en databas som konfigurerats för spegling:
Klientprogrammet ansluter till huvuddatabasen och servern skickar tillbaka namnet på partnerservern, som sedan cachelagras på klienten.
Om servern som innehåller huvuddatabasen misslyckas eller anslutningen avbryts går anslutnings- och transaktionstillståndet förlorat. Klientprogrammet försöker återupprätta en anslutning till huvuddatabasen och misslyckas.
Klientprogrammet försöker sedan transparent upprätta en anslutning till speglingsdatabasen på partnerservern. Om den lyckas omdirigeras anslutningen till speglingsdatabasen, som sedan blir den nya huvuddatabasen.
Ange failover-partnern i anslutningssträngen
Om du anger namnet på en redundanspartnerserver i anslutningssträng försöker klienten transparent ansluta till redundanspartnern om huvuddatabasen inte är tillgänglig när klientprogrammet först ansluter.
";Failover Partner=PartnerServerName"
Om du utelämnar partnerservernamnet för redundanspartnern och huvuddatabasen inte är tillgänglig när klientprogrammet först ansluter, genererar providern SqlException.
När SqlConnection öppnas utan problem returnerar servern partnernamnet för redundans. Det namnet ersätter värdet i reťazec pripojenia.
Kommentar
Du måste uttryckligen ange det första katalog- eller databasnamnet i anslutningssträng för databasspeglingsscenarier. Om klienten får redundansinformation om en anslutning som inte har en uttryckligen angiven initial katalog eller databas, cachelagras inte redundansinformationen och programmet försöker inte växla över till redundans om huvudservern går ned. Om en anslutningssträng har ett värde för redundanspartnern, men inget värde för den första katalogen eller databasen, utlöses enInvalidArgumentException.
Hämtar aktuellt servernamn
Efter en redundansväxling använder du DataSource egenskapen för att hämta den anslutna serverns namn. Följande kodfragment förutsätter att anslutningsvariabeln refererar till en öppen instans av SqlConnection klassen.
När en redundanshändelse inträffar och anslutningen växlas till speglingsservern DataSource uppdateras egenskapen så att den återspeglar speglingsnamnet.
Dim activeServer As String = connection.DataSource
string activeServer = connection.DataSource;
SqlClient-speglingsfunktionalitet
Klienten försöker alltid ansluta till den aktuella huvudservern. Om det misslyckas försöker den med failover-partnern. Om speglingsdatabasen redan har växlats till huvudrollen på partnerservern lyckas anslutningen och den nya huvudspeglingsmappningen skickas till klienten och cachelagras under anropets AppDomainlivslängd. Den lagras inte i beständig lagring och är inte tillgänglig för efterföljande anslutningar i en annan AppDomain eller process. Den är dock tillgänglig för efterföljande anslutningar inom samma AppDomain. Observera att en annan AppDomain eller process som körs på samma eller en annan dator alltid har sin pool med anslutningar och att dessa anslutningar inte återställs. I så fall, om den primära databasen går ner, varje process eller AppDomain misslyckas en gång, och poolen rensas automatiskt.
Kommentar
Speglingsstöd på servern konfigureras per databas. Om datamanipuleringsåtgärder utförs mot andra databaser som inte ingår i huvud-/speglingsuppsättningen, antingen genom att använda flerdelsnamn eller genom att ändra den aktuella databasen, sprids inte ändringarna till dessa andra databaser i händelse av fel. Inget fel genereras när data ändras i en databas som inte speglas. Utvecklaren måste utvärdera den möjliga effekten av sådana åtgärder.
Databasspeglingsresurser
Konceptuell dokumentation och information om hur du konfigurerar, distribuerar och administrerar spegling finns i följande resurser i SQL Server-dokumentationen.
| Resurs | beskrivning |
|---|---|
| Databasåtergivning | Beskriver hur du konfigurerar spegling i SQL Server. |