Záloha postgresql

Pokud máme v souboru /var/lib/pgsql/data/pg_hba.conf nastavenu autentizaci, je při záloze nutné zadat heslo. U automatizovaných záloh je nutné tuto interakci obejít, a proto musíme vytvořit soubor ~/.pgpass v domovském adresáři uživatele, který bude tyto zálohy provádět. Formát řádků souboru:

hostname:port:database:username:password

První čtyři hodnoty mohou byt nahrazeny wildcard znakem *. Vzhledem tomu, že tento soubor obsahuje heslo do databáze, zajistíme jeho nečitelnost ostatními uživateli nastavením práv.

chmod 0600 ~/.pgpass

Zálohy provádíme například následujícím způsobem.

#!/bin/bash
MY_DATE=`date +%Y%m%d-%H%M%S`
/usr/bin/pg_dumpall -U postgres  > $MY_DATE-postgres.sql

Obnova dat ze zálohy lze provést následovně.

su - postgres
psql
\l
DROP DATABASE importovana_db;
\q
psql –f postgres.sql