JoeToe

Alle PostgreSQL-Datenbanken sichern

PostgreSQL ist ein sehr gutes OpenSource-DatenbankSystem! Es hat einige Parallelen zu Enterpriselösungen, fühlt sich aber ungleich angenehmer in der Brieftasche an. Die Datensicherung läuft hier über pg_dump bzw. pgdumpall.

Mit pg_dump können einzelne Datenbanken gesichert werden.

PostgreSQL ist ein sehr gutes OpenSource-DatenbankSystem! Es hat einige Parallelen zu Enterpriselösungen, fühlt sich aber ungleich angenehmer in der Brieftasche an. Die Datensicherung läuft hier über pg_dump bzw. pgdumpall.

Die Online-Datensicherung, also im laufenden Betrieb, ist “schlau” genug, um einen konsitnten Zustand des Backups zu erstellen. - Selbst wenn es Schreiboperaionen in der Datenbank gibt.

Mit pg_dump können einzelne Datenbanken gesichert werden.
pg_dump –help zeigt die Möglichkeiten:

pg_dump dumps a database as a text file or to other formats.

Usage:
  pg_dump [OPTION]... [DBNAME]

General options:
  -f, --file=FILENAME      output file name
  -F, --format=c|t|p       output file format (custom, tar, plain text)
  -i, --ignore-version     proceed even when server version mismatches
                           pg_dump version
  -v, --verbose            verbose mode
  -Z, --compress=0-9       compression level for compressed formats
  --help                   show this help, then exit
  --version                output version information, then exit

Options controlling the output content:
  -a, --data-only             dump only the data, not the schema
  -b, --blobs                 include large objects in dump
  -c, --clean                 clean (drop) schema prior to create
  -C, --create                include commands to create database in dump
  -d, --inserts               dump data as INSERT commands, rather than COPY
  -D, --column-inserts        dump data as INSERT commands with column names
  -E, --encoding=ENCODING     dump the data in encoding ENCODING
  -n, --schema=SCHEMA         dump the named schema(s) only
  -N, --exclude-schema=SCHEMA do NOT dump the named schema(s)
  -o, --oids                  include OIDs in dump
  -O, --no-owner              skip restoration of object ownership
                              in plain text format
  -s, --schema-only           dump only the schema, no data
  -S, --superuser=NAME        specify the superuser user name to use in
                              plain text format
  -t, --table=TABLE           dump the named table(s) only
  -T, --exclude-table=TABLE   do NOT dump the named table(s)
  -x, --no-privileges         do not dump privileges (grant/revoke)
  --disable-dollar-quoting    disable dollar quoting, use SQL standard quoting
  --disable-triggers          disable triggers during data-only restore
  --use-set-session-authorization
                              use SESSION AUTHORIZATION commands instead of
                              ALTER OWNER commands to set ownership

Connection options:
  -h, --host=HOSTNAME      database server host or socket directory
  -p, --port=PORT          database server port number
  -U, --username=NAME      connect as specified database user
  -W, --password           force password prompt (should happen automatically)

If no database name is supplied, then the PGDATABASE environment
variable value is used.

Ich verwende im Allgemeinen folgende Notation:
pg_dump -d DATENBANK -U postgres > pgsql.DATENBANK.sql

Es ist natürlich einfacher und in den meisten Fällen auch sinnvoller einfach das gesamte Datenbanksystem zu sichern. Der folgende Befehl zeigt, wie’s geht:
pg_dumpall -U pgsql > $DIR/pgsql.dump.sql

psql DATENBANK postres -f pgsql.dump.sql
stellt das gesammte system wieder her! Im Vergleich zu dem Krampf, den beispielsweise er Marktführer Oracle treibt, ist PostgreSQL doch echt genial!

Schlagworte: ,

Kommentieren