Konfigurationsdateien finden
SHOW config_file;
SHOW hba_file;
SHOW ident_file;
find / -name postgresql.conf
Wert eines Parameters finden
SHOW max_connections;
Urspr�ngliche Einstellung eines Wertes herausfinden
SET search_path TO "public";
SELECT name,setting,reset_val FROM pg_settings WHERE name = \u2019search_path\u2019;
Wert eines Parameters �ndern
SET search_path TO public;
Wert eines Parameters zur�cksetzen
RESET search_path;
SET search_path TO DEFAULT;
Alle ge�nderten Werte zur�cksetzen
RESET ALL;
IP-Adressen f�r m�gliche Netzwerkverbindungen
listen_addresses = '192.168.23.5' listen_addresses = '*'
Netzwerkverbindungen deaktivieren
listen_addresses = ''
Zugriff auf eine bestimmte Unix-Gruppe einschr�nken
unix_socket_directory = '/var/run/postgresql' unix_socket_group = 'pgaccess' unix_socket_permissions = 0700
shared_buffers auf 200 MB einstellen
shared_buffers = 200MB
/etc/sysctl.conf anpassen
kernel.shmmax = 220000000 kernel.shmall = 55000
Werte im laufenden Betrieb setzen
sysctl -w kernel.shmmax=220000000 sysctl -w kernel.shmall=55000
work_mem Nutzung nachvollziehen
SET client_min_messages TO DEBUG; SET trace_sort TO ON; SELECT id, daten FROM daten ORDER BY daten;
Gr��ere Datenmengen sortieren
SET work_mem TO '64kB'; SELECT id, daten FROM vacuum_test ORDER BY daten;
Die Datenbank ermittelt die notwendigen Einstellungen
VACUUM VERBOSE;
synchronous_commit im laufenden Betrieb �ndern
SET synchronous_commit TO OFF; SET LOCAL synchronous_commit TO OFF;
Archivierung von WAL-Dateien
archive_command = '/bin/cp -f %p /backup/pg/%f'
Statistiken pro Tabellenspalte
SELECT attname, n_distinct, most_common_vals FROM pg_stats WHERE schemaname = 'public' AND tablename = 'stats';
Statistiken f�r eine Spalte �ndern
ALTER TABLE stats ALTER daten SET STATISTICS 50;
search_path anpassen
CREATE SCHEMA anwendung;
SET search_path TO anwendung,public;
Tabelle im neuen Schema anlegen
CREATE TABLE schema_test (id SERIAL);
Gleichnamige Tabellen in verschiedenen Schemata
CREATE SCHEMA daten;
CREATE TABLE anwendung.adressen (id SERIAL);
CREATE TABLE daten.adressen (id SERIAL);
SET search_path TO anwendung,daten,public;
\dt
Tabelle mit vollem Namen ansprechen
SELECT id FROM daten.adressen;
Aktuelle Schemaliste anzeigen
SELECT current_schemas(false);
SELECT current_schemas(true);
Timeout setzen
SET statement_timeout = 1000;
Vorhandene Datenbanken anzeigen
\l
\cmd{client\_encoding} setzen
SET client_encoding TO latin1;
Fehler beim Umwandeln von Encodings
CREATE TABLE enc (daten TEXT);
SET client_encoding TO utf8;
INSERT INTO enc (daten) VALUES ('Das € Symbol');
SET client_encoding TO latin1;
SELECT daten FROM enc;