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
OLE DB-stuurprogramma downloaden
Note
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, geïntroduceerd in SQL Server 2005 (9.x), is een oplossing voor het vergroten van de beschikbaarheid en redundantie van data. De OLE DB Driver for SQL Server biedt impliciete ondersteuning voor databasespiegeling, zodat de ontwikkelaar geen code hoeft te schrijven of andere acties hoeft te ondernemen zodra deze voor de database is geconfigureerd.
Databasespiegeling, die per database wordt geïmplementeerd, bewaart een kopie van een SQL Server-productiedatabase op een stand-byserver. Deze server is een dynamische of warme stand-byserver, afhankelijk van de configuratie en status van de databasespiegelingssessie. Een hot standby-server ondersteunt snelle failover zonder verlies van toegewijde transacties, en een warme standby-server ondersteunt het forceren van service (met mogelijk dataverlies).
De productiedatabase wordt de hoofddatabase genoemd, en de standby-kopie wordt de spiegeldatabase genoemd. De hoofddatabase en mirror-database moeten op aparte instanties van SQL Server (serverinstanties) staan, en ze moeten indien mogelijk op aparte computers staan.
De productieserverinstantie, de hoofdserver genoemd, communiceert met de standby-serverinstantie, de zogenaamde mirror server. De hoofd- en spiegelservers fungeren als partners binnen een databasespiegelingssessie. Als de hoofdserver faalt, kan de spiegelserver zijn database omzetten in de hoofd-database via een proces genaamd failover. Partner_A en Partner_B zijn bijvoorbeeld twee partnerservers, waarbij de principal-database in eerste instantie op Partner_A als principal-server staat en de gespiegelde database die zich op Partner_B bevindt als de gespiegelde server. Als Partner_A offline gaat, kan de database op Partner_B een failover uitvoeren om de huidige principal-database te worden. Wanneer Partner_A opnieuw deelnemen aan de spiegelingssessie, wordt deze de gespiegelde server en wordt de bijbehorende database de gespiegelde database.
Alternatieve configuraties voor databasespiegeling bieden verschillende prestatie- en gegevensveiligheidsniveaus en ondersteunen verschillende vormen van failover. Zie Databasespiegeling (SQL Server) voor meer informatie.
Het is mogelijk een alias te gebruiken bij het specificeren van de naam van de mirrordatabase.
Note
Voor informatie over initiële verbindingspogingen en herverbindingspogingen met een gespiegelde database, zie Connect Clients to a Database Mirroring Session (SQL Server).
Aandachtspunten voor programmeren
Wanneer de principal-databaseserver mislukt, ontvangt de clienttoepassing fouten in reactie op API-aanroepen, wat aangeeft dat de verbinding met de database is verbroken. Wanneer dit gebeurt, gaan alle niet-committed wijzigingen in de database verloren en wordt de huidige transactie teruggedraaid. Als dit gebeurt, moet de applicatie de verbinding sluiten (of het databronobject vrijgeven) en opnieuw openen. De verbinding wordt transparant doorgestuurd naar de mirrordatabase, die nu fungeert als de hoofdserver.
Wanneer een verbinding tot stand is gebracht, dan verzendt de principal-server de identiteit van de failoverpartner naar de client om te worden gebruikt wanneer er een failover plaatsvindt. Wanneer een applicatie probeerde een verbinding op te zetten nadat de hoofdserver was uitgevallen, weet de client niet wie de failoverpartner is. Om clients de mogelijkheid te geven om met dit scenario om te gaan, stellen een initialisatie-eigenschap en een bijbehorende verbindingsreeks-sleutelwoord de client in staat om zelf de identiteit van de failoverpartner op te geven. Het clientattribuut wordt alleen in dit scenario gebruikt; Als de hoofdserver beschikbaar is, wordt deze niet gebruikt. Als de failover-partnerserver die door de client wordt geleverd niet verwijst naar een server die als failoverpartner fungeert, wordt de verbinding door de server geweigerd. Om applicaties toe te staan zich aan configuratiewijzigingen aan te passen, kan de identiteit van de daadwerkelijke failoverpartner worden bepaald door het attribuut te inspecteren nadat de verbinding is tot stand gebracht. Je zou moeten overwegen de partnerinformatie te cachen om de verbindingsreeks bij te werken of een herkansingsstrategie te bedenken als de eerste poging tot een verbinding mislukt.
Note
Je moet expliciet specificeren welke database door een verbinding gebruikt moet worden als je deze functie wilt gebruiken in een DSN, verbindingsreeks of connection property/attribuut. De OLE DB Driver for SQL Server zal niet proberen failover te maken naar de partnerdatabase als dit niet gebeurt.
Mirroring is een functie van de database. Applicaties die meerdere databases gebruiken, kunnen deze functie mogelijk niet benutten.
Daarnaast zijn servernamen naamloos voor hoofdletters en hoofdletters, maar databasenamen zijn hoofdlettergevoelig. Je moet er daarom voor zorgen dat je dezelfde behuizing gebruikt in DSN's en verbindingsstrings.
OLE DB-stuurprogramma voor SQL Server
De OLE DB Driver for SQL Server ondersteunt databasespiegeling via connection- en verbindingsreeks-attributen. De eigenschap SSPROP_INIT_FAILOVERPARTNER is toegevoegd aan de DBPROPSET_SQLSERVERDBINIT eigenschapsset, en het FailoverPartner-sleutelwoord is een nieuw verbindingsreeks attribuut voor DBPROP_INIT_PROVIDERSTRING. Voor meer informatie, zie Verbindingsstring-sleutelwoorden gebruiken met OLE DB Driver for SQL Server.
De failovercache wordt onderhouden zolang de provider geladen is, totdat CoUninitialize wordt aangeroepen of zolang de applicatie een verwijzing heeft naar een object dat wordt beheerd door de OLE DB Driver for SQL Server, zoals een databronobject.
Voor details over de ondersteuning van databasespiegeling van de OLE DB Driver for SQL Server, zie Initialisatie- en Autorisatie-eigenschappen.