Как делать резервное копирование PostgreSQL. Автоматическое копирование базы 1С в PostgreSQL

Просмотров: 1777
Оценка: 

Создание резервных копий в PostgreSQL

Есть несколько команд для резервного копирования базы данных в postgresql. Рассмотрим команду pg_dump.

Синтаксис команды:

$ pg_dump <параметры> <имя базы> > <путь и имя файла, куда сохранить дамп>

Дамп базы должен происходить от имени учетной записи. При установке postgresql создается пользователь postgres, которому Вы должны были назначить пароль.

Пример:

$ pg_dump -U username -W users > /home/backup/baza.dump

* где username - имя учетной записи; опция -W - потребует ввода пароля; опция -U - на случай если резервная копия выполняется не от имени учетной записи postgres.

 

Скрипт автоматического резервного копирования базы postrgesql в Linux:

Сначала создадим директорию в которую будем помещать наши скрипты:

$ sudo mkdir /etc/scripts

Затем создадим файл, в котором будет храниться скрипт резервного копирования postgresql:

$ sudo nano /etc/scripts/postgre_dump.sh

Файл 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 числа.

Теперь сделаем файл скрипта исполняемым:

$ sudo chmod +x /etc/scripts/postgre_dump.sh

Для зпуска скрипта вручную надо просто указать путь к файлу скрипта:

$ sudo /etc/scripts/postgre_dump.sh

Если скрипт находится в текущей папке, то перед именем файла ставим точку и слеш:

$ sudo ./postgre_dump.sh

Для запуска резервного копирования по расписанию создаем задание на выполнение скрипта в планировщике:

$ crontab -e

Затем пишем в планировщике слудующую строку:

22 0 * * * /etc/scripts/postgre_dump.sh

Не забываем все сохранить.

* скрипт ежедневного копирования будет запускаться ежедневно в 22:00.

 

Поделитесь материалом с друзьями!

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.