PostgreSQL 10 - Praxisbuch für Administratoren und Entwickler

Lutz Fröhlich

PostgreSQL 10

Praxisbuch für Administratoren und Entwickler

2018

489 Seiten

Format: PDF, ePUB, Online Lesen

E-Book: €  49,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446456419

 

Inhalt

7

1 Einführung und Geschichte

13

1.1 Die Geschichte von PostgreSQL

14

1.2 Verwendete Version

15

1.3 Konventionen

15

1.4 Software und Skripte

15

2 Installation aus Paketen und Quellcode

17

2.1 Paketinstallation

17

2.1.1 Paketinstallation unter Linux

17

2.1.2 Paketinstallation unter Windows

18

2.2 Installation aus dem Quellcode

20

2.2.1 Installation aus dem Quellcode unter Linux

20

2.2.2 Installation aus dem Quellcode unter Windows

21

2.3 Erste Schritte

24

3 Upgrade auf Version 10

29

3.1 Upgrade mit pg_dumpall

29

3.2 Upgrade mit pg_upgrade

31

3.3 Migration nach Native Partitioning

33

3.4 Regressionstests

35

4 Die Architektur von PostgreSQL

37

4.1 Überblick

37

4.2 Memory und Prozesse

38

4.2.1 Hintergrundprozesse

39

4.2.2 Der Shared Memory

41

4.3 VACUUM

49

4.4 Cluster, Datenbanken und Tabellen

52

5 Server und Datenbanken administrieren

57

5.1 Parameter-Einstellungen

57

5.1.1 Einstellungen im Betriebssystem

57

5.1.2 Cluster-Einstellungen

59

5.1.3 Gebietsschema und Zeichensatz

69

5.2 Datenbanken verwalten

72

5.3 Konkurrenz

75

5.4 Die WAL-Archivierung einschalten

78

5.5 Wartungsaufgaben

80

5.5.1 VACUUM

80

5.5.2 ANALYZE

83

5.6 Nützliche Skripte und Hinweise

83

5.6.1 Eine Passwortdatei verwenden

84

5.6.2 Welche Parameter sind Nicht-Standard?

84

5.6.3 Eine Session killen

85

5.6.4 Eine Tabelle nach Excel kopieren

85

5.6.5 Die Datei .psqlrc

86

5.6.6 Einen WAL-Switch manuell auslösen

87

5.6.7 Die PostgreSQL-Server-Logdatei in eine Tabelle laden

87

5.6.8 Automatisches Rotieren von Logdateien

88

5.6.9 Nicht verwendete Indexe identifizieren

88

5.6.10 Microsoft Excel als Datenbank-Client

89

5.6.11 Den Inhalt der Kontrolldatei ausgeben

91

5.6.12 Platzverbrauch von Tabellen

92

5.6.13 Die Anzahl von Verbindungen begrenzen

92

5.6.14 Tabellen und Indexe in einen anderen Tablespace legen

93

5.6.15 Temporäre Dateien verwalten

94

5.6.16 Lang laufende SQL-Anweisungen

94

5.7 Beispielschemata

95

6 Neue Features

97

6.1 Neue Features in Version 10

97

6.1.1 Native Table Partitioning

98

6.1.2 Paralleles SQL

100

6.1.3 Logische Replikation

100

6.1.4 Änderungen der Architektur

102

6.1.5 SQL-Anweisungen

104

6.1.6 Monitoring

110

6.1.7 Werkzeuge

111

6.1.8 Konfigurationsparameter

114

6.2 Neue Features in den Versionen 9.2 bis 9.6

114

6.2.1 Backend

114

6.2.2 Replikation

115

6.2.3 Performance

116

7 Sicherung und Wiederherstellung

117

7.1 Online-Sicherung mit Point-in-time-Recovery

118

7.2 Offline-Sicherung auf Dateisystemebene

123

7.3 SQL Dump

123

8 Sicherheit und Überwachung

129

8.1 Sicherheit

130

8.1.1 Rollen und Privilegien

130

8.1.2 Authentifizierung und Zugangskontrolle

137

8.1.3 Rechteverwaltung

139

8.1.4 Sichere Verbindungen

144

8.1.5 Out-of-the-box-Sicherheit

148

8.1.6 Hacker-Attacken abwehren

149

8.2 Überwachung

154

8.2.1 Auditing

154

8.2.2 Monitoring

156

9 Replikation zwischen Clustern

163

9.1 Physische Replikation

164

9.1.1 Vorbereitung und Planung

164

9.1.2 Konfiguration und Aktivierung

165

9.1.3 Kaskadenförmige Replikation

169

9.1.4 Hot Standby

170

9.1.5 Synchrone Replikation

171

9.1.6 Die Replikation überwachen

173

9.1.7 Failover und Switchover

175

9.2 Logische Replikation

180

9.3 Logical Decoding

186

9.3.1 Logical Decoding mit Java als Consumer

187

10 Das Regelsystem

191

10.1 Das Regelsystem für SELECT-Anweisungen

192

10.2 Das Regelsystem für DML-Anweisungen

193

10.3 Regeln und Views

197

11 Performance Tuning

199

11.1 Out-of-the-box-Tuning

199

11.1.1 Goldene Regeln für neue Server und Datenbanken

200

11.1.2 Das Utility „pgTune“

201

11.1.3 Optimierung von Memory-Parametern

202

11.2 Performance-Analyse

205

11.2.1 Analyse mit dem „Statistics Collector“

205

11.2.2 Der Background Writer

212

11.2.3 Analyse mit „pgstatspack“

213

12 Optimierung von SQL-Anweisungen

217

12.1 Ausführungsschritte

218

12.2 Der SQL-Optimizer

219

12.3 Statistiken und Histogramme

220

12.4 Zugriffsmethoden

223

12.5 Join-Methoden

224

12.6 SQL-Optimierung

227

12.6.1 Der EXPLAIN-Befehl

228

12.6.2 Ausführungspläne verstehen und optimieren

231

13 Einsatz großer Datenbanken

241

13.1 Partitionierung von Tabellen

242

13.1.1 Native Table Partitioning

242

13.2 Paralleles SQL

245

13.3 Materialized Views

250

13.4 BRIN-Indexe

252

14 PostGIS

257

14.1 PostGIS und PostgreSQL

257

14.2 PostGIS installieren

258

14.2.1 Paketorientierte Installation

258

14.2.2 Installation aus dem Quellcode

261

14.3 Erste Schritte mit PostGIS

262

14.4 PostGIS in der Praxis anwenden

267

15 Applikationen für PostgreSQL entwickeln

273

15.1 Applikationsdesign

273

15.2 Entwicklungswerkzeuge

277

15.3 PostgreSQL Extensions

278

16 SQL-Erweiterungen

281

16.1 Datentypen

281

16.2 Funktionen und Sprachen

282

16.2.1 SQL-Funktionen

283

16.2.2 Funktionen mit prozeduralen Programmiersprachen

287

16.2.3 C-Funktionen

291

16.3 Operatoren

296

16.4 Das Extension-Netzwerk

298

16.4.1 Extensions entwickeln

299

16.4.2 Extensions publizieren

302

17 PL/pgSQL-Funktionen und Trigger

307

17.1 PL/pgSQL-Funktionen

307

17.1.1 Abfragen und Resultsets

311

17.1.2 Cursor verwenden

313

17.1.3 DML-Anweisungen

315

17.1.4 Dynamische SQL-Anweisungen

317

17.1.5 Fehlerbehandlung

318

17.2 Trigger

319

18 Embedded SQL (ECPG)

323

19 Java-Programmierung

333

19.1 Eine Entwicklungsumgebung einrichten

333

19.2 Verarbeitung von Resultsets

336

19.3 DML-Anweisungen und Transaktionen

339

19.4 Bindevariablen verwenden

341

19.5 Java und Stored Functions

342

19.6 Large Objects

346

19.7 JDBC-Tracing

350

20 Die C-Library libpq

353

20.1 Die Entwicklungsumgebung einrichten

353

20.2 Programme mit „libpq“ erstellen

358

21 PHP-Applikationen

371

21.1 Installation und Konfiguration

372

21.2 Applikationen mit PHP entwickeln

374

21.3 Die PDO-API

382

22 Client-Programmierung mit Perl-DBI

385

22.1 SELECT-Anweisungen und Resultsets

388

22.2 DML-Anweisungen

392

22.3 Bindevariablen verwenden

393

22.4 Fehlerbehandlung und Tracing

395

22.5 Nützliche Skripte und Beispiele

398

22.5.1 Mehrere Server abfragen

398

22.5.2 Parallele Verbindungen

399

22.5.3 Large Objects verarbeiten

402

22.5.4 Asynchrone Abfragen

402

22.5.5 Datenbanken vergleichen

403

23 Large Objects

407

24 PostgreSQL in die IT-Landschaft einbinden

413

24.1 Features und Funktionen

413

24.2 Datensicherheit und Wiederherstellung

414

24.3 Desaster Recovery

415

24.4 Überwachung

416

24.5 Administrierbarkeit

416

24.6 Verfügbarkeit

417

24.7 Datensicherheit und Auditing

418

24.8 Performance und Skalierbarkeit

418

24.9 Schnittstellen und Kommunikation

419

24.10 Support

420

24.11 Fazit

420

25 Migration von MySQL-Datenbanken

421

25.1 Unterschiede zwischen MySQL und PostgreSQL

421

25.2 Eine Migration durchführen

423

26 Von Oracle nach PostgreSQL migrieren

429

26.1 Die Migration planen

429

26.2 Unterschiede zwischen Oracle und PostgreSQL

431

26.2.1 Unterschiede der Datentypen

431

26.2.2 Syntaktische und logische Unterschiede

432

26.2.3 Steigerung der Kompatibilität von PostgreSQL

435

26.3 Portierung von Oracle PL/SQL

436

26.4 Tools zur Unterstützung der Migration

439

26.5 Technisches Vorgehen

441

26.6 Ein Migrationsbeispiel

441

26.6.1 Manuelle Migration

442

26.6.2 Migration unter Verwendung von „Ora2Pg“

448

26.6.3 Große Tabellen laden

452

27 Replikation zwischen Oracle und PostgreSQL

455

27.1 Datenbanklink zwischen Oracle und PostgreSQL

455

27.2 Replikation mit Oracle XStream

461

28 PostgreSQL in der Cloud

475

28.1 Private Cloud

476

28.2 Public Cloud

478

Index

481

 

© 2009-2024 ciando GmbH