Der ADMIN 05/13 wirft einen Blick auf die frei verfügbaren Cloud-Frameworks von Eucalyptus über OpenNebula bis OpenStack. Gute Aussichten für skalierbare ... (mehr)

Neue Formate und Parameter

»pg_dump« implementiert exakt diese Infrastruktur, um mehrere Dump-Prozesse zu synchronisieren. Parallel Dump funktioniert nur für das neue Ausgabeformat »directory« . Der Aufruf von »pg_dump« und mehreren synchronisierten DumpProzessen geschieht mit dem neuen Kommandozeilenparameter »-j« :

pg_dump -j4 -Fd -f /srv/backups/db/

Wichtig ist das Ausgabeformat »directory« mit dem Kommandozeilenparameter »-Fd« ; »-f« gibt das Ausgabeverzeichnis an, das nicht existieren darf.

Das Kommando »pg_dump« einer neueren Hauptversion ließ sich schon immer auch in einer älteren Version verwenden, um Migrationen zu ermöglichen. Auch Parallel Dump ist abwärtskompatibel und lässt sich beispielsweise auch mit einer PostgreSQL-Instanz in der Version 9.2 verwenden. Dann kann »pg_dump« aber keine synchronisierten Snapshots verwenden, weshalb für die Dauer des Dumps keinerlei Änderungen an den Datenbanken zugelassen werden sollten, um Inkonsistenzen zu vermeiden. Alternativ lassen sich synchronisierte Snapshots auch explizit mit einem Kommandozeilenparameter ( »--no-synchronized-snapshots« ) abschalten, sodass sich Dumps mit mehreren »pg_dump« -Prozessen auch in älteren Versionen anfertigen lassen.

Schreibbare Foreign Data Wrapper

Bereits PostgreSQL 9.1 hatte eine Teilimplementierung des SQL/MED-Standards an Bord, der das Einbinden externer Datenquellen in Form einer Foreign Table ermöglichte. Dies war jedoch bisher nur lesend möglich. Mit PostgreSQL 9.3 wurde die API auch für Schreiboperationen auf Foreign Tables erweitert.

Externe Datenquellen werden dabei derart definiert, dass sie dem PostgreSQL-Anwender wie lokale Tabellen erscheinen. Die Datensätze werden bei einer Abfrage über einen sogenannten Foreign Data Wrapper (FDW) zur Laufzeit konvertiert und als Datenbankzeile in der Ergebnismenge gemäß der Tabellendefinition angezeigt. Zum jetzigen Zeitpunkt existieren bereits eine größere Anzahl von FDWs für den Zugriff auf andere Datenbanksysteme unter PostgreSQL, darunter

  • Oracle
  • MySQL
  • Informix
  • ODBC
  • JDBC

sowie auch solche für die NoSQL-Datenbankquellen CouchDB, Redis und MongoDB.

Der FDW für PostgreSQL selbst hat nun mit der Version 9.3 in den Contrib-Zweig des Datenbankservers Einzug gehalten. Damit lassen sich die Tabellen externer PostgreSQL-Datenbanken einbinden. Ferner unterstützt der PostgreSQL-FDW bereits schreibende DML-Abfragen mit »INSERT« , »DELETE« und »UPDATE« .

Für die jeweiligen Distributionen werden diese zusätzlichen Module in der Regel in einem PostgreSQL-Contrib-Paket bereitgehalten. Ist alles ordnungsgemäß installiert, lässt sich der PostgreSQL-FDW einfach als Extension aktivieren. Abbildung 2 zeigt beispielhaft diesen Vorgang. Das »\dx« -Kommando gibt in »psql« alle derzeit installierten Extensions einer Datenbank aus.

Abbildung 2: PostgreSQL-FDW wird als Extension der Datenbank hinzugefügt.
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023