Oracle Multimaster Replicatie

Vergelijkbare documenten
Hoge beschikbaarheid bij Lips Textielservices Johan Westerduin, Transfer Solutions

Weblogic 10.3 vs IAS

Secure Application Roles

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

Oracle Rolling Upgrades met SharePlex Systems Consultant Quest Software Nederland 9/

SQL SERVER Werking van Database Snapshots

Sparse columns in SQL server 2008

Extreem hoog beschikbaar

Hoog Beschikbaarheid en het waterschapshuis

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: Groep TDI 1

10: Advertentie Database Systems 2003

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

5/5 Red Carpet. 5/5.1 Inleiding

Functionaliteiten 4orange Connect

Datamodelleren en databases 2011

SQL datadefinitietaal

NetPay Desktop Reporting. Rapportage voor Xafax NetPay

Joop Cornelissen BMC Klantendag Professionaliseren dienstverlening CMS

EMBEDDED SQL. Inleiding. Queries en update-opdrachten. Embedden en hostvariabelen

Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT

SQL Server Service Broker

Zelftest Java EE Architectuur

Elfde-Liniestraat Hasselt Schooljaar TINFO POKER GAME Oracle Scripts

Welkom! GertJan Coolen

Technical Note. API Beschrijving Aangetekend Mailen

CONTAINERIZATION OF APPLICATIONS WITH MICROSOFT AZURE PAAS SERVICES

GPP - GENERAL PURPOSE TRACKING PARAMETER INSTALLATIEHANDLEI- DING VOOR PUBLISHERS

Oracle Database Vault

End-to-End testen: de laatste horde

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

Is APEX a worthy substitute for Oracle Forms?

Handleiding configuratie en gebruik tekenmodule

Les 11 : Basis SQL (deel2).

Titel Uw processen transparant met SAP Process Mining.

1 Labo 4 H 8 Jobs, Alerts en Operators H 9 Monitoring en Troubleshooting

Bijlage 8. Testprogramma brandreactiemodulen LBK

Beveiligingsbeleid. Online platform Perflectie

DRIVEN BY AMBITION SUCCESVOL EXACT IMPLEMENTEREN IN DE PRIVATE CLOUD

Hieronder een onderzoeksverslagje bij een klant van ons die een voledige onbeschibare Vmware esx omgeving had.

DB architectuur.

Databases - Inleiding

ez Mailing Manager - Create your First Campaign

Functionaliteit: lvwoz-processor 1. In deze versie worden de opentunnel.extra eigenschappen van berichten correct geretourneerd naar OpenTunnel.

2.2 Een tabel ontwerpen

Bescherming van (software) IP bij uitbesteding van productie

Uw digitale werkplek met de beste bedrijfssoftware

Postcode module Webservices

2.ouderbeleid.3.plaatsingsprocedure werk admini Pagina 1 van 14

Managed VoIP. Inhoud. 1 Handleiding telefoon configuratie. 1.1 Aanmelden van de locatie

Workshop Low Cost High Value Service Delivery Models

APEX vs OutSystems, een vergelijking door een gebruiker

Dataconversie met Oracle Spatial

EXACT ONLINE INTEGRATION TOOL VERSIE 1.0.9

Vrijgave Inspire release 8.3. Nieuwe functionaliteit Inspire Designer 8.3

Gis-Solutions. BGT Basisregistratie Grootschalige Topografie

OFFICE A LA CARTE - ACCESS 2013

WHITE PAPER. by Default Reasoning

General info on using shopping carts with Ingenico epayments

Database mirroring met SQL Server 2005

Normaliseren versie 1.1

Right Availability voor Provincie Zeeland met Active Data Guard 11g

HOW TO RESTORE A SYSTEM IMAGE IN WINDOWS SERVER 2012

Unify- SLES Linux update handleiding

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.

6. Het maken van een database

Technische implementatie De infrastructuur rondom Transit kent de volgende rollen:

Katholieke Hogeschool Kempen

TSMS Lite, Professional and Enterprise vergelijking

2.9 Tabellen: oefeningen

Release notes Mosaic 1.3.3

Katholieke Hogeschool Kempen

Katholieke Hogeschool Kempen Campus Geel Departement Handelswetenschappen en Bedrijfskunde 3de jaar Toegepaste Informatica

SAP Manufacturing Integration & Intelligence Communiceren met het gebruiksgemak van een WhatsApp

Automa'c Storage Management 11 g release 2. OGH DBA DAG 14 september 2010 Rob den Braber

Disaster Recovery. VMware Cloud on AWS

CAK Installatiehandleiding

Informatie & Databases

SI-Profibus. Unidrive M700-M702 en Siemens S7-300 PLC (STEP 7)

Introductie in flowcharts

6.2 VBA Syntax. Inleiding Visual Basic

MyDHL+ ProView activeren in MyDHL+

BIM 4.2. (VLAIO) BIM e-commerce

Gebruikershandleiding DAMO Watersysteem. Versie 1.0

NIS Notarieel Informatie Systeem

MyDHL+ Van Non-Corporate naar Corporate

Wat is nieuw in Enterprise Guide

Webapplicatie-generatie NIOC 2013

SI-Profinet. Unidrive M700 en Siemens S7-300 PLC (Step 7)

Verslag. Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers

Relationele Databases 2002/2003

Data Handling Ron van Lammeren - Wageningen UR

Welkom! Michael Sourbron.

Oracle client 1.2 voor ixperion 1.3 en hoger

1. Milieuklacht Handleiding opladen XML in mkros Werken met Refertes... 5

Beveiligingsbeleid Perflectie. Architectuur & Procedures

Model driven Application Delivery

SQL Plan Management in Oracle11g Harald van Breederode

Transcriptie:

Oracle Multimaster Replicatie Gedistribueerde databasesystemen Overal om ons heen hebben we te maken met gegevens. Veel van deze gegevens worden opgeslagen in database systemen. Om vanuit verschillende locaties deze gegevens te kunnen gebruiken als informatie moeten de database systemen te benaderen zijn. Eén centraal databasesysteem kan in een aantal situaties niet voldoende zijn om alle gegevens te verzamelen. Om toch over alle gegevens te kunnen beschikken kunnen verschillende database systemen gebruik maken van replicatie om onderling gegevens uit te wisselen. Oracle database systemen hebben de mogelijkheid om gebruik te maken van diverse vormen van replicatie: snapshot replicatie en multimaster replicatie. Snapshot replicatie is een vorm van replicatie waarbij de gegevens vanuit de master database gedistribueerd worden naar de snapshot database(s). De gerepliceerde gegevens in de snaphot database zijn read-only en kunnen alleen in de masterdatabase worden gemuteerd. Een voorbeeld van een toepassing met behulp van snaphot replicatie is een winkelketen, waarbij de prijslijsten vanuit het hoofdkantoor up-todate gehouden worden. In figuur 1 is een schematische weergave van de replicatie weergegeven. Site A Database Site B Database Site C Database Figuur 1 HQ Database Prijslijsten Een meer geavanceerde methode van replicatie is multimaster replicatie. Deze vorm van replicatie is te gebruiken wanneer alle betrokken databases gelijkwaardig zijn. De objecten in een multimaster omgeving worden in een replicatie groep opgenomen, waarmee het gedrag van de replicatie objecten gedefinieerd kan worden. Alle objecten in een replicatie groep kunnen op alle betrokken databases worden gemuteerd. Er zijn twee typen replicatie mogelijk met multimaster replicatie: asynchroon en synchroon replicatie. In een asynchrone replicatie-omgeving worden mutaties in een replicatiegroep locaal bijgehouden en worden de wijzigingen in een queue geplaatst. Op een te definiëren tijdsinterval worden de wijzigingen doorgevoerd op de remote database(s). Met deze vorm van replicatie zijn alle betrokken databases op verschillende tijdstippen weer gelijkwaardig. Een synchrone replicatie-omgeving, ook wel real-time omgeving genoemd, voert mutaties uit op alle betrokken databases als één transactie.wanneer een mutatie op één van de betrokken databases niet doorgevoerd kan worden, zal de transactie door middel van een rollback ongedaan gemaakt worden en zal een foutmelding in de error-queue worden geplaatst. Conflictoplossing Het gebruik van multimaster replicatie brengt conflicten met zich mee, doordat mutaties op meerdere locaties op ongeveer dezelfde tijdstip optreden. De conflicten kunnen worden gegroepeerd in drie typen: update-, uniqueness- en delete conflicts. Een update conflict kan optreden wanneer op twee verschillende locaties wijzigingen op een zelfde database record plaatsvinden in een tijdsinterval voordat de transacties in de replicatie queue daadwerkelijk is doorgevoerd naar de overige deelnemende databases. Een uniqueness conflict ontstaat wanneer het doorvoeren van een mutatie op een database record kan leiden tot het overtreden van de entiteit integriteit, zoals een primary key of unique constraint. 20

Bedrijf X Een voorbeeld van een toepassing van (asynchroon) multimaster replicatie is het up-to-date houden van producten en diensten voor een internationaal bedrijf: Bedrijf X is gevestigd in vier landen: Brazilië, Nederland, Japan en Australië. Op iedere locatie zijn een aantal regiokantoren van bedrijf X gevestigd. Bedrijf X heeft een groot aantal andere internationale bedrijven als klant en wil daarom dat alle producten en diensten over de vier landen geregistreerd wordt. Hierdoor kan bedrijf X het totale gedrag van de klant analyseren en daarop beter op reageren en aanbiedingen op maat ontwikkelen (zie ook figuur 2). Een delete conflict kan optreden wanneer twee transacties op verschillende locaties worden uitgevoerd, waarbij de eerste transactie een database record verwijderd en de tweede transactie dezelfde database record update of verwijderd. Doordat de database record niet meer bestaat, zal de tweede transactie een melding in de error-queue opleveren. Detectie Hoe detecteert een Oracle database deze conflicten? De ontvangende mastersite database in een replicatie omgeving ontvangt informatie over de waarde voor de mutatie en de waarde na de mutatie vanuit de verzendende mastersite database. Hiervoor worden twee database procedures voor gebruikt: DBMS_REPCAT.SEND_OLD_VALUES( HQ Nederland HQ Brazilië { column_list column_table IN DBMS_UTILITY.VARCHAR2s DBMS_UTILITY.LNAME_ARRAY,} operation IN VARCHAR2 := update delete *, send IN BOOLEAN := true false ); DBMS_REPCAT.COMPARE_OLD_VALUES( HQ Australië HQ Japan { column_list column_table IN DBMS_UTILITY.VARCHAR2s DBMS_UTILITY.LNAME_ARRAY,} operation IN VARCHAR2 := update delete *, compare IN BOOLEAN := true false ); Figuur 2. Een opzet van gedistribueerde databases systemen met (asynchroon) multimaster replicatie De regiokantoren kunnen nieuwe producten en diensten registreren die doorgevoerd worden naar het hoofdkantoor en vervolgens worden doorgevoerd naar de overige gedistribueerde databases over de verschillende landen. van andere landen kunnen deze nieuwe producten en diensten van klanten die ook in de eigen regio actief zijn aanbieden. De initiële implementatie van een multimaster replicatie voor bedrijf X bestaat o.a. uit de volgende stappen: Het analyseren en definiëren van replicatie objecten in de database en de daarbij betrokken master site databases. Het definiëren van replicatie groep(en) waarin het gedrag van de replicatie objecten gedefinieerd kunnen worden. Het bepalen van de replicatie-eigenschappen, zoals de type replicatie en tijdsinterval waarin de replicatie plaats moet vinden. Parameter bevindt column_list column_table operation send Omschrijving schema naam waarin het object zich naam van de te repliceren tabel een comma-delimited lijst van kolommen in de tabel een procedure om een lijst van kolommen in de tabel te genereren type operatie: update, delete of * voor update en delete true: verzenden/vergelijken van oude waarden false: niet verzenden/vergelijken van oude waarden Tabel 1: procedure send_old_values / compare_old_values parameter lijst De ontvangende mastersite database detecteert een update conflict, indien de oude waarde voor de mutatie niet overeenkomt met de locale waarde in de database. Een uniqueness 21

conflict wordt gedetecteerd wanneer de ontvangende mastersite database een uniqueness constraint violation melding ontvangt wanneer de insert of update transacties op de lokale database worden uitgevoerd. Een delete conflict wordt gedetecteerd wanneer de ontvangende master site database geen primary key van de betreffende record kan vinden om een delete of update transactie door te voeren. Om de genoemde conflicten op te kunnen lossen kan gebruik gemaakt worden van de Conflict Resolution methode. Met deze methoden kunnen regels worden opgesteld waardoor de mutaties volgens de gedefinieerde regels worden uitgevoerd indien een conflict optreedt. Enkele voorbeelden van regels waarop de conflict resolution methoden gebruikt kan worden zijn gebaseerd op: Minimum/maximum waarden indien een update conflict optreedt, waarbij de door te voeren waarde kleiner/groter is dan de huidige waarde zal de kleinste/grootste waarde worden doorgevoerd op de ontvangende master site database. In een situatie waarbij de door te voeren waarde gelijk is aan de huidige waarde, zal het conflict resolution mechanisme niet gebruikt worden en worden er geen wijzigingen in de lokale database plaatsvinden. Recente of oudste datum (timestamps) de wijziging die het eerst/laatst is uitgevoerd zal worden doorgevoerd in de ontvangende master site database. Additive De additive methode werkt uitsluitend met kolommen met numerieke waarden. Indien een conflict optreedt, wordt het verschil tussen de oude waarde en de nieuwe waarden bij de huidige waarde opgeteld. current value = current value + (new value - old value) Priority groups Met priority groups kunnen prioriteitswaarden worden toegewezen aan mogelijke waarden die in de transacties kunnen voorkomen. Indien een conflict optreedt, zal de transactie met de grootste prioriteitswaarde worden doorgevoerd en de transactie met de laagste prioriteitswaarde ongedaan worden gemaakt. In release 8i en 9i zijn oude beperkingen op het gebied van multimaster replicatie niet meer aanwezig

Prioriteitswaarde Een voorbeeld van een conflict resolution methode die gedefinieerd kan worden voor bedrijf X is op basis van Priority Groups (site-name). Iedere locatie krijgt een prioriteitswaarde toegewezen, waarbij de wijzigingen vanuit het hoofdkantoor groter zijn dan de wijzigingen door de regiokantoren: Priority Group Site Name Prioriteitswaarde Brazilië 4 Japan Australië 2 Nederland 1 Indien een mutatie op een zelfde product of dienst vanuit Nederland en Brazilië wordt uitgevoerd, zal de wijziging van Brazilië (prioriteitswaarde 4) worden doorgevoerd naar de overige locaties en zal de wijziging van Nederland (prioriteitswaarde 1) ongedaan worden gemaakt (Brazilië heeft een hogere prioriteitswaarde dan Nederland). Load Balancing Multimaster replicatie kan goed gebruikt worden voor transaction processing applicaties, waarbij de database informatie op verschillende locaties benaderd kunnen worden voor: Distributie van grote hoeveelheden data Waarborgen van continue beschikbaarheid Aanbieden voor gelokaliseerde data toegang Tools Om een multimaster replicatie omgeving op te zetten kan gebruik worden gemaakt van tools, zoals Oracle Enterprise Manager met de Replication Management Tools. In figuur is een voorbeeld van een multimaster replicatie omgeving met bijbehorende topologie weergegeven. Toepassingsgebieden Het doel van replicatie is om er zeker van te zijn dat data beschikbaar is waar en wanneer dit nodig is. Hierdoor kan het gebruik van multimaster replicatie voor de volgende doelen gebruikt worden: Failover Multimaster replicatie kan gebruikt worden om de beschikbaarheid van mission critical databases te waarborgen. Indien een master database door een netwerk- of systeem storing niet beschikbaar is, kan gebruik gemaakt worden van een andere masterdatabase, omdat deze gelijkwaardig zijn. Applicaties die gebruik maken van de masterdatabase kunnen blijven functioneren. Oracle Net kan geconfigureerd worden om een automatische connect-time failover te gebruiken, waarmee Oracle Net automatisch overschakelt naar een andere master database site indien de eerste master database niet meer beschikbaar is. De functionaliteit van connect-time failover kan worden ingesteld door de FAILOVER parameter met de waarde ON in tns.ora op te nemen en meerdere connect descriptors te specificeren. sales.us.acme.com= (DESCRIPTION= (ADDRESS_LIST= (LOAD_BALANCE=off) (FAILOVER=ON) (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com))) Figuur. Topologie van een multimaster replicatie omgeving In de onderstaande flowchart zijn (globaal) de stappen weergegeven waarmee een replicatieomgeving opgezet kan worden met Oracle Enterprise Manager en de daarbij behorende Replication Management wizards. Naast het gebruik van grafische tools kan ook gebruik worden gemaakt van de Replication Packages in de Oracle database (DBMS_REPCAT), waarmee de volledige implementatie en beheer van Multimaster Replicatie uitgevoerd kan worden. Nieuwe ontwikkelingen De ontwikkelingen van replicatie hebben niet stil gestaan en zijn in de loop van de tijd verbeterd. Release 7. van de Oracle database heeft een beperkte mogelijkheid voor multimaster replicatie. In release 8i en 9i zijn de ontwikkelingen op het gebied van multimaster replicatie voortgeschreden en zijn de beperkingen niet meer aanwezig. Een voorbeeld van een beperking in Oracle 7. is het niet kunnen wijzigen van de multimaster 2

START Master 1 Use Setup Wizard to Set Up Master Sites (Right-click Multimaster Replication object) What type of replication site? No Materialized View Does the master site for the materialized view exist? 2 Create Master Group at Master Sites (Right-click Master Groups folder) 1 Yes Use Setup Wizard to Set Up Materialized Sites (Right-click Materialized View Site object) No Are data conflicts possible? Configure Conflict Resolution Methods on Master Tables 4 Yes Use Deployment Template Wizard to Create Deployment Template (Right-click Templates folder) Package and instaltiate Deployment Template 2 At Master Site with Deployment Template Create Materialized View Log at Master Sites for Fast Refresh (Right-click Materialized Log folder) How do you want to build the environment? At Materialized View Site Use Materialized View Group Wizard to Create materialized view Group (Right-click Materialized View Groups folder) END Figuur 4. Deze flowchart geeft een globaal overzicht van de stappen voor het opzetten van een replicatieomgeving met Oracle Enterprise Manager replicatie groepen terwijl replicatie actief is.wanneer een wijziging in een groep aangebracht moet worden, dient de hele replicatie gestopt te worden. Na de wijziging dient replicatie opnieuw geactiveerd te worden. In Oracle 8i en 9i kunnen deze groepen, waar geen onderhoud in plaatsvinden, actief blijven. Nadat de wijzigingen in de groep zijn doorgevoerd kan de replicatie voor de groep weer worden geactiveerd. Replicatie versus RAC Een andere manier om databases te koppelen, met onder meer als doel een hogere beschikbaarheid en betrouwbaarheid te verkrijgen, is RAC (Real Application Clustering). Hierbij wordt echter een geheel andere techniek gebruikt. Het grootste verschil tussen RAC en Replicatie is dat bij RAC er een virtuele eenheid van databases ontstaat en alles realtime verwerkt wordt. Bij replicatie zijn vertragingen tussen de diverse databases toegestaan en zijn de locaties als zelfstandige sites herkenbaar. Daarnaast wordt replicatie veel gebruikt om een aantal database objecten synchroon te houden terwijl RAC de gehele database omvat. Meer hierover in het tweede deel uit deze artikelserie, dat in de volgende Optimize zal verschijnen. Conclusie Multimaster replicatie is een goede oplossing om gedistribueerde database systemen up-to-date te houden en om failover/load balancing oplossingen te kunnen gebruiken voor kritieke database systemen die continue beschikbaar dienen te zijn. Ing. Shaktiewant Adhien Dhr. Adhien is Oracle Applications DBA bij Qualogy Applications B.V. 24