PostgreSQL im Produktivbetrieb
Frank Schmidt - www.SchmidtIT.de 1
Frank Schmidt PostgreSQL im Überblick 1
PostgreSQLPostgreSQL
im ÜberblickVon und mit Frank Schmidt
Frank Schmidt PostgreSQL im Überblick 2
Das Logo Das Logo -- Der ElefantDer Elefantü Elefant (von lateinisch
elephantus)ü Elefanten sind die größten
noch lebenden Landtiere.ü Eine Versuchsreihe im New
Yorker Bronx-Zoo zeigte Anzeichen dafür, dass Elefanten über ein Ich-Bewusstsein verfügen
ü Sprichwort: „Elefanten vergessen nicht“
PostgreSQL im Produktivbetrieb
Frank Schmidt - www.SchmidtIT.de 2
Frank Schmidt PostgreSQL im Überblick 3
GeschichteGeschichteü POSTGRES î Die Implementierung von POSTGRES begann 1986 unter Anleitung
von Professor Michael Stonebraker, wurde gesponsert von der Defense Advanced Research Projects Agency (DARPA), dem Army Research Office (ARO), der National Science Foundation (NSF) und ESL, Inc. Schließlich hat Illustra Information Technologies (später fusioniert mit Informix, die jetzt zu IBM gehört) den Code übernommen und kommerzialisiert
ü Postgres95î Im Jahr 1994 bauten Andrew Yu und Jolly Chen einen SQL-
Interpreter in POSTGRES ein. Unter neuem Namen wurde Postgres95 im Web freigegeben, um seinen eigenen Weg als Open-Source-Nachfolger des ursprünglichen POSTGRES-Codes zu finden
ü PostgreSQLî 1996 wurde deutlich, dass der Name „Postgres95“ dem Test der Zeit
nicht standhalten würde
Frank Schmidt PostgreSQL im Überblick 4
LizenzLizenzü PostgreSQL ist unter der BSD-Lizenz veröffentlicht, die
lediglich verlangt, dass die lizenzierten Quelltexte, die Informationen über das Urheberrecht und die Lizenz beibehalten werden müssen
ü Diese OSI-zertifizierte Lizenz wird hoch geschätzt, da sie flexibel, benutzer- und geschäftsfreundlich ist
ü Sie erlaubt die uneingeschränkte Nutzung von PostgreSQL in kommerziellen und urheberrechtlichgeschützten Anwendungen
ü Die BSD-Lizenz und der Quellcode, dessen Entwicklung von mehreren Firmen gefördert wurde und der öffentliches Eigentum ist, machen PostgreSQL bei Anbietern, die eine Datenbank in ihre eigenen Produkte integrieren möchten, ohne dass Lizenzgebühren, Abhängigkeiten von einem Hersteller oder Änderungen der Lizenzbedingungen zu befürchten sind, sehr beliebt
PostgreSQL im Produktivbetrieb
Frank Schmidt - www.SchmidtIT.de 3
Frank Schmidt PostgreSQL im Überblick 5
Technische DetailsTechnische Detailsü Hervorragende Umsetzung des ANSI-
SQL99-Standardsü ANSI-SQL2003 Unterstützung in
Grundzügenü Schnittstellen für Tcl, Perl, C, C++, PHP,
ODBC, JDBC, Embedded SQL in C, Python und Ruby
ü GUI-Administrationstools: pgAdmin, pgAccess, phpPgAdmin
ü Views, Sequenzen, Vererbung, OuterJoins, Sub-Selects, ReferentielleIntegrität
ü UNION, INTERSECT und EXCEPT Anfragen
ü Rules (Regelsysteme), Triggerü Benutzerdefinierte Funktionen, Stored
Proceduresü Prozedurale Sprachen PL/pgSQL, PL/Perl,
PL/Python, PL/Tcl und mehrü Erweiterbares Datentyp-System
ü Hot Stand-By, Replikationü Volle Unterstützung des ACID-Prinzips,ü Serialisierbare Transaktionenü Partielle Indizes und Indizes über
Funktionsergebnisseü Unicode- und Locale-Unterstützungü Nachladbare Erweiterungen für
Volltextsuche, GIS, XML und andere Funktionalitäten
ü Unterstützung von SSL und Kerberos-Authentifizierung
ü Werkzeuge, um portablen SQL-Code für alle SQL unterstützende Systeme zu erzeugen
ü Datenbankübergreifende Kompatibilitätsfunktionen
ü Bitmap-Scan, Tabellen-Partitionierung, Zwei-Phasen-Commit
Frank Schmidt PostgreSQL im Überblick 6
LeistungsgrenzenLeistungsgrenzen
üMaximale Datenbankgröße UnbegrenztüMaximale Tabellengröße 32 TBüMaximale Datensatzgröße 1.6 TBüMaximale Feldgröße 1 GBüMaximale Datensatzanzahl UnbegrenztüMaximale Spalten pro Tabelle 250 – 1600üMaximale Indexe pro Tabelle Unbegrenzt
PostgreSQL im Produktivbetrieb
Frank Schmidt - www.SchmidtIT.de 4
Frank Schmidt PostgreSQL im Überblick 7
Neuerungen v. 8.2Neuerungen v. 8.2ü Performanz-Steigerungenî Version 8.2 steigert die Verarbeitungsgeschwindigkeit insgesamt um
ca. 20% bei Systemtests mit High-end OLTP (Online TransactionProcessing)
î Noch stärker profitieren Anwender sogar beim Betrieb von Data-Warehouse-Lösungen
î Die Verbesserungen betreffen Sortiervorgänge. Sowohl im Arbeitsspeicher als auch auf Festplatten wird schneller sortiert, bessere Multi-Prozessor-Skalierung, bessere Planung von Abfragen auf partitionierten Tabellen, schnellere Bulk Loads und erheblich beschleunigte Outer-Join-Abfragen sind möglich
Frank Schmidt PostgreSQL im Überblick 8
Neuerungen v. 8.2Neuerungen v. 8.2ü Warm-Standby Datenbankenî Durch eine Erweiterung des in der Version 8.0 eingeführten "Point in
Time Recovery" können Administratoren jetzt auf einfache Weise eine Kopie ihrer Datenbank-Cluster als Ausfallsicherung einrichten
ü Online Index Erstellungî Tabellen können jetzt auch indiziert werden, während Anwendungen
in Datenbank-Tabellen schreiben, welches ein Datenbank-Tuning ohne Ausfallzeiten ermöglicht
ü SQL:2003 Funktionalitätenî PostgreSQL, bekannt für seine Standard-Kompatibilität, wurde um
Syntax für weitere Elemente der ANSI-Spezifikation SQL:2003 ergänzt. Unter anderem: Aggregatfunktionen für statistische Auswertungen, VALUE-Zuweisungen für mehrere Zeilen zugleich, UPDATE RETURNING und Aggregate über mehrere Spalten
PostgreSQL im Produktivbetrieb
Frank Schmidt - www.SchmidtIT.de 5
Frank Schmidt PostgreSQL im Überblick 9
FunktionsvergleichFunktionsvergleich
OOPPOperatoren
PP (nur InnoDB)PPFremdschlüssel
POPPSchema
OOPPORDBMS
PPPPStandby Server
PP (Enterprise)PP (diverse)Spiegel/Cluster
OOPPOIDs
OOPPVererbung
PPPPTrigger
PPPPFunktionen
POPPStrukt. Typen
OOPPFelder
PNur BLOBsPNur BLOBsLOB
MS SQLMySQLOraclePostgreSQLFunktion\DB
Frank Schmidt PostgreSQL im Überblick 10
AnwendungsgebieteAnwendungsgebiete
üPostgreSQL ist für fast alle Fälle die richtige Wahlî Mehrnutzerfähigkeit - MVCCî Hohe Zuverlässigkeitî Hohe Datenunabhängigkeitî Viele Schnittstellenî Hohe Datenvolumenî Objekt-Relational (Eigene Objekte, Operatoren,
Vererbung)
PostgreSQL im Produktivbetrieb
Frank Schmidt - www.SchmidtIT.de 6
Frank Schmidt PostgreSQL im Überblick 11
Im EinsatzIm Einsatz
ü - 3,6 Milliarden Datensätze pro Jahrü - 2 Milliarden Datensätze (GIS)ü - Online Bankingü - Technische Datenerfassungü - Web Content Management und
Redaktionssystem - CMAssistü - Online Auftritt, Baustellenmanagementü - Transportauftragssystemü - Projektzeiterfassungssystem
Frank Schmidt PostgreSQL im Überblick 12
Im Einsatz IIIm Einsatz II
üHochschulenî Viele deutsche Hochschulen nutzen PostgreSQL
im wissenschaftlichen Bereich für Forschung und Lehreî Darüber hinaus wird PostgreSQL auch von HIS
verwendet. HIS ist ein Hochschul- Informations-System zur Verwaltung von Studenten, Lehrkräften und Personal
PostgreSQL im Produktivbetrieb
Frank Schmidt - www.SchmidtIT.de 7
Frank Schmidt PostgreSQL im Überblick 13
Performance im VergleichPerformance im Vergleich
Frank Schmidt PostgreSQL im Überblick 14
Performance im VergleichPerformance im Vergleich
PostgreSQL im Produktivbetrieb
Frank Schmidt - www.SchmidtIT.de 8
Frank Schmidt PostgreSQL im Überblick 15
SponsorenSponsoren
üWeltweit erfährt PostgreSQL Unter-stützung von renom-mierten Unternehmen
Frank Schmidt PostgreSQL im Überblick 16
üPostGIS – GRASSî Geographic Resources Analysis Support Systemî Originally developed by the U.S. Army Corp of
Engineering Research Laboratories (1982-1995)
Softwareprodukte GISSoftwareprodukte GIS
PostgreSQL im Produktivbetrieb
Frank Schmidt - www.SchmidtIT.de 9
Frank Schmidt PostgreSQL im Überblick 17
Software Produkt CMSSoftware Produkt CMS
üCMAssistî Web-Content-Management-System
î www.CMAssist.deî Über 150 Kunden pro 0815/Server
Frank Schmidt PostgreSQL im Überblick 18
AdministrationAdministration
üZahlreiche Bashbefehle (psql)üphpPgAdmin - WebinterfaceüpgAdmin III GUI – Windows + Linux
PostgreSQL im Produktivbetrieb
Frank Schmidt - www.SchmidtIT.de 10
Frank Schmidt PostgreSQL im Überblick 19
SchnittstellenSchnittstellenü DBD::Pg - Perl Driverü JDBC - JDBC Driverü libpqxx - C++ APIü Npgsql - .Net Data Providerü ODBC - ODBC Driverü PgOleDb - OLE-DB Driverü pgtclng - Next generation interface for TCLü Pgtcl - Tcl binding libraryü Pgin - A Tcl interface to PostgreSQL written in Tclü PyGreSQL - Python interface for PostgreSQLü psycopg - Another Python interface for PostgreSQL
Frank Schmidt PostgreSQL im Überblick 20
Serverseitige ProgrammiersprachenServerseitige Programmiersprachenü PL/SQL - PostgreSQL Sprache ähnlich PL/SQL (Oracle)ü PL/C - C/C++ü pPerl - PERL als prozedurale Spracheü pPython - PYTHON ü PL/Java - Java procedural language using in-process JNI-
based integrationü PL-J - Java procedual language using one jvm per
databaseü plPHP - PHP-based procedural languageü plR - Procedural language based on the R statistical
languageü pl-ruby - Ruby based procedural language
PostgreSQL im Produktivbetrieb
Frank Schmidt - www.SchmidtIT.de 11
Frank Schmidt PostgreSQL im Überblick 21
Erweiterungen Erweiterungen -- ClusterlösungenClusterlösungen
üPGClusterî is the synchronous replication system of the multi-master
composition for PostgreSQL
üSlony-I î is a "master to multiple slaves" replication system
supporting cascading and failover. It uses a group communications system to manage its configuration, allowing dynamic reconfiguration of the cluster
üPgpoolî is a connection pooling/replication server for PostgreSQL
Frank Schmidt PostgreSQL im Überblick 22
Erweiterungen Erweiterungen -- OracleOracleü Better Oracle functions supportî The goal of this project is implementation some functions from
Oracle database. Some date functions (next_day, last_day, trunc, round, ...) are implemented now. Functionality was verified on Oracle 10g and module is useful for production work
ü Oralinkî Oralink is a transparent gateway to access Oracle (tm) databases
directly from PostgreSQL. Can be used for integration, replication or simply to access Oracle(tm) data using PostgreSQL
ü DBLink and Materialized Viewsî Materialized Views, Materialized View Logs and a simple Database
Link on Pg also supporting Oracle's FAST REFRESH. It implements:CREATE/DROP DBLINK,CREATE/DROP/REFRESH SNAPSHOT,CREATE/DROP SNAPSHOT LOG. Oracle and Pg drivers included
PostgreSQL im Produktivbetrieb
Frank Schmidt - www.SchmidtIT.de 12
Frank Schmidt PostgreSQL im Überblick 23
LiteraturLiteratur
üONLINE! http://www.postgresql.org/docs/üBücherî
üEs gibt kein aktuelles Buch für Entwickler
PostgreSQL Ge -Packt
PostgreSQL inkl. CDAdministration und
Einsatz
PostgreSQL. Das offizielle Handbuch