PostgreSQL 9.0 Beta mit eingebauter Replikation

Die wichtigste Neuerung der heute als Beta präsentierten PostgreSQL-Version 9 ist eine integrierte Replikation in Echtzeit.

In Pocket speichern vorlesen Druckansicht 207 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Christian Kirsch

Fünf Jahre nach dem Erscheinen von Version 8 macht PostgreSQL einen großen Versionssprung: Die Entwickler der freien Datenbank legen eine Beta-Version mit der Releasenummer 9.0 vor. Ihr wichtigstes neues Feature ist die erstmals integrierte Replikationsfunktion, die aus den Teilen "Hot Standby" und "Streaming Replication" besteht.

Streaming Replication schickt alle WAL-Einträge (Write Ahead Log) vom Master zum Slave. Dadurch, so die PostgreSQL-Entwickler, gebe es nur noch einen kleinen zeitlichen Versatz zwischen den Datenbeständen auf Master- und Slave-Maschinen.

Weitere Änderungen sind eine verbesserte LISTEN/NOTIFY-Technik, die Events innerhalb der Datenbank schneller zustellen soll. NOTIFY kann einen String (Payload) an den Listener weiterreichen. Anonyme SQL-Prozeduren lassen sich per DO definieren; die Ausführung von Triggern darf von Bedingungen abhängen. Stored Procedures können in Python 3 geschrieben werden, bei der PL/Perl-Implementierung gab es Verbesserungen. So sind jetzt use strict und require in Perl-Prozeduren zulässig. Mit EXCLUDE können Entwickler im CREATE TABLE-Statement Anforderungen an die Daten vorgeben, die über herkömmliche Constraints hinausgehen. Als Beispiel für die Verwendung von EXCLUDE nennt die Dokumentation etwa die Bedingung, dass in einer Tabelle mit geografischen Daten keine Kreise überlappen dürfen. Die Release Notes beschreiben alle Änderungen ausführlich.

Wer seine Daten von einer Vorgängerversion auf PostgreSQL 9 migrieren will, muss sie mit pg_dump exportieren und anschließend in die neue Version importieren. Alternativ ist ein Upgrade des Datenverzeichnisses mit pg_migrator möglich. Der Quellcode der Betaversion ist ebenso online erhältlich wie ein Windows-Installer und Binärpakete für einige andere Plattformen. (ck)