Menü
iX Magazin

PostgreSQL 9.1 mit synchroner Replikation

Von
vorlesen Drucken Kommentare lesen 106 Beiträge

Größte Neuerung im freien Datenbankserver PostgreSQL 9.1 dürfte die synchrone Replikation sein. Sie stellt sicher, dass der Master eine Operation erst als abgeschlossen registriert, wenn der Replikations-Slave ihr Eintreffen bestätigt hat. Dieses Verfahren ist zwar langsamer als das bisher ausschließlich mögliche asynchrone; es lässt sich jedoch bei Bedarf auf einzelne Transaktionen beschränken. Während früher ausschließlich der Superuser die Replikation starten konnte, kann man das neue Privileg replication beliebigen Anwendern und Rollen zuordnen.

Neu sind weiterhin "Unlogged Tables", für die der Server keine Daten in die Transaktionslogs schreibt, wodurch sie sich als schneller Zwischenspeicher anbieten. PostgreSQL 9.1 ermöglicht es erstmals, für jede Datenbank, Tabelle und Spalte die Sortierreihenfolge für Zeichenketten ("Collation") separat festzulegen. Bislang war dieser Wert für den ganzen Server einheitlich eingestellt.

Common Table Expressions, die es bereits länger in PostgreSQL gibt, lassen sich jetzt in schreibenden SQL-Statements einsetzen. Das Wiki führt unter anderem ein einfaches Beispiel an, das alle "hello" enthaltenden Datensätze aus einer Tabelle entfernt und in eine andere einfügt:

WITH deleted AS
(DELETE FROM test_trgm
WHERE text_data like '%hello%'
RETURNING text_data)
INSERT INTO old_text_data SELECT * FROM deleted;

Eine komplette Liste der Änderungen ist in den Release-Notes zu finden. Quellen und ausführbare Versionen (für FreeBSD, Linux, Mac OS X, Solaris, Windows) gibt es wie immer im Download-Bereich des Projekts. (ck)