• No results found

Oracle biedt een aantal verschillende producten aan voor niet alleen beschikbaarheid, maar ook voor het doen van onderhoud, het maken van backups en het herstellen van fouten. Hier worden alleen de producten beschreven die direct invloed uitoefenen op beschikbaarheid of replicatie. Tools zoals Oracle Flashback waarmee snapshots hersteld kunnen worden, komen niet aan de orde.

Oracle heeft drie verschillende producten op HA gebied, namelijk Oracle Fail Safe, Real Application Clusters en Data Guard. Oracle Fail Safe is een uitbreiding op Microsoft Cluster Server en biedt fail-over clustering. Real Application Clusters is een echte cluster oplossing, waarmee tot 100 nodes worden ondersteunt. Oracle Data Guard kan worden gebruikt voor het repliceren van data en fail-over.

A.1.1. Oracle Fail Safe

Oracle Fail Safe [33] is High Availability software die de fail-over van Oracle databases verzorgt in een Microsoft Cluster Server (MSCS) [55]. MSCS kan gebruikt worden om taken van het primaire systeem in een cluster over te zetten naar een secundair systeem. MSCS heeft echter geen kennis van Oracle databases en applicaties. Fail Safe integreert met MSCS om de Oracle databases en applicaties van fail-over functionaliteit te voorzien die is afgestemd op de Oracle producten.

Het gebruik van shared-storage in een MSCS cluster is noodzakelijk, zodat het secundaire systeem bij de data kan als een fail-over plaats moet vinden. Bij een fail-over wordt de data afgekoppeld van het primaire systeem en toegewezen aan het secundaire systeem, zodat deze de data kan bewerken.

Door middel van Fail Safe kunnen zogenaamde rolling cluster upgrades worden uitgevoerd. Dit betekent dat systemen in verschillende fasen van een nieuwe versie kunnen worden voorzien. Fail Safe houdt de database in de gaten en kan

een fail-over initiëren als de database faalt. Zonder het gebruik van Fail Safe leiden database problemen niet automatisch tot een fail-over, tenzij een ander component,bijvoorbeeld een harde schijf, wat door het MSCS wordt bewaakt ook faalt. In dat geval worden alle services naar een secundair systeem overgeheveld door het MSCS. De Fail Safe software biedt specifieke bewaking van de database en hevelt deze over als er voor de rest geen problemen zijn die voor het MSCS tot actie zouden leiden.

Fail Safe is alleen mogelijk op Windows systemen die de MSCS technologie ondersteunen.

A.1.2. Oracle Data Guard

Oracle Data Guard [35] is een standaard onderdeel van de Oracle Database Enterprise Edition en is vergelijkbaar met Microsoft SQL Server Database Mirroring. Data Guard biedt een replicatie van database transacties door middel van transactie logs. Data Guard houdt een transactioneel consistente kopie van de productie database bij op tot negen standby databases.

Data Guard kan zowel met een redo apply als een sql apply werken. In Redo apply wordt de redo data van de productie database op de standby database gesynchroniseerd. De standby is een physical standby van de productie database. De stand-by kan gebruikt worden voor read-only requests, zoals rapportages en het maken van back-ups. In SQL apply worden de redo logs omgezet naar sql statements, waarna deze op de stand-by worden uitgevoerd. Bij het gebruik van SQL apply wordt de by database een logische stand-by genoemd. Dit betekent dat de database niet afhankelijk is van de primaire database en ook op zichzelf kan functioneren. Er worden slechts SQL statements vanaf een andere machine uitgevoerd, maar voor de database is er geen onderscheid tussen een replicatie statement of een sql statement van een gewone client. Hierdoor is het mogelijk dat deze database ook voor schrijfacties van clients gebruikt kan worden. Er wordt echter niet teruggesynchroniseerd naar de primaire database, zodat de ingevoerde gegevens op deze machine verloren gaan als deze uitvalt. Hierdoor is SQL apply vooral geschikt als een decision support system, waarop rapportages uitgevoerd kunnen worden en eventuele resultaten opgeslagen kunnen worden.

Data Guard heeft drie verschillende modi, namelijk Maximum Protection, Maximum Availability en Maximum Performance. De eerste twee bieden synchrone replicatie met en zonder blocking, de laatste asynchrone replicatie. Maximum Protection biedt synchrone replicatie van de primaire naar de standby databases. Transacties worden pas gecommit als redo data beschikbaar is op minimaal één van de stand-by servers. Als er geen stand-by servers beschikbaar zijn, dan stopt het verwerken van de transactie en kan er geen data meer weggeschreven worden. De transacties worden door de Oracle database geblokkeerd, omdat niet de garantie gegeven kan worden dat de data op minimaal twee plekken weggeschreven kan worden. Data Guard Maximum Protection garandeert dus dat transacties die verwerkt zijn op minimaal twee

plekken zijn opgeslagen, zodat de uitval van een van de systemen geen dataverlies met zich meebrengt. Oracle raadt bij het gebruik van Maximum Protection aan om minimaal twee stand-by servers te gebruiken, zodat de uitval van een stand-by geen stop van transacties betekent. Door het gebruik van synchrone replicatie is er een negatieve impact mogelijk op de reponse tijden van de database. Het gebruik van hoge bandbreedte met lage latency’s wordt daarom aangeraden. [35]

Maximum Availability biedt hetzelfde als Maximum Protection met als verschil dat het ontbreken van een stand-by server geen onderbreking oplevert van de verwerking van transacties. Op deze manier heeft het optreden van een stand-by server crash of netwerk partitie geen gevolgen voor de beschikbaarheid van de data. Mogelijk dataverlies kan optreden als de productie database uitvalt, voordat de stand-by of het netwerk gerepareerd is. Als het probleem herstelt is, zal de stand-by gesynchroniseerd worden tot de laatste transactie en treedt geen dataverlies op indien de productie dan uitvalt.

Maximum Performance tenslotte maakt gebruik van een asynchrone replicatietechniek, waarbij de replicatie van de data geen invloed uitoefent op het aantal transacties wat het systeem kan verwerken. Maximum Performance is de standaard techniek van Data Guard en is vooral aan te raden bij applicaties die hoge performance nodig hebben of replicatie over WAN links met hoge latency. Deze vorm van replicatie loopt wel het risico dat dataverlies optreedt bij het optreden van een crash van de primaire server, doordat de stand-by niet volledig up-to-date is.

Data Guard ondersteunt automatische failover, zodat een standby database de taken van de productie database over kan nemen. Voor het gebruik van Data Guard is het noodzakelijk hetzelfde platform te gebruik voor zowel de productie als de standby database. Dat betekent overal het zelfde operating system en dezelfde database versie, tenzij logical standby’s worden gebruikt in rolling update mode [35].

A.1.3. Oracle Real Application Clusters (RAC)

Oracle Real Application Clusters [56], afgekort tot RAC, is de database cluster oplossing van Oracle. Met Oracle RAC in versie 10g R2 kunnen maximaal 100

machines, afhankelijk van het gebruikte operating system, worden

samengebracht om als een grote database te opereren [57].

In het RAC systeem is een scheiding gemaakt tussen de processen die de data benaderen, de zogenaamde Oracle Instances en de data opslag, de Oracle Database. Bij een standalone database bevinden beide zich op hetzelfde systeem, in RAC bevindt de Oracle Database zich op de storage laag en de Oracle Instances op de verschillende cluster machines. RAC bestaat dus uit twee verschillende lagen, die met elkaar moeten communiceren. Om alle instances toegang te geven tot de Oracle Databases is het gebruik van shared-storage noodzakelijk [57]. Om te voorkomen dat de shared-shared-storage een single point of failure wordt, is het noodzakelijk deze redundant uit te voeren.

Voor het gebruik van meerdere locaties biedt Oracle het RAC on Extended Distance Clusters aan. Hierbij wordt een oplossing geboden voor het volledig uitvallen van een datacenter. Door middel van het extended distance cluster kan op twee datacenters het RAC cluster gedraaid worden, waarbij de afstand beperkt moet worden tot maximaal 100km. Grotere afstanden zijn door de dan steeds hoger wordende latency’s niet aan te raden [57]. De extreem hoge kosten van een aanbevolen directe kabelverbinding tussen beide datacenters zal deze oplossing slechts voor een beperkt aantal organisaties haalbaar maken. Bij uitvalsscenario’s waarbij de oorzaak slechts een beperkte regio betreft zal dit product een oplossing bieden, bij scenario’s waarbij grote regio’s getroffen worden zoals aardbevingen en overstromingen voldoet ook de Extended distance cluster niet. In die gevallen wordt het gebruik van RAC in combinatie met Data Guard aangeraden, zodat grotere afstanden overbrugd kunnen worden. Daarbij is de configuratie en installatie van RAC met Data Guard een stuk eenvoudiger ten opzichte van de Extended Distance Clusters variant [57].