PostgreSQL: Unterschied zwischen den Versionen
(Schon lange kein Paket-User für Datenbanken mehr) |
(Inhalt nun in HS-Doku) |
||
Zeile 1: | Zeile 1: | ||
{{Textkasten|rot|Hinweis:|Inhalt ist nun in der HS Dokumentation. | |||
https://doc.hostsharing.net/hsusers/administration/datenbanken/index.html sowie unter | |||
https://doc.hostsharing.net/hsusers/anleitung/datenbank.html | |||
{{Textkasten| | |||
}} | }} | ||
== Der PostgreSQL-Monitor == | == Der PostgreSQL-Monitor == | ||
Zeile 104: | Zeile 81: | ||
[[Kategorie:Datenbanken]] | [[Kategorie:Datenbanken]] | ||
[[Kategorie:Glossar]] | [[Kategorie:Glossar]] | ||
Version vom 17. Oktober 2014, 08:26 Uhr
Hinweis:
Inhalt ist nun in der HS Dokumentation.https://doc.hostsharing.net/hsusers/administration/datenbanken/index.html sowie unter https://doc.hostsharing.net/hsusers/anleitung/datenbank.html
Der PostgreSQL-Monitor
Für die interaktive Verbindung zu einer Datenbank wird bei PostgreSQL das Programm psql
verwendet. Nachdem ein User und eine Datenbank angelegt wurden, kann eine erste Verbindung zu PostgreSQL aufgebaut werden:
xyz00@hopi$ psql --host localhost --username xyz00_benutzer --dbname xyz00_datenbank Password: passwort Welcome to psql, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit SSL connection (cipher: DES-CBC3-SHA, bits: 168) xyz00_datenbank=>
Nun können wir PostgreSQL-Befehle eingeben. Zu beachten ist, dass die Zeilen mit ';'
abgeschlossen werden müssen.
Von psql
und einigen anderen Tools werden eine Reihe von Umgebungsvariablen ausgewertet, so dass für die Anmeldung bei der Datenbank nicht immer alle Verbindungsdaten eingetippt werden müssen. Dazu gehören PGDATABASE
, PGHOST
, PGPORT
und PGUSER
. Man kann diese Variablen z.B. in seinem Shell-Profile setzen und damit die Anmeldung vereinfachen. Bei /bin/bash
als Shell sieht das so aus:
PGHOST=localhost PGUSER=xyz00_benutzer PGDATABASE=xyz00_datenbank export PGHOST PGUSER PGDATABASE
Benutzer- und Datenbankname sollten natürlich an das eigene Paket angepasst werden. Anschließend reicht der einfache Aufruf von psql
, um eine Verbindung zu dieser Datenbank mit dem angegebenen Benutzernamen aufzubauen.
Ändern des Passworts
Nach dem Anmelden in psql
als der jeweilige Benutzer kann das Passwort folgendermaßen geändert werden:
xyz00_test=> ALTER USER xyz00_benutzer WITH PASSWORD 'neuespasswort';
Backups
Für Backup und Restore werden die beiden Programme pg_dump
und pg_restore
verwendet. Damit kann auch der Paketadmin eigene Sicherungen anlegen und zurückspielen oder auch eine Datenbank von seiner Entwicklungsumgebung einspielen.
Von den PostgreSQL-Datenbanken wird einmal pro Nacht eine Sicherung mit pg_dump angefertigt, die im Backup-Verzeichnis des Paketes abgelegt wird. Die Sicherung erfolgt mit dem folgenden Kommando:
xyz00@hopi:~$ pg_dump --blobs --format=c xyz00_datenbank
Der Dump wird dann mit gzip
komprimiert und unter dem Namen der jeweiligen Datenbank unter ~/.bak
angelegt.
Vacuum einer Datenbank
Das Aufräumen einer PostgreSQL-Datenbank hat zwei Ziele:
- Ermittlung von Tabellenstatistiken (Größe, Anzahl Datensätze, Werteverteilung), damit der SQL-Optimizer einen möglichst guten Ausführungsplan berechnen kann.
- Freigeben von nicht mehr genutzen Blöcken, die durch Löschen und Ändern von Datensätzen entstanden sind.
Zur Durchführung dieser Aktionen kann das SQL-Kommando vacuum
oder das Unix-Kommando vacuumdb
benutzt werden.
Bei uns läuft einmal pro Nacht ein VACUUM ANALYZE
zur Aktualisierung der Statistiken.
Es wird empfohlen, dass nach dem Ändern oder Löschen von größeren Datenmengen ein VACUUM FULL
auf der Datenbank ausgeführt wird. Damit wird der benötigte Platz reduziert und im Allgemeinen auch die Zugriffsperformance verbessert. Da dieses Kommando für die Laufzeit eine exklusive Sperre auf den Tabellen hält, kann dies leider nicht regelmäßig und automatisiert laufen, sondern muss vom Anwender selbst ausgeführt werden.
Links
Verschiedenes
- Web-Frontend: phpPgAdmin ist unter https://phppgadmin.hostsharing.net/current erreichbar.
- Online-Dokumentation: Die Online-Doku gibt es unter http://www.postgresql.org/docs/manuals/. Eine Liste von Büchern (einige davon zum Download) unter http://www.postgresql.org/docs/books/.