Как делать резервное копирование PostgreSQL. Автоматическое копирование базы 1С в PostgreSQL
Создание резервных копий в PostgreSQL
Есть несколько команд для резервного копирования базы данных в postgresql. Рассмотрим команду pg_dump.
Синтаксис команды:
Дамп базы должен происходить от имени учетной записи. При установке postgresql создается пользователь postgres, которому Вы должны были назначить пароль.
Пример:
* где username - имя учетной записи; опция -W - потребует ввода пароля; опция -U - на случай если резервная копия выполняется не от имени учетной записи postgres.
Скрипт автоматического резервного копирования базы postrgesql в Linux:
Сначала создадим директорию в которую будем помещать наши скрипты:
Затем создадим файл, в котором будет храниться скрипт резервного копирования postgresql:
Файл postgre_dump.sh сразу откроется для редактирования. Вписываем в него скрипт ниже и не забываем сохранить Ctrl+O .
#!/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
PGPASSWORD=password
export PGPASSWORD
pathB=/opt/backup
dbUser=postgres
database=test
find $pathB \( -name "*-1[^5].*" -o -name "*-[023]?.*" \) -ctime +61 -delete
pg_dump $dbUser $database | gzip > $pathB/$database_$(date "+%Y-%m-%d").sql.gz
unset PGPASSWORD
* где password - пароль подключения к postgresql; /opt/backup - каталог, в котором будут сохраняться резервные копии; dbUser - имя учетной записи для подключения с СУБД. Скрипт сначала удалит все резервные копии старше 61 дня и оставит все копии от 15 числа.
Теперь сделаем файл скрипта исполняемым:
Для зпуска скрипта вручную надо просто указать путь к файлу скрипта:
Если скрипт находится в текущей папке, то перед именем файла ставим точку и слеш:
Для запуска резервного копирования по расписанию создаем задание на выполнение скрипта в планировщике:
$ crontab -e
Затем пишем в планировщике слудующую строку:
Не забываем все сохранить.
* скрипт ежедневного копирования будет запускаться ежедневно в 22:00.
Поделитесь материалом с друзьями!
Добавить комментарий