Створити дамп:
pg_dump -Fc --no-acl --no-owner -U myuser mydb > mydb.dump
Створити зашифрований дамп (FF000000
приклад ідентифікатора публічного ключа):
pg_dump -Fc --no-acl --no-owner -U myuser mydb | gpg --encrypt --recipient FF000000 --cipher-algo AES256 --output mydb.dump.gpz
Basebackup (починаючи з версії 9.4 можна вказати опцію --rate-limit
):
pg_basebackup -U postgres -D /pg-backup/backup/2015-09-07 -Ft -Z9 --progress --xlog-method=fetch --write-recovery-conf --rate-limit=64m
Коректне відновлення дампу:
pg_restore --verbose --clean --no-acl --no-owner --jobs 4 -U myuser -d mydb mydb.dump
Відновлення зашифрованого дампу (параметр --jobs
не підтримується при вході з STDIN
):
gpg --decrypt mydb.dump.gpz | pg_restore --verbose --clean --no-acl --no-owner -U myuser -d mydb
Створення БД (initdb
може бути відсутня в $PATH
, тому потрібен повний шлях, наприклад, /usr/lib/postgresql/9.4/bin/initdb
):
initdb --pgdata=/pgdata/9.4/main -E 'UTF-8' --lc-collate='uk_UA.UTF-8' --lc-ctype='uk_UA.UTF-8'
Підключитися до віддаленої БД через ssh тунель:
ssh -L 54321:localhost:5432 <host or host alias>
Відформатувати диск в XFS:
sudo -s
mkdir /pgdata
mkfs.xfs -f /dev/xvdf
mount -t xfs -o inode64,nobarrier,noatime,nosuid,nodev,noexec /dev/xvdf /pgdata
cat /proc/mounts | grep /dev/xvdf >> /etc/fstab
Апгрейд (з версії 9.4 до версії 9.5, наприклад):
sudo -s
apt-get install postgresql-9.5
service postgresql stop
/usr/lib/postgresql/9.5/bin/initdb --pgdata=/pgdata/9.5/main -E 'UTF-8' --lc-collate='uk_UA.UTF-8' --lc-ctype='uk_UA.UTF-8'
pg_upgrade \
--old-datadir /pgdata/9.4/main \
--new-datadir /pgdata/9.5/main \
--old-bindir /usr/lib/postgresql/9.4/bin/ \
--new-bindir /usr/lib/postgresql/9.5/bin/ \
--jobs 4 \
--verbose