Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Opmerking
Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. Gebruik in plaats daarvan AlwaysOn-beschikbaarheidsgroepen. Databasespiegeling in SQL Server is een andere technologie dan Microsoft Fabric Database Mirroring.
Databasespiegeling is een oplossing voor het vergroten van de beschikbaarheid van een SQL Server-database. Spiegeling wordt per database geïmplementeerd en werkt alleen met databases die gebruikmaken van het volledige herstelmodel.
Belangrijk
Zie Vereisten, beperkingen en aanbevelingen voor databasespiegeling voor databasespiegeling, aanbevelingen voor het configureren van partnerservers en aanbevelingen voor het implementeren van databasespiegeling voor informatie over ondersteuning voor databasespiegeling , beperkingen en aanbevelingen voor databasespiegeling.
Voordelen van databasespiegeling
Databasespiegeling is een eenvoudige strategie die de volgende voordelen biedt:
Verhoogt de beschikbaarheid van een database.
In het geval van een noodgeval, in de modus met hoge veiligheid met automatische failover, brengt failover snel de stand-bykopie van de database online (zonder gegevensverlies). In de andere bedrijfsmodi heeft de databasebeheerder het alternatief voor het afdwingen van de service (met mogelijk gegevensverlies) naar de stand-bykopie van de database. Zie Rolwisseling verderop in dit onderwerp voor meer informatie.
Verhoogt de gegevensbescherming.
Databasespiegeling biedt volledige of bijna volledige redundantie van de gegevens, afhankelijk van of de bedrijfsmodus een hoge veiligheid of hoge prestaties heeft. Zie Bedrijfsmodi verderop in dit onderwerp voor meer informatie.
Een databasespiegelingpartner die wordt uitgevoerd op SQL Server 2008 (10.0.x) Enterprise of latere versies, probeert automatisch bepaalde typen fouten op te lossen die voorkomen dat een gegevenspagina wordt gelezen. De partner die een pagina niet kan lezen, vraagt om een nieuwe kopie van de andere partner. Als deze aanvraag slaagt, wordt de onleesbare pagina vervangen door de kopie, waardoor de fout meestal wordt opgelost. Voor meer informatie, zie Automatische paginareparatie (Beschikbaarheidsgroepen: Databasespiegeling).
Verbetert de beschikbaarheid van de productiedatabase tijdens upgrades.
Als u downtime voor een gespiegelde database wilt minimaliseren, kunt u de exemplaren van SQL Server die als host fungeren voor de failoverpartners sequentieel upgraden. Dit leidt tot downtime van slechts één failover. Deze vorm van upgrade wordt een rolling upgrade genoemd. Zie Gespiegelde exemplaren upgraden voor meer informatie.
Termen en definities voor databasespiegeling
Automatische failover
Het proces waarmee, wanneer de principal-server niet meer beschikbaar is, de mirrorserver die de rol van de principal-server overneemt en de kopie van de database online brengt als de principal-database.
Failoverpartners
De twee serverexemplaren (de principal-server of de mirrorserver) die fungeren als partners voor het schakelen tussen rollen voor een gespiegelde database.
Geforceerde service
Een failover die door de eigenaar van de database wordt geïnitieerd bij de fout van de principal-server die de service overdraagt naar de gespiegelde database terwijl deze zich in een onbekende status bevindt.
Modus met hoge prestaties
De databasespiegelingssessie werkt asynchroon en gebruikt alleen de principal-server en mirrorserver. De enige vorm van rolwisseling is een geforceerde service (met mogelijk gegevensverlies).
Modus voor hoge veiligheid
De databasespiegelingssessie werkt synchroon en maakt optioneel gebruik van een witness, evenals de principal-server en mirrorserver.
Handmatige failover
Een failover die is geïnitieerd door de eigenaar van de database, terwijl de principal-server nog steeds wordt uitgevoerd, die de service van de principal-database overdraagt naar de gespiegelde database terwijl deze zich in een gesynchroniseerde status bevinden.
Gespiegelde database
De kopie van de database die doorgaans volledig is gesynchroniseerd met de principal-database.
Mirror-server
In een databasespiegelingsconfiguratie bevindt zich het serverexemplaren waarop de gespiegelde database zich bevindt.
Principal-database
Bij databasespiegeling wordt een database met lees-/schrijfbewerkingen waarvan de transactielogboekrecords worden toegepast op een alleen-lezen kopie van de database (een gespiegelde database).
Principal-server
Bij databasespiegeling is de partner van wie de database momenteel de principal-database is.
Wachtrij opnieuw uitvoeren
Ontvangen transactielogboekrecords die op de schijf van een mirror-server wachten.
Rol
De principal-server en mirrorserver voeren complementaire principal- en spiegelfuncties uit. Optioneel wordt de rol van witness uitgevoerd door een derde serverexemplaren.
Schakelen tussen rollen
De overname van de hoofdrol door de spiegel.
Wachtrij verzenden
Niet-verzonden transactielogboekrecords die zijn verzameld op de logboekschijf van de principal-server.
Session
De relatie die optreedt tijdens databasespiegeling tussen de principal-server, mirrorserver en witness-server (indien aanwezig).
Nadat een spiegelingssessie is gestart of hervat, wordt het proces waarmee logboekrecords van de principal-database die op de principal-server zijn verzameld, naar de mirrorserver verzonden, die deze logboekrecords zo snel mogelijk naar de schijf schrijft om de principal-server in te halen.
Transactieveiligheid
Een gespiegelde databaseeigenschap die bepaalt of een databasespiegelingssessie synchroon of asynchroon werkt. Er zijn twee veiligheidsniveaus: FULL en OFF.
Witness
Voor gebruik alleen met de modus hoge veiligheid, een optioneel exemplaar van SQL Server waarmee de mirror-server kan herkennen wanneer een automatische failover moet worden gestart. In tegenstelling tot de twee failoverpartners, fungeert de witness niet voor de database. Het ondersteunen van automatische failover is de enige rol van de witness.
Overzicht van databasespiegeling
Databasespiegeling onderhoudt twee kopieën van één database die zich op verschillende exemplaren van SQL Server Database Engine bevindt. Deze exemplaren bevinden zich meestal op computers op verschillende locaties. Wanneer databasespiegeling wordt gestart, initieert één exemplaar een relatie, ook wel een databasespiegelingssessie genoemd, met een ander exemplaar.
Eén serverexemplaren dienen de database voor clients (de principal-server). Het andere exemplaar fungeert als een dynamische of warme stand-byserver (de mirrorserver), afhankelijk van de configuratie en status van de spiegelingssessie. Wanneer een databasespiegelingssessie wordt gesynchroniseerd, biedt databasespiegeling een hot standby-server die snelle failover ondersteunt zonder verlies van gegevens uit vastgelegde transacties. Wanneer de sessie niet wordt gesynchroniseerd, is de spiegelserver doorgaans beschikbaar als een warme stand-byserver (met mogelijk gegevensverlies).
De principal- en mirrorservers communiceren en samenwerken als partners in een databasespiegelingssessie. De twee partners voeren complementaire rollen uit in de sessie: de hoofdrol en de spiegelrol. Op elk gewenst moment voert één partner de hoofdrol uit en de andere partner voert de spiegelrol uit. Elke partner wordt beschreven als eigenaar van de huidige rol. De partner die eigenaar is van de principal-rol wordt de principal-server genoemd en de kopie van de database is de huidige principal-database. De partner die eigenaar is van de spiegelrol wordt de mirrorserver genoemd en de kopie van de database is de huidige gespiegelde database. Wanneer databasespiegeling wordt geïmplementeerd in een productieomgeving, is de principal-database de productiedatabase.
Databasespiegeling omvat het zo snel mogelijk opnieuw uitvoeren van elke invoeg-, update- en verwijderbewerking die op de principal-database op de gespiegelde database plaatsvindt. Opnieuw uitvoeren wordt bereikt door een stroom actieve transactielogboekrecords te verzenden naar de mirror-server, die logboekrecords toepast op de gespiegelde database, in volgorde, zo snel mogelijk. In tegenstelling tot replicatie, die op logisch niveau werkt, werkt databasespiegeling op het niveau van de fysieke logboekrecord. Vanaf SQL Server 2008 (10.0.x) comprimeert de principal-server de stroom van transactielogboekrecords voordat deze naar de mirrorserver wordt verzonden. Deze logboekcompressie vindt plaats in alle spiegelingssessies.
Opmerking
Een bepaald serverexemplaren kunnen deelnemen aan meerdere gelijktijdige databasespiegelingsessies met dezelfde of verschillende partners. Een serverexemplaren kunnen een partner zijn in sommige sessies en een witness in andere sessies. Op het exemplaar van de mirrorserver moet dezelfde editie van SQL Server worden uitgevoerd.
In deze sectie:
Bedrijfsmodi
Een databasespiegelingssessie wordt uitgevoerd met synchrone of asynchrone bewerking. Onder asynchrone bewerking worden de transacties doorgevoerd zonder te wachten totdat de mirrorserver het logboek naar de schijf schrijft, waardoor de prestaties worden gemaximaliseerd. Bij synchrone bewerking wordt een transactie vastgelegd voor beide partners, maar ten koste van een verhoogde transactielatentie.
Er zijn twee bedrijfsmodi voor spiegeling. Een van deze, de modus voor hoge veiligheid ondersteunt synchrone bewerkingen. Wanneer een sessie wordt gestart, synchroniseert de spiegelserver de gespiegelde database zo snel mogelijk met de principal-database. Zodra de databases worden gesynchroniseerd, wordt een transactie vastgelegd voor beide partners, ten koste van een verhoogde transactielatentie.
De tweede bedrijfsmodus, de modus met hoge prestaties, wordt asynchroon uitgevoerd. De mirrorserver probeert de logboekrecords bij te houden die door de principal-server worden verzonden. De gespiegelde database kan enigszins achterblijven bij de principal-database. Normaal gesproken is de kloof tussen de databases echter klein. De kloof kan echter aanzienlijk worden als de principal-server onder een zware werkbelasting valt of als het systeem van de mirrorserver overbelast is.
Zodra de principal-server een logboekrecord naar de mirror-server verzendt, verzendt de principal-server een bevestiging naar de client in de high performance-modus. Er wordt niet gewacht op een bevestiging van de mirrorserver. Dit betekent dat transacties worden doorgevoerd zonder te wachten totdat de mirrorserver het logboek naar de schijf schrijft. Met een dergelijke asynchrone bewerking kan de principal-server worden uitgevoerd met minimale transactielatentie, op het potentiële risico van gegevensverlies.
Alle databasespiegelingsessies ondersteunen slechts één principal-server en één mirrorserver. Deze configuratie wordt weergegeven in de volgende afbeelding.
Voor de modus Hoge veiligheid met automatische failover is een derde serverexemplaren vereist, ook wel witness genoemd. In tegenstelling tot de twee partners, dient de getuige de database niet. De witness ondersteunt automatische failover door te controleren of de principal-server in werking is. De mirrorserver initieert alleen automatische failover als de spiegel en de witness met elkaar verbonden blijven nadat beide zijn losgekoppeld van de principal-server.
In de volgende afbeelding ziet u een configuratie die een witness bevat.
Zie Rolwisseling verderop in dit onderwerp voor meer informatie.
Opmerking
Voor het tot stand brengen van een nieuwe mirroringsessie of het toevoegen van een witness aan een bestaande mirroringconfiguratie moet voor alle betrokken serverexemplaren dezelfde versie van SQL Server worden uitgevoerd. Wanneer u echter een upgrade uitvoert naar SQL Server 2008 (10.0.x) of een latere versie, kunnen de versies van de betrokken exemplaren variëren. Zie Gespiegelde exemplaren upgraden voor meer informatie.
Transactieveiligheid en bedrijfsmodi
Of een bedrijfsmodus asynchroon of synchroon is, is afhankelijk van de veiligheidsinstelling voor transacties. Als u SQL Server Management Studio uitsluitend gebruikt om databasespiegeling te configureren, worden instellingen voor transactieveiligheid automatisch geconfigureerd wanneer u de bewerkingsmodus selecteert.
Als u Transact-SQL gebruikt om databasespiegeling te configureren, moet u weten hoe u transactieveiligheid instelt. Transactieveiligheid wordt bepaald door de SAFETY eigenschap van de ALTER DATABASE instructie. In een database die wordt gespiegeld, SAFETY is vol of OFF.
Als de
SAFETYoptie is ingesteld op VOLLEDIG, is de databasespiegelingsbewerking synchroon na de eerste synchronisatiefase. Als een witness is ingesteld in de modus voor hoge veiligheid, ondersteunt de sessie automatische failover.Als de
SAFETYoptie is ingesteld opOFF, is databasespiegelingsbewerking asynchroon. De sessie wordt uitgevoerd in de modus met hoge prestaties en deWITNESSoptie moet ook zijnOFF.
Zie De operationele modi databasespiegeling voor meer informatie.
Rolwisseling
Binnen de context van een databasespiegelingssessie zijn de principal- en spiegelrollen doorgaans uitwisselbaar in een proces dat rolwisseling wordt genoemd. Bij het overschakelen van de rol wordt de hoofdrol overgebracht naar de mirrorserver. Bij het schakelen tussen rollen fungeert de mirror-server als de failoverpartner voor de principal-server. Wanneer er een functiewissel plaatsvindt, neemt de mirrorserver de principal-rol over en brengt de kopie van de database online als de nieuwe principal-database. De voormalige principal-server, indien beschikbaar, gaat ervan uit dat de spiegelfunctie en de bijbehorende database de nieuwe gespiegelde database wordt. Mogelijk kunnen de rollen herhaaldelijk heen en weer schakelen.
De volgende drie vormen van rolwisseling bestaan.
Automatische failover
Hiervoor zijn de modus voor hoge veiligheid en de aanwezigheid van de mirrorserver en een witness vereist. De database moet al worden gesynchroniseerd en de witness moet zijn verbonden met de mirrorserver.
De rol van de witness is om te controleren of een bepaalde partnerserver in werking is. Als de mirrorserver de verbinding met de principal-server verliest, maar de witness nog steeds is verbonden met de principal-server, start de mirrorserver geen failover. Zie Database Mirroring Witness voor meer informatie.
Handmatige failover
Hiervoor is de modus voor hoge veiligheid vereist. De partners moeten met elkaar zijn verbonden en de database moet al worden gesynchroniseerd.
Geforceerde service (met mogelijk gegevensverlies)
Onder de modus met hoge prestaties en de modus voor hoge veiligheid zonder automatische failover is het afdwingen van de service mogelijk als de principal-server is mislukt en de mirrorserver beschikbaar is.
Belangrijk
De modus Met hoge prestaties is bedoeld om zonder witness te worden uitgevoerd. Maar als er een witness bestaat, vereist het afdwingen van de service dat de witness is verbonden met de mirrorserver.
Zodra de nieuwe principal-database online komt, kunnen de clienttoepassingen snel worden hersteld door opnieuw verbinding te maken met de database.
Gelijktijdige sessies
Een bepaald serverexemplaren kunnen deelnemen aan meerdere gelijktijdige databasespiegelingsessies (eenmaal per gespiegelde database) met dezelfde of verschillende serverexemplaren. Vaak dient een serverexemplaren uitsluitend als partner of witness in alle databasespiegelingsessies. Omdat elke sessie echter onafhankelijk is van de andere sessies, kan een serverexemplaren optreden als partner in sommige sessies en als getuige in andere sessies. Denk bijvoorbeeld aan de volgende vier sessies tussen drie serverexemplaren (SSInstance_1, SSInstance_2en SSInstance_3). Elk serverexemplaren fungeert als partner in sommige sessies en als getuige in andere:
| Serverexemplaren | Sessie voor database A | Sessie voor database B | Sessie voor database C | Sessie voor database D |
|---|---|---|---|---|
SSInstance_1 |
Witness | Partner | Partner | Partner |
SSInstance_2 |
Partner | Witness | Partner | Partner |
SSInstance_3 |
Partner | Partner | Witness | Witness |
In de volgende afbeelding ziet u twee serverexemplaren die deelnemen als partners in twee spiegelingssessies. De ene sessie is voor een database met de naam Db_1 en de andere sessie is voor een database met de naam Db_2.
Elk van de databases is onafhankelijk van de andere databases. Een serverexemplaren kunnen bijvoorbeeld in eerste instantie de gespiegelde server voor twee databases zijn. Als een van deze databases een failover-overschakeling uitvoert, wordt het serverexemplaren de principal-server voor de database waarvoor een failover is uitgevoerd en blijft de mirrorserver voor de andere database.
Denk bijvoorbeeld aan een serverexemplaren die de principal-server is voor twee of meer databases die worden uitgevoerd in de modus voor hoge veiligheid met automatische failover. Als het serverexemplaren uitvalt, worden alle databases automatisch een failover uitgevoerd naar hun respectieve mirrordatabases.
Wanneer u een serverexemplaren instelt om zowel als partner als witness te werken, moet u ervoor zorgen dat het eindpunt voor databasespiegeling beide rollen ondersteunt (zie het eindpunt voor databasespiegeling (SQL Server) voor meer informatie. Zorg er ook voor dat het systeem voldoende resources heeft om resourceconflicten te verminderen.
Opmerking
Omdat gespiegelde databases onafhankelijk van elkaar zijn, kunnen databases geen failover uitvoeren als groep.
Clientverbindingen
Ondersteuning voor clientverbindingen voor databasespiegelingsessies wordt geleverd door de Microsoft .NET-gegevensprovider voor SQL Server. Zie Clients verbinden met een databasespiegelingssessie (SQL Server) voor meer informatie.
Gevolgen van het onderbreken van een sessie in het principal-transactielogboek
De eigenaar van de database kan op elk gewenst moment een sessie onderbreken. Als u de sessiestatus onderbroken houdt, blijft de sessiestatus behouden tijdens het verwijderen van spiegeling. Wanneer een sessie wordt onderbroken, verzendt de principal-server geen nieuwe logboekrecords naar de mirrorserver. Al deze records blijven actief en verzamelen zich in het transactielogboek van de principal-database. Zolang een databasespiegelingssessie onderbroken blijft, kan het transactielogboek niet worden afgekapt. Als de databasespiegelingssessie te lang is onderbroken, kan het logboek daarom worden opgevuld.
Zie Databasespiegeling onderbreken en hervatten (SQL Server) voor meer informatie.
Databasespiegelingssessie instellen
Voordat een mirroringsessie kan worden gestart, moet de database-eigenaar of systeembeheerder de gespiegelde database maken, eindpunten en aanmeldingen instellen en in sommige gevallen certificaten maken en instellen. Zie Databasespiegeling (SQL Server) instellen voor meer informatie.
Interoperabiliteit en co-existentie met andere functies van de database-engine
Databasespiegeling kan worden gebruikt met de volgende functies of onderdelen van SQL Server.
In deze sectie
Vereisten, beperkingen en aanbevelingen voor databasespiegeling Beschrijft de vereisten en aanbevelingen voor het instellen van databasespiegeling.
Bedrijfsmodi voor databasespiegeling Bevat informatie over de synchrone en asynchrone operationele modi voor databasespiegelingsessies en over het wisselen van partnerrollen tijdens een databasespiegelingssessie.
Databasespiegelingswitness Beschrijft de rol van een witness in databasespiegeling, het gebruik van één witness in meerdere spiegelingssessies, software- en hardwareaanvelingen voor getuigen en de rol van de witness bij automatische failover. Het bevat ook informatie over het toevoegen of verwijderen van een witness.
Rolwisseling tijdens een databasespiegelingssessie (SQL Server) Bevat informatie over het wisselen van partnerrollen tijdens een databasespiegelingssessie, waaronder automatische failover, handmatige failover en geforceerde service (met mogelijk gegevensverlies). Bevat ook informatie over het schatten van de onderbreking van de service tijdens het overschakelen van rollen.
Mogelijke fouten tijdens databasespiegeling Hiermee worden fysieke, besturingssysteem- en SQL Server-problemen besproken, waaronder harde fouten en zachte fouten, die een fout kunnen veroorzaken in een databasespiegelingssessie. Beschrijft hoe het time-outmechanisme voor spiegeling reageert op zachte fouten.
Het eindpunt voor databasespiegeling (SQL Server) Beschrijft hoe het eindpunt voor databasespiegeling functioneert.
Databasespiegeling instellen (SQL Server) Bevat onderwerpen over de vereisten, aanbevelingen en stappen voor het instellen van databasespiegeling.
Clients verbinden met een databasespiegelingssessie (SQL Server) Bevat onderwerpen over kenmerken van clientverbindingsreeksen en de algoritmen voor het verbinden en opnieuw verbinden van een client met een gespiegelde database.
Databasespiegeling onderbreken en hervatten (SQL Server) Beschrijft wat er gebeurt terwijl databasespiegeling wordt onderbroken, inclusief de impact op afkapping van transactielogboeken en bevat beschrijvingen over het onderbreken en hervatten van databasespiegeling.
Databasespiegeling verwijderen (SQL Server) De impact van het verwijderen van spiegeling en bevat beschrijvingen over het beëindigen van een sessie
Databasespiegeling bewaken (SQL Server) Bevat informatie over het gebruik van Database Mirroring Monitor of de opgeslagen dbmmonitor-procedures voor het bewaken van databasespiegeling of sessies.
Gerelateerde taken
Configuratietaken
SQL Server Management Studio gebruiken
De wizard Databasespiegelingsbeveiliging configureren starten
Een databasespiegelingssessie tot stand brengen - Windows-verificatie
Transact-SQL gebruiken
Databasespiegeling - Netwerktoegang toestaan - Windows-verificatie
Databasespiegeling - Certificaten gebruiken voor uitgaande verbindingen
Databasespiegeling - Certificaten gebruiken voor binnenkomende verbindingen
Een eindpunt voor databasespiegeling maken voor Windows-verificatie (Transact-SQL)
Een databasespiegelingswitness toevoegen met Windows-verificatie (Transact-SQL)
Een gespiegelde database instellen voor het gebruik van de betrouwbare eigenschap (Transact-SQL)
Transact-SQL of SQL Server Management Studio gebruiken
Beheertaken
Transact-SQL
Transactieveiligheid wijzigen in een databasespiegelingssessie (Transact-SQL)
Handmatig een failover uitvoeren voor een databasespiegelingssessie (Transact-SQL)
Service forceren in een databasespiegelingssessie (Transact-SQL)
Een databasespiegelingssessie onderbreken of hervatten (SQL Server)
De witness verwijderen uit een databasespiegelingssessie (SQL Server)
SQL Server Management Studio
Een databasespiegelingswitness toevoegen of vervangen (SQL Server Management Studio)
Handmatig een failover uitvoeren voor een databasespiegelingssessie (SQL Server Management Studio)
Een databasespiegelingssessie onderbreken of hervatten (SQL Server)
De witness verwijderen uit een databasespiegelingssessie (SQL Server)
Verwante inhoud
- Het eindpunt voor databasespiegeling (SQL Server)
- Automatisch paginaherstel (beschikbaarheidsgroepen: databasespiegeling)
- Problemen met databasespiegelingconfiguratie (SQL Server) oplossen
- Databasespiegeling: interoperabiliteit en co-existentie (SQL Server)
- Vereisten, beperkingen en aanbevelingen voor databasespiegeling
- Wat is een AlwaysOn-beschikbaarheidsgroep?
- Over Logboekverzending (SQL Server)