PostgreSQL - avato Consulting

Werbung
September 2011
Seite 1 von 4
PostgreSQL
Comeback eines Datenbank-Veteran
Am
20.09.2010
gab
die
PostgreSQL Global Development
Group die Veröffentlichung von
PostgreSQL 9.0 bekannt. Mit
diesem Major Release wurden
viele Verbesserungen in den
Bereichen Sicherheit, Anwendungsunterstützung, Monitoring,
Performance sowie beim Speichern von Spezialdaten realisiert,
auf die eine zunehmende Anzahl
kommerzieller Anwender bereits
länger gewartet hatte. Obwohl
die Wurzeln bereits in die 80er
Jahre zurückreichen, gelang
PostgreSQL erst in den letzten
Jahren ein breiter Durchbruch
auch in der kommerziellen Nutzung. Es ist aktuell wohl die
Datenbank mit dem auffälligsten
Marktwachstum weltweit.
Was sind die Gründe?
Zum einen setzt sich in immer
mehr Unternehmen die Überzeugung durch, dass OpenSource-Produkte in vielen Bereichen wegen ihrer kommerziellen
Vorteile und ihrer weiten Verbreitung echte Alternativen im
professionellen Einsatz sind. Zum
anderen bietet PostgreSQL heute
eigentlich alles, was eine kommerzielle Nutzung benötigt:
Das Produkt hat einen sehr
hohen Reifegrad erreicht und
wird zunehmend besser von
vielen IT-Dienstleistern unterstützt. Angebote mit professionellem Support sind heute
kostengünstig am Markt vorhanden.
Obwohl das Produkt über viele
Jahre ein Schatten-Dasein im
Licht der großen kommerziellen
Datenbanken, aber auch der
durch den Internet-Boom schnell
verbreiteten Open-Source-Datenbank MySQL führte, erfolgte
eine konsequente Weiterentwicklung des Produkts durch die
Community.
Die zunehmende Popularität von
PostgreSQL ist auch darauf zurückzuführen, dass die Zukunft
der anderen große Open-SourceDatenbank MySQL nach der
Übernahme durch die Firma
Oracle ungewiss ist. Somit verwundert es nicht, dass ein zunehmender Umstieg von MySQL
auf PostgreSQL zu beobachten
ist.
Post-Ingres-Projekt zu PostgreSQL
PostgreSQL entstammt einer Datenbankentwicklung der University of
California. Die Basis bildete das Ingres-Projekt, das 1985 als neuer Ansatz
startete, um Probleme der damaligen Datenbankmanagementsysteme zu
überwinden. Mit Postgres v1 erschien 1987 die erste professionell nutzbare
Version, die später dann um das Rule-System erweitert wurde. Dies ist noch
heute in PostgreSQL vorhanden. Die Abfrageeinheit wurde 1991 mit Version 3
weiterentwickelt. 1993 beendete die University of California das Projekt mit
der Version 4.2, um die rasant wachsenden Support-Anforderungen nicht
mehr tragen zu müssen. Nach Hinzufügen eines SQL-Abfrage-Interpreters
wurde die Software 1995 unter dem Begriff Postgres95 mit dem Quellcode
des originalen Berkeley Postgres ins Web gestellt. Das Produkt war zu dieser
Zeit komplett in ANSI C geschrieben. Verbesserung in den Bereichen
Wartbarkeit und Performance folgten. Schließlich konnte die Performance
gegenüber dem originalen Berkeley Postgres um bis zu 50% gesteigert
werden.
Die Entwicklung von PostgreSQL wurde 1996, zusammen mit dem Wechsel
auf den heutigen Namen, begonnen. Die erste veröffentlichte Version unter
diesem Namen ist 6.0. Seitdem wurde PostgreSQL fortlaufend
weiterentwickelt.
September 2011
Seite 2 von 4
PostgreSQL im praktischen Einsatz
Heute präsentiert sich PostgreSQL als ausgereiftes und
stabiles Produkt, dass (fast) alle
Anforderungen an ein modernes
relationales Datenbanksystem
erfüllt. Dabei überrascht viele die
ausgesprochen
gute
Performance, die einen Vergleich
mit manchem kommerziellen
Produkt nicht zu scheuen
braucht. Für eine professionelle
Nutzung sind aber vor allem die
neuen Replikations-Mechanismen entscheidend. PostgreSQL
ermöglicht seit der Version 9 Hot
Standby sowie Streaming Replication. Features wie Online
Backup sowie Point in time
Recovery runden die wichtigsten
Leistungsmerkmale für einen
professionellen Einsatz aus Sicht
der Datenbankadministration ab.
Nicht
zuletzt
wird
die
zunehmende Verbreitung von
PostgreSQL aber auch durch ihre
Robustheit in der Transaktionsverarbeitung und hohe Zuverlässigkeit gefördert. Die Version
9 sticht durch zusätzliche
Performance-Features und Spalten-Triggern
sowie
vielen
anderen sehr nützlichen Erwieterungen hervor. Dennoch ist
PostgreSQL eine schlanke und
sehr gut zu verwaltende Datenbank, die sich auf ihr Kerngeschäft, der Verwaltung von
Datenbeständen, konzentriert.
Migration und/oder Mischbetrieb?
PostgreSQL bietet gegenüber
vielen anderen Datenbanken
einen entscheidenden Vorteil: Es
weist einen sehr hohe Kompatibilitätsgrad
zur
OracleDatenbank auf. Die Vorteile
werden im praktischen Betrieb
schnell sichtbar: Migrationen
von Oracle zu PostgreSQL sind
vielfach mit einem überschaubaren Migrationsaufwand verbunden. Zudem lassen sich
Oracle- und PostgreSQL-Datenbanken problemlos im Mischbetrieb einsetzen.
Trotz des hohen Kompatibilitätsgrades zu Oracle ist für
Migrationen einiges zu beachten.
In aller Regel gilt auch hier:
Umfangreiche praktische Erfahrungen bei Migrationen von
Datenbanken, genaue Konzepte
sowie detaillierte Planungen sind
zwingend erforderlich, um den
Migrationsaufwand in Grenzen
zu halten. Für Replikationen
zwischen PostgreSQL und Oracle
bieten sich unterschiedliche Lösungsansätze. Sie unterscheiden
sich durch Kosten und Reifegrad.
Die Palette reicht vom Datenbank-Link
über
individuelle
Lösungen, die auf Log Shipping
basieren, bis hin zum Einsatz von
„Oracle Streams“ oder dem
neuen Produkt „Oracle XStream“
Point in time Recovery
Point in time Recovery erlaubt
es, eine Datenbank, ausgehend
von einem definierten Startzustand zu rekonstruieren. Dazu
werden die Transaktionslogs
archiviert und die Datenbank
kann aus diesen Logs, entweder
komplett oder bis zu einem
gewünschten Zeitpunkt,
wiederhergestellt werden.
Hot-Standby-Datenbank
Die fortlaufendende Archivierung der Transaktionslogs
(falls Point in time Recovery
aktiviert wurde) ermöglicht die
Einrichtung und Konfiguration
von Hochverfügbarkeitslösungen für PostgreSQL mit
einem oder mehreren StandbyServern. Der primäre
PostgreSQL-Server protokolliert
und archiviert alle seine
Transaktionen, während der
sekundäre Server in einem
Recovery-Modus arbeitet: Er
liest ständig die Transaktionslogs des primären Servers und
führt die dort verzeichneten
Transaktionen aus. Bei einem
Ausfall des Hauptservers kann
dann auf einem dieser StandbyServer weitergearbeitet werden.
September 2011
Seite 3 von 4
Tools zur Administration und zum Monitoring
pgAdmin
Monitoring
pgAdmin ist das populärste und
umfangreichste
Open-SourceAdministrationswerkzeug
für
PostgreSQL. Die Anwendung
läuft unter Linux, Solaris und
Windows. Mit pgAdmin lassen
sich Datenbanken ab Version 7.3
managen. Dies reicht von
einfachen SQL-Abfragen bis zur
Entwicklung komplexer Datenbanken. Aus der grafischen
Oberfläche lassen sich alle
wesentlichen Funktionen von
PostgreSQL einfach verwalten.
Die Anwendung enthält einen
komfortablen SQL-Editor, einen
server-basierten
Code-Editor
sowie einen SQL-, Batch-, Shellund
Job-Scheduling-Agenten.
Server-Verbindungen
werden
über TCP/IP oder Unix Domain
Sockets aufgebaut und lassen
sich auch über SSL-Verbindungen
verschlüsseln ohne zusätzliche
Treiber zu installieren. pgAdmin
wird von einer Community von
PostgreSQL-Experten entwickelt
und steht in vielen Sprachen zur
Verfügung. Die Software ist
lizenzkostenfrei.
Auch im Bereich Monitoring hält
PostgreSQL mit den „großen“
Datenbanksystemen weitgehend
Schritt. Neben der Möglichkeit,
SNMP-Traps an ein vorhandenes
Monitoring-Tool zu senden, gibt
es fertige Monitoring-Lösungen,
die direkt eingesetzt werden
können. Ein Angebot kommt von
der Firma EnterpriseDB, eine
weitere Option ist die Einbindung in Nagios, einem populären
Open-Source-Monitoring-Tool.
Hierfür gibt es eine Reihe von
Plug-ins. Die Bandbreite der
Plug-ins reicht von einer
einfachen Überprüfung, ob der
Datenbankserver Verbindungen
akzeptiert, bis hin zu grafischen
Darstellungen für die Auswertung
von
PerformanceDaten.
September 2011
Seite 4 von 4
Charakteristika (Quelle PostgreSQL)
PostgreSQL ist heute auf den
meisten Unix- und LinuxPlattformen lauffähig. Seit der
Version 8.0 wird auch Windows
unterstützt. Die Datenbank ist
durch
Funktionen,
selbstdefinierbare Datentypen und
Operatoren erweiterbar. Export
und Import sowohl von Daten als
auch von Datenbankstrukturen
(Schemata) sind möglich. Die
Größe von Datenbanken in
PostgreSQL ist theoretisch nicht
begrenzt. Hier limitiert lediglich
die
Leistungsfähigkeit
der
Hardware. Jede Tabelle kann bis
zu 32 TB umfassen. Die Anzahl
der Datensätze ist unbegrenzt.
Jeder Datensatz kann bis zu 1,6
TB groß werden. Lediglich die
Anzahl der Spalten ist auf 250 bis
1600,
je
nach
Datentyp,
begrenzt. Felder können bis zu 1
GB Daten aufnehmen und für
jede Tabelle lassen sich unbegrenzt Indexe definieren.
Die PostgreSQL-Datenbankdateien sowie die Verbindungen
von Client-Programmen werden
von einem Serverprozess („postmaster“) verwaltet. Die Kommunikation mit dem „postmaster“
können über unterschiedlichste
Client-Programme
aufgebaut
werden. Das in der Distribution
mitgelieferte „psql“ ist ein einfacher aber schneller Datenbankmonitor. Die meisten Linux-Distributionen enthalten zudem den
grafischer Client pgAccess.
PostgreSQL kennt ein umfassendes Transaktionskonzept, das
Multiversion
Concurrency
Control (MVCC) unterstützt.
Geschachtelte komplexe Abfragen mit Unterabfragen (Subselects) sind möglich. Referenzielle Integrität (u. a. Constraints, Fremdschlüssel) wird
gewährleistet, Views, die mit
Hilfe von Regeln (Rules und
Triggers) auch schreibfähig sein
können (Updatable Views), lassen sich definieren.
Trigger und Stored Procedures
sind in verschiedenen Sprachen
möglich
(PL/pgSQL,
PL/Tcl,
PL/Perl, PL/Python, PL/Java,
PL/PHP, PL/Ruby, PL/R, PL/sh,
PL/Scheme), Schnittstellen zu
zahlreichen Programmiersprachen (u. a. C, Delphi, C++,
Java/JDBC, Tcl, PHP, Perl,
Python, Ruby sowie zu ODBC und
.NET) werden geboten.
Detaillierte Übersicht zu PostgreSQLFeatures unter
http://www.postgresql.org/about/
featurematrix
Impressum
Datum: September 2011
Autor: Lutz Fröhlich
Kontakt:
[email protected]
www.avato-consulting.com
© 2011 avato consulting
Herunterladen