Entwurf und Implementierung einer Offline-Replikation ... SymmetricDS-Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v 2 Standardkonfiguration Mutter-Kind-Konzept ...

Download Entwurf und Implementierung einer Offline-Replikation ...  SymmetricDS-Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v 2 Standardkonfiguration Mutter-Kind-Konzept ...

Post on 10-Feb-2018

212 views

Category:

Documents

0 download

TRANSCRIPT

  • Hochschule fr Technik und Wirtschaft Dresden

    Fakultt Geoinformation

    Masterstudiengang Geoinformation und Management

    Masterarbeit

    Entwurf und Implementierung einer Offline-Replikationunter PostgreSQL

    Eingereicht von

    Benjamin Thurm

    Seminargruppe: 11/063/71

    Matrikelnummer: 33265

    1. Gutachter: Prof. Dr.-Ing. F. Schwarzbach

    2. Gutachter: MSc. A. Schulze (BTU Cottbus)

    Eingereicht am: 25.10.2013

  • Inhaltsverzeichnis i

    Inhaltsverzeichnis

    Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

    1 Einleitung 1

    2 Open Information System for Research in Archaeology 32.1 Datenhaltung OpenInfRA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Mutter-Kind-Konzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3 Anforderungskatalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4 Fazit Analyse Grobkonzept . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    3 Theoretische Grundlagen 143.1 Verteilte Datenbanksysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2 Referenzarchitektur verteilter Datenbanken . . . . . . . . . . . . . . . . . . 163.3 Replikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.4 Transaktionsverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.5 Mobile verteilte Datenbanksysteme . . . . . . . . . . . . . . . . . . . . . . . 213.6 Architektur mobiler Datenbanksysteme . . . . . . . . . . . . . . . . . . . . . 223.7 Abgrenzung MDBMS und VDBMS . . . . . . . . . . . . . . . . . . . . . . . 233.8 Transaktionen in mobilen verteilten Systemen . . . . . . . . . . . . . . . . . 243.9 Eventually Concistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.10 Synchronisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    3.10.1 Pessimistische Synchronisationsverfahren . . . . . . . . . . . . . . . 283.10.2 Optimistische Synchronisationsverfahren . . . . . . . . . . . . . . . 29

    4 Technik 324.1 Native Replikation mit PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . 32

    4.1.1 Standby Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.1.2 Hot-Standby-Replication . . . . . . . . . . . . . . . . . . . . . . . . . 334.1.3 Streaming-Replikation . . . . . . . . . . . . . . . . . . . . . . . . . . 334.1.4 Synchrone Replikation . . . . . . . . . . . . . . . . . . . . . . . . . . 344.1.5 Interpretation der WAL-Segmente . . . . . . . . . . . . . . . . . . . 34

    4.2 PostgreSQL BDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.3 Softwarelsungen und Erweiterungen . . . . . . . . . . . . . . . . . . . . . 36

    4.3.1 Bucardo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.3.2 SymmetricDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.3.3 ArcGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    5 Vorberlegungen zur Replikationskomponente 445.1 Anpassungen Datenbankschema . . . . . . . . . . . . . . . . . . . . . . . . 455.2 Synchronisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.3 Fragmentierung und Allokation der Projektdatenbank . . . . . . . . . . . . . 485.4 Synchronisation externer Dokumente . . . . . . . . . . . . . . . . . . . . . 505.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    6 Implementierung 526.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526.2 Funktionsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546.3 Konfiguration Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

  • Inhaltsverzeichnis ii

    6.4 Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566.4.1 Konfigurationstabellen . . . . . . . . . . . . . . . . . . . . . . . . . . 566.4.2 Datentabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    6.5 Einrichten der Replikationshierachie eines Projekts . . . . . . . . . . . . . . 596.6 Protokollieren von Verlaufsdaten . . . . . . . . . . . . . . . . . . . . . . . . 616.7 Synchronisation externer Dokumente . . . . . . . . . . . . . . . . . . . . . 656.8 Mutterknoten einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676.9 Erstellen einer Kind-Instanz . . . . . . . . . . . . . . . . . . . . . . . . . . . 686.10 Synchronisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716.11 Offline-Synchronisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726.12 Konfliktlsung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736.13 Purging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766.14 Knoten entfernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766.15 Sichern des Kommunikationswegs . . . . . . . . . . . . . . . . . . . . . . . 766.16 Test der Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.17 Notwendige Erweiterungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.18 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    7 Zusammenfassung und Ausblick 86

    Konfiguration SymmetricDS-Engine v

    Standardkonfiguration vii

    Email xiv

    Anlagenverzeichnis xx

    Monographien xxii

    Publikationen xxii

    Webseiten xxiii

    Erklrung ber die eigenstndige Erstellung der Arbeit xxvi

  • Abbildungsverzeichnis iii

    Abbildungsverzeichnis

    1 OpenInfRA-Informationsmdel . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Anwendungsschema Projektdatenbank . . . . . . . . . . . . . . . . . . . . 53 Komplexe Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Instanziierung Kind-Instanz . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Exemplarische Mutter-Kind-Hierarchie . . . . . . . . . . . . . . . . . . . . . 96 Vergleich Client-Server - VDBMS . . . . . . . . . . . . . . . . . . . . . . . . 157 Referenzarchitektur Verteilter Datenbanken . . . . . . . . . . . . . . . . . . 168 Fragmentierung und Allokation einer Relation . . . . . . . . . . . . . . . . . 179 Darstellung Single- & Multi-Master-System . . . . . . . . . . . . . . . . . . 1910 Globale Transaktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2011 2-Phase-Commit-Protokoll in einem verteilten Datenbanksystem . . . . . . 2112 Dimensionen verteilter Datenbanksysteme . . . . . . . . . . . . . . . . . . 2213 Architektur mobiler verteilter Datenbanksysteme . . . . . . . . . . . . . . . 2314 Transaktionen MDBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 CAP Pyramide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2716 Phasen optimistischer Synchronisation . . . . . . . . . . . . . . . . . . . . . 2917 CDC Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3718 3-Tier-Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3919 ArcGIS Versionsbaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4220 ArcGIS Replikationsschema . . . . . . . . . . . . . . . . . . . . . . . . . . . 4321 Replikation externer Projektdaten . . . . . . . . . . . . . . . . . . . . . . . . 5022 SymmetricDS Systemtabellen . . . . . . . . . . . . . . . . . . . . . . . . . . 5723 SymmetricDS Verlaufstabellen . . . . . . . . . . . . . . . . . . . . . . . . . 5924 Pull- und Push-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

  • Listings iv

    Listings

    5.1 Installation uuid-ossp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465.2 Abfrage aller Themeninstanzen eines Projekts . . . . . . . . . . . . . . . . 496.1 Starten des SymmetricDS-Standalone-Service . . . . . . . . . . . . . . . . 536.2 Minimalanwendung SymmetricDS . . . . . . . . . . . . . . . . . . . . . . . 546.3 Erstellen eines SymmetricDS-Nutzers . . . . . . . . . . . . . . . . . . . . . 566.4 Konfiguration der Knoten-Hierarchie . . . . . . . . . . . . . . . . . . . . . . 606.5 Einrichten von Pull- und Push-Verbindungen . . . . . . . . . . . . . . . . . 606.6 Definition eines Datenkanals . . . . . . . . . . . . . . . . . . . . . . . . . . 626.7 Einrichten der CDC-Trigger einer replizierten Relation . . . . . . . . . . . . 636.8 Einrichten der CDC-Trigger via Wild Card . . . . . . . . . . . . . . . . . . . 636.9 Einrichten eines Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646.10 Zuordnung Router - Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . 666.11 Registrieren der Mutter-Instanz . . . . . . . . . . . . . . . . . . . . . . . . . 676.12 Registrierung symadmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696.13 Registrierung SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696.14 Online-Initialisierung einer Kind-Instanz. . . . . . . . . . . . . . . . . . . . . 706.15 Hilfsfunktion Offline-Sync . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716.16 Manuelle Konfliktlsungsstrategie fr Projektdaten . . . . . . . . . . . . . . 736.17 Query zum Analysieren von Konflikten im empfangenen Batch . . . . . . . 746.18 Auffinden von Konflikten in ausgehenden Batches . . . . . . . . . . . . . . 756.19 Einfache Hilfsfunktion zum Entfernen einer Kind-Instanz . . . . . . . . . . . 766.20 Hilfsfunktion Offline-Import . . . . . . . . . . . . . . . . . . . . . . . . . . . 791 SymmetricDS-Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v2 Standardkonfiguration Mutter-Kind-Konzept . . . . . . . . . . . . . . . . . . vii3 Ordnerstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx

  • 1 Einleitung 1

    1 Einleitung

    Fragt man jemanden, welche drei Dinge er auf eine einsame Insel mitnehmen wrde, fllt

    mit hoher Wahrscheinlichkeit der Begriff des Internet. Aus dem heutigen Alltag kaum

    noch wegzudenken, hat sich ein stndiger Online-Zugang lngst fest in das tgliche Le-

    ben vieler Menschen integriert. Was hierbei jedoch oft in Vergessenheit gert ist, dass

    dies gar keine Selbstverstndlichkeit darstellt. In weniger erschlossenen Gebieten ist ei-

    ne stehende Internetverbindung ein kostbares Gut, das mitunter auch fr Geld nicht zu

    haben ist.

    Besonders offensichtlich wird dieser Umstand fr Fachgebiete wie der Archologie. Wh-

    rend die Auswertung von Forschungsreisen mitunter komfortabel im Bro mglich ist, er-

    folgt die eigentliche Datenerhebung im Feld. Dies ist in der Praxis schnell Ursache fr

    einen komplizierten Umgang mit den mhsam beschafften Daten. Unzureichende Mittel

    der Datensynchronisation zwischen offline gesammelten und online genderten Daten

    stellen hier ein weit verbreitetes Problem dar. Im schlimmsten Fall kann dies bis hin zum

    Datenverlust fhren, wenn der Aufwand den einstweiligen Nutzen der Datenintegration

    in den Grundbestand bersteigt - ein frchterlicher Umstand, der der groen Mhe der

    Datenerhebung nicht wrdig ist.

    Dennoch sind Mitarbeiter des Deutschen Archologischen Instituts tglich mit diesem

    Problem bei ihrer Arbeit konfrontiert. Bei Projekten wie der Pergamon-Grabung in der

    Trkei, bei der Recherche in Museumsdepots und bei Forschungsreisen im Ausland sam-

    meln sie neues Wissen und dokumentieren die Ergebnisse dabei in verschiedenster, zu-

    meist digitaler Form. Grundlage dieser Arbeitsweise sollte ein Informationssystem sein,

    das fr die vielen Facetten dieser Forschung geeignet ist. Dazu gehrt insbesondere

    auch die Arbeit jenseits einer verlsslichen Netzwerkanbindung.

    In dieser Arbeit soll daher eine Replikations- und Sychronisationslsung als Bestandteil

    des digitalen Dokumentationssystems OpenInfRA Abhilfe fr dieses Problem schaffen,

    indem das autonome Arbeiten von einem zentralen Datenbestand ermglicht wird. Sie

    soll es dem Nutzer erlauben, online und offline mit der gleichen Anwendung zu arbei-

    ten und den lokalen Datenbestand zu einem passenden Zeitpunkt mit den nderungen

    auf der zentralen Auskunftsversion abzugleichen. Erfordern die Umstnde eine weitere

    Offline-Version, fr deren Einrichtung sich mit dem Internet nicht verbunden werden

  • 1 Einleitung 2

    kann, soll die Mglichkeit geschaffen werden, diese ausgehend vom lokalen Datenbe-

    stand zu erstellen.

    Einleitend wird daher zunchst das Informationssystem OpenInfRA vorgestellt, da es den

    Ausgangspunkt dieser Betrachtung darstellt. Eine Analyse des bestehenden Grobkon-

    zeptes zu OpenInfRA wird darlegen, welche Anforderungen an eine Offline-Replikation

    gestellt werden. Hier soll auch das im Grobkonzept definierte sogenannte Mutter-Kind-

    Konzept betrachtet werden, welches das Bilden von Kind-Instanzen ausgehend vom

    zentralen Datenbestand beschreibt.

    Im Anschluss daran soll der aktuelle Wissensstand zu verteilten und mobilen verteilten

    Datenbanken dargelegt werden, sodass davon ausgehend die optimistische Replikation

    und Synchronisation betrachtet werden kann.

    Ein berblick ber bereits bestehende Lsungen fr das Datenbanksystem PostgreSQL

    soll dann zeigen, welche davon fr die Umsetzung des Mutter-Kind-Konzepts in Frage

    kommen. Die im fnften Abschnitt folgenden Vorberlegungen zum Entwurf einer Repli-

    kation und Synchronisation sollen anschlieend die konkrete Umsetzung einer geeigne-

    ten Lsung vorbereiten.

    Abschlieend wird die Implementierung mit der vorher fr geeignet befundenen Lsung

    SymmetricDS dokumentiert. Dabei soll auch geprft werden, inwieweit die vorher gestell-

    ten Anforderungen erfllt werden knnen.

  • 2 Open Information System for Research in Archaeology 3

    2 Open Information System for Research

    in Archaeology

    Das Open Information System for Research in Archaeology (OpenInfRA) stellt die Bem-

    hungen des Deutschen Archologischen Instituts Berlin (DAI) dar, ein digitales Dokumen-

    tationssystem fr archologische, bauforscherische und historische Fragestellungen [zu

    schaffen, das] unabhngig von konkreten Forschungsfragen (OpenInfRA 2013, S.6) ein-

    gesetzt werden kann. Ziel ist der Entwurf und die Implementierung des Systems sowohl

    fr Projekte des DAI als auch fr andere Institute wie Universitten und auslndische Ko-

    operationspartner. Ein groes Augenmerk liegt dabei darauf, das breite Spektrum von

    Arbeitsmethoden, Ergebnistypen und Fachobjekten zu bercksichtigen. (ebd., S. 27f.)

    OpenInfRA ist ein Kooperationsprojekt zwischen dem Lehrstuhl fr Vermessungskunde

    der Brandenburgischen Technischen Universitt Cottbus, dem dort ebenfalls ansssi-

    gen Lehrstuhl fr Datenbank- und Informationssysteme, der Fakultt Geoinformation der

    Hochschule fr Technik und Wirtschaft Dresden und dem Deutschen Archologischen

    Institut (DAI).

    Die aktuelle Entwicklungsgrundlage fr OpenInfRA stellt das Grobkonzept dar, welches

    im Ergebnis dieser Arbeit zum Thema Mutter-Kind-Konzept weiterentwickelt werden

    soll. Es beschreibt die Sicht auf ein neues Dokumentationssystem fr archologische

    Feldforschungsprojekte [...], das einen effizienten und nachhaltigen Umgang mit For-

    schungsdaten (ebd., S. 6) ermglichen soll. Bisher ist es blich, dass jedes Forschungs-

    projekt am DAI mitunter mehrere, individuell erstellte D...

Recommended

View more >