PostgreSQL Datenbankpraxis für Anwender, Administratoren und Entwickler

Kapitel 3 - Konfiguration

Seite 47

Konfigurationsdateien finden

SHOW config_file;
SHOW hba_file;
SHOW ident_file;


find / -name postgresql.conf

Seite 48

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;

Seite 49

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;

Seite 50

IP-Adressen f�r m�gliche Netzwerkverbindungen

listen_addresses = '192.168.23.5'
listen_addresses = '*'


Netzwerkverbindungen deaktivieren

listen_addresses = ''

Seite 52

Zugriff auf eine bestimmte Unix-Gruppe einschr�nken

unix_socket_directory = '/var/run/postgresql'
unix_socket_group = 'pgaccess'
unix_socket_permissions = 0700

Seite 54

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

Seite 55

work_mem Nutzung nachvollziehen

SET client_min_messages TO DEBUG;
SET trace_sort TO ON;
SELECT id, daten FROM daten ORDER BY daten;

Seite 56

Gr��ere Datenmengen sortieren

SET work_mem TO '64kB';
SELECT id, daten FROM vacuum_test ORDER BY daten;

Seite 57

Die Datenbank ermittelt die notwendigen Einstellungen

VACUUM VERBOSE;

Seite 59

synchronous_commit im laufenden Betrieb �ndern

SET synchronous_commit TO OFF;
SET LOCAL synchronous_commit TO OFF;

Seite 60

Archivierung von WAL-Dateien

archive_command = '/bin/cp -f %p /backup/pg/%f'

Seite 62

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;

Seite 72

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

Seite 73

Tabelle mit vollem Namen ansprechen

SELECT id FROM daten.adressen;

Seite 74

Aktuelle Schemaliste anzeigen

SELECT current_schemas(false);
SELECT current_schemas(true);


Timeout setzen

SET statement_timeout = 1000;

Seite 76

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;