К основному содержимому
Резервное копирование БД
Cerebro Support avatar
Автор: Cerebro Support
Обновлено более года назад

Даже если база данных размещена на RAID-массиве, вам следует организовать резервное копирование информации. Желательно осуществлять его на независимое и физически удалённое от сервера хранилище.

За основу вы можете взять наш собственный скрипт резервного копирования:

#!/bin/bash

BAK_PATH=/media/sdb1
VER=date +'%F_%H.%M'
outGlob=$BAK_PATH/$VER.global.bak
outLoc=$BAK_PATH/$VER.memoria.bak
sudo -u postgres -- pg_dumpall -U sa -g -f "$outGlob"

if [ $? != 0 ];then exit $?;fi;

sudo -u postgres -- pg_dump -U sa -f "$outLoc" -F c memoria

if [ $? != 0 ];then exit $?;fi;

find $BAK_PATH -type f \! -newermt '1 month ago' -exec rm {} \;

Данный скрипт создает наборы независимых резервных копий с датой создания, закодированной в имени файла, причем копии старше месяца удаляются.

Для корректной работы скрипта необходимо, чтобы была разрешена аутентификация в БД без пароля с локального компьютера (см. настройку pg_hba.conf в разделе «Запуск и конфигурирование сервера БД»).

Этот скрипт необходимо запускать периодически. Например, в Linux соответствующие настройки в /etc/crontab могут иметь вид:

0   */4  *   *   *      root    /usr/local/bin/memo_back

(выполняется запуск скрипта каждые четыре часа).

Примечание

В случае ОС Windows вам понадобится переделать скрипт и воспользоваться службой планировщика заданий (Task Scheduler) для его периодического запуска.

Нашли ответ на свой вопрос?