12
PostgreSQL im Produktivbetrieb Frank Schmidt - www.SchmidtIT.de 1 Frank Schmidt PostgreSQL im Überblick 1 PostgreSQL PostgreSQL im Überblick Von und mit Frank Schmidt Frank Schmidt PostgreSQL im Überblick 2 Das Logo Das Logo - Der Elefant Der 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

Embed Size (px)

DESCRIPTION

1996 hat PostgreSQL seinen Kampf gegen kommerzielle Datenbanksysteme aufgenommen. Als Erbe des Datenbank Management Systems Ingres ist PostgreSQL (daher auch der Name, Post=nach, (in-)"gres") auf dem Weg immer mehr kommerzielle Datenbanksysteme auch im Highlevel Segment zu verdrängen. Mit dem Zusatz SQL verdeutlich PostgreSQL sein bestreben die SQL-ANSI-Normen umzusetzen. Vor allem im Hochschulbereich wird PostgreSQL Entwickelt und auch eingesetzt. Datenmengen von mehreren Milliarden Datensätzen pro Tabelle bewältigt PostgreSQL mit Leichtigkeit denn gerade im GIS (Geografischen Information Systemen) Umfeld sind solche Datenmengen unabdingbar. PostgreSQL im Überblick Einsatzgebiete Erfahrungsberichte Grenzen und Ausblicke Erweiterungen rund um PostgreSQL PostgreSQL im Einsatz (Praxisberichte)

Citation preview

Page 1: PostgreSQL im Produktivbetrieb

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“

Page 2: PostgreSQL im Produktivbetrieb

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

Page 3: PostgreSQL im Produktivbetrieb

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äts­funktionen

ü 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

Page 4: PostgreSQL im Produktivbetrieb

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

Page 5: PostgreSQL im Produktivbetrieb

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)

Page 6: PostgreSQL im Produktivbetrieb

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

Page 7: PostgreSQL im Produktivbetrieb

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

Page 8: PostgreSQL im Produktivbetrieb

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

Page 9: PostgreSQL im Produktivbetrieb

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

Page 10: PostgreSQL im Produktivbetrieb

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

Page 11: PostgreSQL im Produktivbetrieb

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

Page 12: PostgreSQL im Produktivbetrieb

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