Fröhlich | PostgreSQL 10 | E-Book | sack.de
E-Book

E-Book, Deutsch, 489 Seiten

Fröhlich PostgreSQL 10

Praxisbuch für Administratoren und Entwickler

E-Book, Deutsch, 489 Seiten

ISBN: 978-3-446-45641-9
Verlag: Carl Hanser
Format: PDF
Kopierschutz: Wasserzeichen (»Systemvoraussetzungen)



Wenn Sie als Administrator, Entwickler oder IT-/System-Architekt PostgreSQL 10 professionell und erfolgreich in der Praxis einsetzen wollen, finden Sie in diesem Arbeitsbuch die richtige Unterstützung.
Administratoren bietet es Anleitung beim täglichen Datenbankbetrieb sowie detaillierte Informationen und Praxistipps zu Themen wie Backup and Recovery, Sicherheit und Überwachung, Performance Tuning oder Hochverfügbarkeit. Einen weiteren Schwerpunkt bildet die Replikation von und nach anderen Datenbanksystemen.


IT-Architekten, System-Designer und IT-Manager erfahren, wie PostgreSQL kostengünstig in eine bestehende IT-Infrastruktur platziert werden kann und effektiv mit anderen Datenbanksystemen, wie z. B. Oracle, zusammenarbeitet. Entwickler lernen, wie robuste und performante Datenbankapplikationen erstellt werden und erhalten außerdem einen praktischen Leitfaden für den Umstieg von Oracle auf PostgreSQL.
Eigene Kapitel widmen sich den Themen PostgreSQL in der Cloud und großen Datenbanken.


Alle Programme und Skripte sind im Internet zum Download verfügbar.
Fröhlich PostgreSQL 10 jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


1;Inhalt;7
2;1 Einführung und Geschichte;13
2.1;1.1 Die Geschichte von PostgreSQL;14
2.2;1.2 Verwendete Version;15
2.3;1.3 Konventionen;15
2.4;1.4 Software und Skripte;15
3;2 Installation aus Paketen und Quellcode;17
3.1;2.1 Paketinstallation;17
3.1.1;2.1.1 Paketinstallation unter Linux;17
3.1.2;2.1.2 Paketinstallation unter Windows;18
3.2;2.2 Installation aus dem Quellcode;20
3.2.1;2.2.1 Installation aus dem Quellcode unter Linux;20
3.2.2;2.2.2 Installation aus dem Quellcode unter Windows;21
3.3;2.3 Erste Schritte;24
4;3 Upgrade auf Version 10;29
4.1;3.1 Upgrade mit pg_dumpall;29
4.2;3.2 Upgrade mit pg_upgrade;31
4.3;3.3 Migration nach Native Partitioning;33
4.4;3.4 Regressionstests;35
5;4 Die Architektur von PostgreSQL;37
5.1;4.1 Überblick;37
5.2;4.2 Memory und Prozesse;38
5.2.1;4.2.1 Hintergrundprozesse;39
5.2.2;4.2.2 Der Shared Memory;41
5.3;4.3 VACUUM;49
5.4;4.4 Cluster, Datenbanken und Tabellen;52
6;5 Server und Datenbanken administrieren;57
6.1;5.1 Parameter-Einstellungen;57
6.1.1;5.1.1 Einstellungen im Betriebssystem;57
6.1.2;5.1.2 Cluster-Einstellungen;59
6.1.3;5.1.3 Gebietsschema und Zeichensatz;69
6.2;5.2 Datenbanken verwalten;72
6.3;5.3 Konkurrenz;75
6.4;5.4 Die WAL-Archivierung einschalten;78
6.5;5.5 Wartungsaufgaben;80
6.5.1;5.5.1 VACUUM;80
6.5.2;5.5.2 ANALYZE;83
6.6;5.6 Nützliche Skripte und Hinweise;83
6.6.1;5.6.1 Eine Passwortdatei verwenden;84
6.6.2;5.6.2 Welche Parameter sind Nicht-Standard?;84
6.6.3;5.6.3 Eine Session killen;85
6.6.4;5.6.4 Eine Tabelle nach Excel kopieren;85
6.6.5;5.6.5 Die Datei .psqlrc;86
6.6.6;5.6.6 Einen WAL-Switch manuell auslösen;87
6.6.7;5.6.7 Die PostgreSQL-Server-Logdatei in eine Tabelle laden;87
6.6.8;5.6.8 Automatisches Rotieren von Logdateien;88
6.6.9;5.6.9 Nicht verwendete Indexe identifizieren;88
6.6.10;5.6.10 Microsoft Excel als Datenbank-Client;89
6.6.11;5.6.11 Den Inhalt der Kontrolldatei ausgeben;91
6.6.12;5.6.12 Platzverbrauch von Tabellen;92
6.6.13;5.6.13 Die Anzahl von Verbindungen begrenzen;92
6.6.14;5.6.14 Tabellen und Indexe in einen anderen Tablespace legen;93
6.6.15;5.6.15 Temporäre Dateien verwalten;94
6.6.16;5.6.16 Lang laufende SQL-Anweisungen;94
6.7;5.7 Beispielschemata;95
7;6 Neue Features;97
7.1;6.1 Neue Features in Version 10;97
7.1.1;6.1.1 Native Table Partitioning;98
7.1.2;6.1.2 Paralleles SQL;100
7.1.3;6.1.3 Logische Replikation;100
7.1.4;6.1.4 Änderungen der Architektur;102
7.1.5;6.1.5 SQL-Anweisungen;104
7.1.6;6.1.6 Monitoring;110
7.1.7;6.1.7 Werkzeuge;111
7.1.8;6.1.8 Konfigurationsparameter;114
7.2;6.2 Neue Features in den Versionen 9.2 bis 9.6;114
7.2.1;6.2.1 Backend;114
7.2.2;6.2.2 Replikation;115
7.2.3;6.2.3 Performance;116
8;7 Sicherung und Wiederherstellung;117
8.1;7.1 Online-Sicherung mit Point-in-time-Recovery;118
8.2;7.2 Offline-Sicherung auf Dateisystemebene;123
8.3;7.3 SQL Dump;123
9;8 Sicherheit und Überwachung;129
9.1;8.1 Sicherheit;130
9.1.1;8.1.1 Rollen und Privilegien;130
9.1.2;8.1.2 Authentifizierung und Zugangskontrolle;137
9.1.3;8.1.3 Rechteverwaltung;139
9.1.4;8.1.4 Sichere Verbindungen;144
9.1.5;8.1.5 Out-of-the-box-Sicherheit;148
9.1.6;8.1.6 Hacker-Attacken abwehren;149
9.2;8.2 Überwachung;154
9.2.1;8.2.1 Auditing;154
9.2.2;8.2.2 Monitoring;156
10;9 Replikation zwischen Clustern;163
10.1;9.1 Physische Replikation;164
10.1.1;9.1.1 Vorbereitung und Planung;164
10.1.2;9.1.2 Konfiguration und Aktivierung;165
10.1.3;9.1.3 Kaskadenförmige Replikation;169
10.1.4;9.1.4 Hot Standby;170
10.1.5;9.1.5 Synchrone Replikation;171
10.1.6;9.1.6 Die Replikation überwachen;173
10.1.7;9.1.7 Failover und Switchover;175
10.2;9.2 Logische Replikation;180
10.3;9.3 Logical Decoding;186
10.3.1;9.3.1 Logical Decoding mit Java als Consumer;187
11;10 Das Regelsystem;191
11.1;10.1 Das Regelsystem für SELECT-Anweisungen;192
11.2;10.2 Das Regelsystem für DML-Anweisungen;193
11.3;10.3 Regeln und Views;197
12;11 Performance Tuning;199
12.1;11.1 Out-of-the-box-Tuning;199
12.1.1;11.1.1 Goldene Regeln für neue Server und Datenbanken;200
12.1.2;11.1.2 Das Utility „pgTune“;201
12.1.3;11.1.3 Optimierung von Memory-Parametern;202
12.2;11.2 Performance-Analyse;205
12.2.1;11.2.1 Analyse mit dem „Statistics Collector“;205
12.2.2;11.2.2 Der Background Writer;212
12.2.3;11.2.3 Analyse mit „pgstatspack“;213
13;12 Optimierung von SQL-Anweisungen;217
13.1;12.1 Ausführungsschritte;218
13.2;12.2 Der SQL-Optimizer;219
13.3;12.3 Statistiken und Histogramme;220
13.4;12.4 Zugriffsmethoden;223
13.5;12.5 Join-Methoden;224
13.6;12.6 SQL-Optimierung;227
13.6.1;12.6.1 Der EXPLAIN-Befehl;228
13.6.2;12.6.2 Ausführungspläne verstehen und optimieren;231
14;13 Einsatz großer Datenbanken;241
14.1;13.1 Partitionierung von Tabellen;242
14.1.1;13.1.1 Native Table Partitioning;242
14.2;13.2 Paralleles SQL;245
14.3;13.3 Materialized Views;250
14.4;13.4 BRIN-Indexe;252
15;14 PostGIS;257
15.1;14.1 PostGIS und PostgreSQL;257
15.2;14.2 PostGIS installieren;258
15.2.1;14.2.1 Paketorientierte Installation;258
15.2.2;14.2.2 Installation aus dem Quellcode;261
15.3;14.3 Erste Schritte mit PostGIS;262
15.4;14.4 PostGIS in der Praxis anwenden;267
16;15 Applikationen für PostgreSQL entwickeln;273
16.1;15.1 Applikationsdesign;273
16.2;15.2 Entwicklungswerkzeuge;277
16.3;15.3 PostgreSQL Extensions;278
17;16 SQL-Erweiterungen;281
17.1;16.1 Datentypen;281
17.2;16.2 Funktionen und Sprachen;282
17.2.1;16.2.1 SQL-Funktionen;283
17.2.2;16.2.2 Funktionen mit prozeduralen Programmiersprachen;287
17.2.3;16.2.3 C-Funktionen;291
17.3;16.3 Operatoren;296
17.4;16.4 Das Extension-Netzwerk;298
17.4.1;16.4.1 Extensions entwickeln;299
17.4.2;16.4.2 Extensions publizieren;302
18;17 PL/pgSQL-Funktionen und Trigger;307
18.1;17.1 PL/pgSQL-Funktionen;307
18.1.1;17.1.1 Abfragen und Resultsets;311
18.1.2;17.1.2 Cursor verwenden;313
18.1.3;17.1.3 DML-Anweisungen;315
18.1.4;17.1.4 Dynamische SQL-Anweisungen;317
18.1.5;17.1.5 Fehlerbehandlung;318
18.2;17.2 Trigger;319
19;18 Embedded SQL (ECPG);323
20;19 Java-Programmierung;333
20.1;19.1 Eine Entwicklungsumgebung einrichten;333
20.2;19.2 Verarbeitung von Resultsets;336
20.3;19.3 DML-Anweisungen und Transaktionen;339
20.4;19.4 Bindevariablen verwenden;341
20.5;19.5 Java und Stored Functions;342
20.6;19.6 Large Objects;346
20.7;19.7 JDBC-Tracing;350
21;20 Die C-Library libpq;353
21.1;20.1 Die Entwicklungsumgebung einrichten;353
21.2;20.2 Programme mit „libpq“ erstellen;358
22;21 PHP-Applikationen;371
22.1;21.1 Installation und Konfiguration;372
22.2;21.2 Applikationen mit PHP entwickeln;374
22.3;21.3 Die PDO-API;382
23;22 Client-Programmierung mit Perl-DBI;385
23.1;22.1 SELECT-Anweisungen und Resultsets;388
23.2;22.2 DML-Anweisungen;392
23.3;22.3 Bindevariablen verwenden;393
23.4;22.4 Fehlerbehandlung und Tracing;395
23.5;22.5 Nützliche Skripte und Beispiele;398
23.5.1;22.5.1 Mehrere Server abfragen;398
23.5.2;22.5.2 Parallele Verbindungen;399
23.5.3;22.5.3 Large Objects verarbeiten;402
23.5.4;22.5.4 Asynchrone Abfragen;402
23.5.5;22.5.5 Datenbanken vergleichen;403
24;23 Large Objects;407
25;24 PostgreSQL in die IT-Landschaft einbinden;413
25.1;24.1 Features und Funktionen;413
25.2;24.2 Datensicherheit und Wiederherstellung;414
25.3;24.3 Desaster Recovery;415
25.4;24.4 Überwachung;416
25.5;24.5 Administrierbarkeit;416
25.6;24.6 Verfügbarkeit;417
25.7;24.7 Datensicherheit und Auditing;418
25.8;24.8 Performance und Skalierbarkeit;418
25.9;24.9 Schnittstellen und Kommunikation;419
25.10;24.10 Support;420
25.11;24.11 Fazit;420
26;25 Migration von MySQL-Datenbanken;421
26.1;25.1 Unterschiede zwischen MySQL und PostgreSQL;421
26.2;25.2 Eine Migration durchführen;423
27;26 Von Oracle nach PostgreSQL migrieren;429
27.1;26.1 Die Migration planen;429
27.2;26.2 Unterschiede zwischen Oracle und PostgreSQL;431
27.2.1;26.2.1 Unterschiede der Datentypen;431
27.2.2;26.2.2 Syntaktische und logische Unterschiede;432
27.2.3;26.2.3 Steigerung der Kompatibilität von PostgreSQL;435
27.3;26.3 Portierung von Oracle PL/SQL;436
27.4;26.4 Tools zur Unterstützung der Migration;439
27.5;26.5 Technisches Vorgehen;441
27.6;26.6 Ein Migrationsbeispiel;441
27.6.1;26.6.1 Manuelle Migration;442
27.6.2;26.6.2 Migration unter Verwendung von „Ora2Pg“;448
27.6.3;26.6.3 Große Tabellen laden;452
28;27 Replikation zwischen Oracle und PostgreSQL;455
28.1;27.1 Datenbanklink zwischen Oracle und PostgreSQL;455
28.2;27.2 Replikation mit Oracle XStream;461
29;28 PostgreSQL in der Cloud;475
29.1;28.1 Private Cloud;476
29.2;28.2 Public Cloud;478
30;Index;481


Fröhlich, Lutz
Lutz Fröhlich ist Diplom-Mathematiker und freiberuflicher IT-Berater. Er beschäftigt sich seit 30 Jahren mit Datenbanken und schöpft seine praktischen Erfahrungen aus langjährigen Consulting-Tätigkeiten in den USA und in Europa. Seine Spezialgebiete sind Performance, Hochverfügbarkeit, Exadata sowie Daten-Replikation und Streaming. Er arbeitet seit mehreren Jahren in den Bereichen Data Science und maschinelles Lernen und hält regelmäßig Seminare und Vorträge zu diesen und anderen Themen.

Lutz Fröhlich ist Diplom-Mathematiker und freiberuflicher IT-Berater. Er beschäftigt sich seit 30 Jahren mit Datenbanken und schöpft seine praktischen Erfahrungen aus langjährigen Consulting-Tätigkeiten in den USA und in Europa. Seine Spezialgebiete sind Performance, Hochverfügbarkeit, Exadata sowie Daten-Replikation und Streaming. Er arbeitet seit mehreren Jahren in den Bereichen Data Science und maschinelles Lernen und hält regelmäßig Seminare und Vorträge zu diesen und anderen Themen.


Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.