dummies
 

Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur ebooks mit Firmenlizenz anzeigen:

 

PostgreSQL-Administration

Peter Eisentraut, Bernd Helmle

 

Verlag O'Reilly Verlag, 2013

ISBN 9783868993622 , 412 Seiten

3. Auflage

Format PDF, OL

Kopierschutz frei

Geräte

29,99 EUR

Für Firmen: Nutzung über Internet und Intranet (ab 2 Exemplaren) freigegeben

Derzeit können über den Shop maximal 500 Exemplare bestellt werden. Benötigen Sie mehr Exemplare, nehmen Sie bitte Kontakt mit uns auf.


 

PostgreSQL-Administration

3

Inhalt

5

Vorwort

13

Zielgruppe

13

Struktur dieses Buchs

14

In diesem Buch behandelte Versionen

15

Neues in der dritten Auflage

15

Typografische Konventionen

15

Danksagungen

16

Kapitel 1 – Installation

17

Softwareinstallation

17

Versionierung

18

Paketinstallation

19

Debian und Ubuntu

19

Red Hat

20

SUSE

20

Quellcode bauen

20

Contrib

22

PostgreSQL einrichten

23

Datenverzeichnis initialisieren

23

Datenverzeichnis bestimmen

23

Benutzerkonto einrichten

24

Datenverzeichnis initialisieren

25

Server starten

28

Server starten mit Programm postgres

28

Server starten mit dem Programm pg_ctl

29

Server mit Init-Skript starten

30

Server anhalten

31

Server per Signal anhalten

31

Server anhalten mit dem Programm pg_ctl

32

Server anhalten mit Init-Skript

33

Server neu starten oder neu laden

33

Nächste Schritte

34

Upgrades durchführen

34

Kleine und große Upgrades

34

Upgrade mit pg_dumpall

35

Upgrade mit pg_upgrade

37

Upgrade durch Replikation

38

Kapitel 2 – Konfiguration

39

Allgemeines

39

Die Datei postgresql.conf

40

Syntax

41

include

41

Änderungen laden

42

Kommandozeile

43

PGOPTIONS

43

SET, RESET und SHOW

44

Einstellungen für Datenbanken und Rollen

45

Präzedenz

46

Einstellungen

47

Verbindungskontrolle

47

listen_addresses

47

port

48

max_connections

49

superuser_reserved_connections

49

ssl

50

Speicherverwaltung

50

shared_buffers

51

temp_buffers

51

work_mem

52

maintenance_work_mem

54

Wartung: Vacuum und Autovacuum

55

autovacuum

55

autovacuum_max_workers

55

autovacuum_naptime

55

Scale Factor und Threshold

55

Transaktionslog

55

fsync

56

wal_buffers

57

synchronous_commit

57

wal_writer_delay

58

checkpoint_segments

58

checkpoint_timeout

59

checkpoint_warning

59

checkpoint_completion_target

59

full_page_writes

60

wal_level

61

archive_mode

61

archive_command

61

archive_timeout

61

hot_standby

61

max_wal_senders

62

wal_sender_delay

62

max_standby_archive_delay

62

max_standby_streaming_delay

62

wal_keep_segments

62

vacuum_defer_cleanup_age

62

wal_receiver_status_interval

63

hot_standby_feedback

63

Planereinstellungen

63

Plantypen

63

enable_seqscan

64

enable_indexscan

64

enable_indexonlyscan

64

enable_bitmapscan

64

enable_nestloop

64

enable_hashjoin

64

enable_mergejoin

64

enable_hashagg

64

enable_sort

64

enable_tidscan

65

enable_material

65

Kostenparameter

65

seq_page_cost

65

random_page_cost

65

cpu_tuple_cost

65

cpu_index_tuple_cost

65

cpu_operator_cost

65

effective_cache_size

65

Andere Planereinstellungen

65

default_statistics_target

65

cursor_tuple_fraction

66

Logging

66

Wohin soll geloggt werden?

66

log_destination

67

CSV-Log

68

logging_collector

69

log_directory

69

log_filename

70

log_rotation_age

70

log_rotation_size

70

log_truncate_on_rotation

70

syslog_facility

71

syslog_ident

71

Wann soll geloggt werden?

71

client_min_messages

71

log_min_messages

72

log_autovacuum_min_duration

72

log_error_verbosity

72

log_min_error_statement

73

log_min_duration_statement

73

Was soll geloggt werden?

74

log_checkpoints

74

log_connections

74

log_disconnections

74

log_duration

74

log_hostname

75

log_line_prefix

75

log_lock_waits

77

log_statement

77

log_temp_files

78

log_timezone

78

Statistiken

78

track_activities

78

track_activity_query_size

79

track_counts

79

track_functions

79

track_io_timing

79

update_process_title

79

stats_temp_directory

80

Lokalisierung

80

client_encoding

81

datestyle

82

intervalstyle

82

lc_collate

82

lc_ctype

83

lc_messages

83

lc_monetary

83

lc_numeric

84

server_encoding

84

Diverses

84

bytea_output

84

custom_variable_classes

84

effective_io_concurrency

85

search_path

85

server_version

86

server_version_num

86

shared_preload_libraries

86

local_preload_libraries

86

statement_timeout

87

timezone

87

Betriebssystemeinstellungen

87

Shared Memory

87

Memory Overcommit

89

Zusammenfassung

90

Kapitel 3 – Wartung

91

VACUUM

91

Multiversion Concurrency Control

91

Der VACUUM-Befehl

93

Einfaches VACUUM

94

VACUUM FULL

94

Einfrieren

96

Die Free Space Map

97

Die Visibility Map

98

Überwachung von VACUUM

98

ANALYZE

99

Das Programm vacuumdb

100

Autovacuum

101

Konfiguration

102

autovacuum

102

log_autovacuum_min_duration

102

autovacuum_max_workers

102

autovacuum_naptime

103

autovacuum_freeze_max_age, vacuum_freeze_min_age

103

vacuum_freeze_table_age

104

Scale Factor und Threshold

105

Überwachung von Autovacuum

106

Tabellenspezifische Einstellungen für Autovacuum

106

Kostenbasiert verzögertes Vacuum

107

Konfiguration

107

vacuum_cost_delay

108

vacuum_cost_limit

108

vacuum_cost_page_hit

108

vacuum_cost_page_miss

109

vacuum_cost_page_dirty

109

autovacuum_vacuum_cost_delay

109

autovacuum_vacuum_cost_limit

109

Reindizierung

109

Weitere Wartungsaufgaben

110

Wartungsstrategie

110

Kapitel 4 – Datensicherung

113

Datensicherungsstrategie

113

Allgemeines über Sicherheit

113

Risiken

114

Überlegungen zur Datensicherung

115

Wohin sichern?

115

Wie oft sichern?

116

Was sichern?

116

Wie wiederherstellen?

117

Was kostet das?

117

Datensicherungsmethoden für PostgreSQL

118

RAID

118

Replikation

118

Dateisystemsicherung

119

Dateisystem sichern

119

Snapshots

120

Wiederherstellung

120

Dumps

121

Dumps ausführen

121

Datensicherung auf andere Rechner

122

Automatisierung

123

Sicherungsstände rotieren

123

Wiederherstellung

124

Keine inkrementelle Sicherung

125

Andere Ausgabeformate

126

WAL-Archivierung und Point-in-Time-Recovery

128

Konzepte

129

Archivierung konfigurieren

129

Archivierungsintervalle

130

Basissicherungen

131

Basissicherung von Hand

132

Organisation der Sicherung

134

Bereinigung der Sicherung

134

Wiederherstellung

136

Point-in-Time-Recovery

138

Zeitleisten

139

Einschätzung

140

Hot Standby

141

Kapitel 5 – Überwachung

143

Was überwachen?

143

Datenbankaktivität

143

Sperren

143

Logdateien

144

Betriebssystem

144

Datensicherung

144

Wie überwachen?

145

Unix-Werkzeuge

145

ps

145

top

147

ptop

148

iotop

148

vmstat

149

iostat

149

Statistiktabellen

151

Aktivität

151

Datenbanken

154

Tupelstatistiken

155

Background Writer

159

Blockstatistiken

160

Replikationsstatistiken

160

Statistiken zurücksetzen

161

Sperren

161

Informationen über Objektgrößen

163

pg_stat_statements

164

Grafische Administrationsprogramme

167

Überwachungswerkzeuge

169

Nagios

169

Munin

170

Sysstat

171

pgFouine

171

pgBadger

173

Und nun?

174

Kapitel 6 – Wiederherstellung, Reparatur und Vorsorge

175

Wiederherstellung und Reparatur

175

Softwarefehler und Abstürze

175

Clientanwendungsabstürze

176

Datenbankserverabstürze

177

Betriebssystemabstürze

178

Hardwareausfälle

179

Stromausfall

179

Festplattenausfall

179

Speicherfehler

179

Bedienfehler und versehentliches Löschen

179

Versehentliches Löschen (DELETE)

180

Datei gelöscht

181

Tabelle gelöscht

181

Index gelöscht

181

Datenbank gelöscht

181

Korrupte Dateien

182

Server startet nicht

182

Write-Ahead-Log defekt

182

Index defekt

185

Tabelle defekt

186

Vorsorge

189

Kapitel 7 – Sicherheit, Rechteverwaltung, Authentifizierung

193

Allgemeines über Sicherheit

193

Benutzerverwaltung

194

Benutzer, Gruppen, Rollen

194

Benutzer anlegen

195

Rollenattribute

197

Login

197

Superuser

198

Attribut zum Erzeugen von Datenbanken

199

Attribut zum Erzeugen von Rollen

199

Replikation

200

Passwörter

200

Passwortgültigkeit

201

Verbindungslimits

202

Rollen ändern

202

Gruppenrollen anlegen und verwalten

203

Rollen anzeigen

204

Rollen löschen

207

Benutzer und Rollen in der Praxis

208

Sichere Datenübertragung

209

Sichere Datenübertragung mit SSL

210

Sichere Datenübertragung mit Tunneln

211

Zugangskontrolle

212

Die Datei pg_hba.conf

213

Typ

214

Datenbankname

215

Benutzername

216

Adresse

217

Methode

220

Authentifizierungsmethoden

220

Trust

220

Reject

221

Passwortauthentifizierung

221

Die Datei .pgpass

222

Ident-basierte Authentifizierung

222

Peer-Authentifizierung

224

Authentifizierung mit Kerberos, GSSAPI und SSPI

225

Authentifizierung mit PAM

225

Authentifizierung mit LDAP

227

Authentifizierung mit RADIUS

228

Clientauthentifizierung mit SSL

229

Authentifizierungsprobleme

230

Zugangskontrolle in der Praxis

232

Rechteverwaltung

232

Privilegien gewähren und entziehen

233

Eigentümerrechte

234

Privilegtypen

235

Privilegien für Tabellen und Sichten

235

Privilegien für Sequenzen

236

Privilegien für Funktionen

237

Privilegien für Schemas

237

Privilegien für Datenbanken

238

Privilegien für Fremddaten-Wrapper

238

Privilegien für Fremdserver

238

Privilegien für Sprachen

238

Privilegien für Large Objects

239

Privilegien für Tablespaces

239

Privilegien für Typen

239

Vorgabeprivilegien

239

Grant-Optionen

240

Privilegien anzeigen

241

Rechteverwaltung in der Praxis

244

Kapitel 8 – Performance-Tuning

245

Ablauf der Befehlsverarbeitung

245

Empfang über Netzwerk

245

Parser

246

Rewriter

246

Planer/Optimizer

247

Executor

248

Ergebnis über Netzwerk

249

Flaschenhälse

249

CPU

249

RAM

250

Festplattendurchsatz

250

Festplattenlatenz

251

Festplattenrotation

251

Netzwerkverbindung

251

Indexe einsetzen

252

Einführung

252

Indextypen

255

Mehrspaltige Indexe und Indexkombination

256

Indexe über Ausdrücke

258

Unique Indexe

258

Partielle Indexe

259

Operatorklassen

261

Indizierung von Mustersuchen

262

Indexe und Fremdschlüssel

263

HOT Updates

264

Nebenläufiges Bauen von Indexen

264

Optimierung von CREATE INDEX

266

Ausführungspläne

266

Planknoten

266

Pläne ansehen und analysieren

268

EXPLAIN und EXPLAIN ANALYZE

270

Pläne mit Bitmap Index Scan

271

Pläne und LIMIT

272

Pläne mit Indexscan

272

Pläne mit Index-Only-Scan

273

Pläne mit Sortieren

273

Pläne auswählen und vergleichen

274

Join-Pläne

276

auto_explain

278

Statistiken und Kostenparameter

279

Statistiken für den Planer

279

ANALYZE

283

Kostenparameter

284

seq_page_cost

285

random_page_cost

285

cpu_tuple_cost

286

cpu_index_tuple_cost

286

cpu_operator_cost

286

effective_cache_size

286

Ungeloggte Tabellen

287

Partitionierung

287

Tabellen partitionieren

288

Constraint Exclusion

289

Partitionierte Tabellen beschreiben

290

Einschätzung

291

Befüllen der Datenbank

291

Transaktionen

292

COPY statt INSERT

293

Indexe, Fremdschlüssel, Reihenfolge

293

Serverkonfiguration

294

Checkpoints

294

Speicher

295

Archivierung

295

Fsync

296

Überblick

296

Nach dem Laden

296

Kapitel 9 – Replikation und Hochverfügbarkeit

297

Begriffserklärung

297

Connection Pooling

297

Clustering

298

Shared Storage

298

Shared Nothing

298

Sharding

298

Replikation

299

Master/Slave-Replikation

299

Multimaster-Replikation

299

Standby-Systeme

300

Hot Standby

301

Planung

301

Konfiguration

302

Failover

304

Verwalten von WAL-Archiven

305

Einschränkungen

305

Zusammenfassung

308

Streaming Replication

308

Planung

309

Konfiguration

309

Asynchrone Replikation

309

Synchrone Replikation

311

Kaskadierende Replikation und Änderungen der Timeline

313

Überwachung

313

Zusammenfassung

316

WAL-Replikation mit pg_standby

316

Konfiguration

316

Failover mit pg_standby

317

Slony-I

318

Konzeption

318

Bevorzugte Anwendungsgebiete

320

Installation

320

Auswahl der Slony-I-Version

320

Debian

321

Quelltextinstallation

322

Die Kommandosprache slonik

322

slonik-Präambel

323

CLUSTER NAME

323

NODE ADMIN CONNINFO

323

Initialisieren eines Clusters

323

INIT CLUSTER

323

Verwalten und Konfigurieren von Clustern

324

CLONE PREPARE, CLONE FINISH

324

CREATE SET

324

DROP NODE

324

DROP PATH

324

EXECUTE SCRIPT

324

FAILOVER

325

LOCK SET, UNLOCK SET

325

MERGE SET

326

MOVE SET

326

RESTART NODE

327

SET ADD TABLE

327

SET ADD SEQUENCE

328

SET DROP TABLE

328

SET DROP SEQUENCE

328

STORE NODE

328

STORE PATH

329

SUBSCRIBE SET

329

UNINSTALL NODE

331

UNSUBSCRIBE SET

331

UPDATE FUNCTIONS

331

WAIT FOR EVENT

331

Der erste Slony-I-Cluster

332

Das Datenbankschema

332

Einrichten der Authentifizierung

333

Einrichten des Datenbankschemas

334

Definition des Clusters

334

Initialisieren des Clusters

336

Starten der Replikationsserver

337

Erstellen der Sets

339

Abonnieren der Sets

340

Überwachung und Wartung

341

Lagtime überwachen

342

slon-Prozesse überwachen

343

Speicherverbrauch überwachen

343

Optimierung

343

Subscriber mit hoher oder anwachsender Lagtime

343

Hohe I/O-Last auf Origin

344

slon-Prozesse und Instabilitäten

344

Zusammenfassung

344

pgpool-II

345

Installation

345

Konfiguration

345

pgpool und Slony

347

pgpool und Streaming Replication

348

PgBouncer

349

Installation

350

Pool-Modi

350

Konfiguration

351

Starten

352

Überwachung und Wartung

353

PgBouncer und Skalierung mit vielen Datenbankverbindungen

356

PL/Proxy

356

Installation

357

Konfiguration

357

plproxy.get_cluster_version

358

plproxy.get_cluster_config

358

plproxy.get_cluster_partitions

360

Beispiel

360

Zusammenfassung

363

DRBD

364

Installation

364

Konfiguration

364

Integration mit Pacemaker

367

Grundlegende Konfiguration

367

Einrichten der Cluster Ressourcen

368

Konfiguration von Ressourcen

370

Wartung

374

STONITH - Shoot The Other Node In The Head

377

Zusammenfassung

377

Kapitel 10 – Hardware

379

Arbeitsspeicher

379

Prozessor

380

Festspeichersystem

382

Anforderungen an das Festspeichersystem

382

Größe des Festspeichersystems

383

Anbindung des Festspeichersystems

384

Geschwindigkeit und Redundanz

386

RAID 0

386

RAID 1

386

RAID 5

386

RAID 6

387

RAID 10

387

RAID 15

388

Redundanz in NAS- oder SAN-Systemen

388

Datensicherheit bei Festplattenlaufwerken und RAID-Controllern

388

Solid State Drives

389

Aufbau eines Serversystems für PostgreSQL

390

Tablespaces

392

Einrichtung von Tablespaces auf dedizierten Laufwerken

393

Verwendung von Tablespaces

393

Verschieben zwischen Tablespaces

395

Tablespace für temporäre Dateien

396

Einrichtung eines dedizierten WAL-Laufwerks

396

Hardwaretests

397

Leistungsmessung mit dd

397

Leistungsmessung mit bonnie++

398

Leistungsmessung mit pgbench

399

Index

403