Создание бэкапа базы PostgreSQL для Windows. Postgresql бэкап windows


Создание бэкапа базы PostgreSQL для Windows — Soft Setup

В PostgreSQL есть утилита, которая создает дамп базы данных и называется она pg_dump. Для того чтобы автоматизировать процесс создания бэкапов баз PostgreSQL нужно будет создать bat-файл, который будет вызывать утилиту pg_dump  и вызывать его с помощью планировщика заданий. Результатом выполнения такого сценария будет ежедневное копирование базы данных PostgreSQL, ведение журнала с информацией о датах и результатах выполнения, сохранение подробных сведений о ходе выполнения каждой резервной копии в отдельный текстовый файл и в случае неудачи отображение диалогового окна с сообщением.Содержимое bat-файла следующее:

REM ПРИМЕР СОЗДАНИЯ РЕЗЕРВНОЙ КОПИИ БАЗЫ ДАННЫХ POSTGRESQL CLS ECHO OFF CHCP 1251 REM Установка переменных окружения SET PGBIN=c:\Program Files\PostgreSQL\9.2.4-1.1C\bin SET PGDATABASE=ut SET PGHOST=localhost SET PGPORT=5432 SET PGUSER=postgres SET PGPASSWORD=123456 REM Смена диска и переход в папку из которой запущен bat-файл %~d0 CD %~dp0 REM Формирование имени файла резервной копии и файла-отчета SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2% SET DUMPFILE=%PGDATABASE% %DATETIME%.backup SET LOGFILE=%PGDATABASE% %DATETIME%.log SET DUMPPATH="Backup\%DUMPFILE%" SET LOGPATH="Backup\%LOGFILE%" REM Создание резервной копии IF NOT EXIST Backup MD Backup CALL "%PGBIN%\pg_dump.exe" --format=custom --verbose --file=%DUMPPATH% 2>%LOGPATH% REM Анализ кода завершения IF NOT %ERRORLEVEL%==0 GOTO Error GOTO Successfull REM В случае ошибки удаляется поврежденная резервная копия и делается соответствующая запись в журнале :Error DEL %DUMPPATH% MSG * "Ошибка при создании резервной копии базы данных. Смотрите backup.log." ECHO %DATETIME% Ошибки при создании резервной копии базы данных %DUMPFILE%. Смотрите отчет %LOGFILE%. >> backup.log GOTO End REM В случае удачного резервного копирования просто делается запись в журнал :Successfull ECHO %DATETIME% Успешное создание резервной копии %DUMPFILE% >> backup.log GOTO End :End

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

REM ПРИМЕР СОЗДАНИЯ РЕЗЕРВНОЙ КОПИИ БАЗЫ ДАННЫХ POSTGRESQL

CLS

ECHO OFF

CHCP 1251

REM Установка переменных окружения

SET PGBIN=c:\Program Files\PostgreSQL\9.2.4-1.1C\bin

SET PGDATABASE=ut

SET PGHOST=localhost

SET PGPORT=5432

SET PGUSER=postgres

SET PGPASSWORD=123456

REM Смена диска и переход в папку из которой запущен bat-файл

%~d0

 

CD %~dp0

REM Формирование имени файла резервной копии и файла-отчета

SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%

SET DUMPFILE=%PGDATABASE% %DATETIME%.backup

SET LOGFILE=%PGDATABASE% %DATETIME%.log

SET DUMPPATH="Backup\%DUMPFILE%"

SET LOGPATH="Backup\%LOGFILE%"

REM Создание резервной копии

IF NOT EXIST Backup MD Backup

CALL "%PGBIN%\pg_dump.exe" --format=custom --verbose --file=%DUMPPATH% 2>%LOGPATH%

REM Анализ кода завершения

IF NOT %ERRORLEVEL%==0 GOTO Error

GOTO Successfull

REM В случае ошибки удаляется поврежденная резервная копия и делается соответствующая запись в журнале

:Error

DEL %DUMPPATH%

MSG * "Ошибка при создании резервной копии базы данных. Смотрите backup.log."

ECHO %DATETIME% Ошибки при создании резервной копии базы данных %DUMPFILE%. Смотрите отчет %LOGFILE%. >> backup.log

GOTO End

REM В случае удачного резервного копирования просто делается запись в журнал

:Successfull

ECHO %DATETIME% Успешное создание резервной копии %DUMPFILE% >> backup.log

GOTO End

:End

Справочную информацию о командах, испульзуемых в этом файле можно получить из командной строки набрав следующую команду: «[Имя команды] /?»Многие использованные здесь команды достаточно распространены и известны, поэтому хочется акцентировать внимание на нескольких менее известных.

Строки 15, 16 выполняют переход в папку в которой находится файл «backup.bat». «%0» возвращает имя bat-файла; «%~d0» и «%~dp0» возвращают соответственно диск и путь к bat-файлу. Подробные сведения о работе с параметрами файла можно посмотреть по этой ссылке.

В строке 19 формируется строковое представление даты и времени в нужном формате. При формировании происходит обращение к переменным окружения DATE и TIME, которые хранят текстовое представление даты и времени соответственно. После имени переменной указывается строка вида «:~m,n», где m — позиция в строке, n — количество символов.

В строке 27 вызывается утилита резервного копирования pg_dump.exe. Вызов выполняется с применением команды CALL, это позволяет дождаться завершения утилиты и проанализировать результат выполнения. Вызов утилиты завершается строкой «2>%LOGPATH%». Эта строка означает что поток ошибок STDERR, номер которого 2, приложения pg_dump.exe перенаправляется в файл, имя которого сохранено в переменной окружения LOGPATH. Так как приложение pg_dump.exe выводит все сообщения в стандартный поток ошибок, то в файле LOGPATH будет сохранен подробный отчет о выполнении резервного копирования.

В строках 37 и 42 выполняется перенаправление вывода в файл backup.log. Перенаправление осуществляется оператором «>>». Различие между операторами «>» и «>>» в том, что первый каждый раз создает новый файл, затирая ранее записанные данные, а второй — дописывает данные в существующий файл. Таким образом можно вести журнал с подробными сведениями о результатах резервного копирования.

Проверяем как работает bat-файл. Если дампы базы создаются, то можно приступать к созданию задачи для планировщика заданий Windows.Создаем задание, которое будет запускать bat-файл каждый день в ночное время.

Ежедневные бэкапы со временям породят проблему свободного пространства на жестком диске. Можно чистить ручками, но лучше уж автоматизацию сделать полной. Решается этот вопрос также созданием bat-файла и задачи в планировщике заданий Windows.

Содержимое bat-файла такое:

forfiles /p "E:\BACKUP\Backup" /S /D -5 /C "cmd /c del /f /a /q @file"

forfiles /p "E:\BACKUP\Backup" /S /D -5 /C "cmd /c del /f /a /q @file"

Здесь указана команда при выполнении которой будут удаляться файлы старше 5 дней.В планировщике заданий можно создать задачу на исполнения этого bat-файла раз в неделю.

soft-setup.ru

Простая утилита для бекапа PostgreSQL — Обзоры Софта

PostgreSQL Backup от компании Pranas.NET — утилита с графическим пользовательским интерфейсом для Windows, которая выполняет автоматическое резервное копирование баз данных PostgreSQL.

Если вы используете PostgreSQL для хранения данных, вы, вероятно, задумывались об использовании какой-либо удобной программы с графическим интерфейсом для создания регулярного резервного копирования. PostgreSQL Backup разработана специально для ОС Windows чтобы создавать резервные копии локальных или удаленных баз данных согласно установленному расписанию. Эта программа позволяет сжимать, шифровать, а также сохранять ваши резервные копии не только на жестком диске, но и в других местах, таких как: FTP, Dropbox, Box, Google Drive, MS OneDrive, Amazon S3 или Windows Azure Storage.

В этой статье мы хотим рассказать, как настроить и запустить резервное копирование баз данных согласно заданному расписанию.

Подключитеся к PostgreSQL

Первым делом нужно скачать и запустить программу. После запуска PostgreSQL Backup нажмите на кнопку “Connect to PostgreSQL Server”. В открывшемся окне введите ваше имя пользователя и пароль для PostgreSQL:

Щелкните “Test Connection” чтобы убедиться, что соединение с сервером установлено:

Выберите Базы Данных для Которых Нужно Выполнить Резервное Копирование

После того как соединение с сервером было установлено вам следует выбрать базы данных для которых будет выполняться резервное копирование. Список ваших баз данных доступен в левой части программы.

Выберите Место Хранения Резервных Копий

PostgreSQL Backup может доставлять ваши резервные копии для хранения в различные места, такие как: локальные папки, FTP, Dropbox, Box, Google Drive, MS OneDrive, Amazon S3 или Windows Azure Storage. Для того чтобы выбрать одно из мест нажмите “Add backup destination”: 

Установите Расписания для Выполнения Резервного Копирования Баз Данных PostgreSQL

Последний шаг это настройка расписания резервного копирования баз данных PostgreSQL. Поставьте галочку “Schedule this job” и нажмите на кнопку “Advanced backup schedule”. В открывшемся окне выполните все необходимые настройки и нажмите “Save & Close”. 

Запустите Резервное Копирование PostgreSQL

Чтобы запустить резервное копирование согласно заданному расписанию вам следует сохранить все настройки нажав на кнопку “Save”. Если вам необходимо запустить резервное копирование в не вашего расписания просто нажмите на кнопку “Run Now”

На этом все.

Здесь мы не упомянули email уведомления, множество дополнительных настроек, а также возможность просматривания журнала выполнения процессов. Все эти функции делают программу уникальной и ею должен пользоваться каждый администратор базы данных PostgreSQL.

ergonotes.ru

Бэкап и восстановление базы 1С в бд postgresql

Во время работы с базой данных postgresql в 1С необходимо периодически выполнять задачи по бэкапу базы данных и ее восстановлению. Для увеличения производительности рекомендуется регулярно проводить очистку, анализ и переиндексацию базы 1С. Для автоматизации процессов по архивации и обслуживанию я написал небольшие скрипты с пояснениями. Ими и хочу поделиться с вами.

Введение

Ранее я рассказывал о том, как установить и настроить postgresql для работы с 1С, а затем как провести анализ производительности базы 1С и по возможности увеличить быстродействие. После успешного выполнения первых двух задач, мы можем приступать к эксплуатации системы. Когда рабочая база 1С уже на сервере, обязательно нужно настроить ее регулярный бэкап. Желательно так же периодически проводить очистку и переиндексацию sql базы. Это увеличит ее быстродействие. Выполнять эти операции лучше всего автоматически, в нерабочее время. Именно этим мы и займемся в этой статье.

Бэкап и восстановление базы 1C в бд postgresql

Способов бэкапа базы данных postgresql много. Я буду использовать самый простой — выгрузка базы данных в обычный текстовый sql скрипт с помощью pg_dump. Подробно о работе этой утилиты и ее настройках можно прочитать вот тут — https://postgrespro.ru/docs/postgrespro/9.6/app-pgdump. В сети много примеров и готовых скриптов для решения вопроса архивации баз postgresql. Например, есть вот такой скрипт. Когда я его увидел, мне просто стало лень с ним разбираться. Написать простенький свой мне гораздо проще.

Прежде чем делать непосредственно архив 1С базы, нам нужно разрешить подключаться локально к серверу бд без авторизации. Я единственный пользователь сервера, доступа к нему никто больше не имеет, в интернет он не опубликован, поэтому я сознательно иду на этот шаг, чтобы упростить себе работу. Если для вас этот вариант не подходит, то все дальнейшие скрипты вам нужно будет самим изменить, добавив в них авторизацию. Это не сложно, в описании команд все есть. Я буду все команды выполнять локально от пользователя root.

Редактируем в файле /etc/postgresql/9.6/main/pg_hba.conf строку, приведя ее к такому виду:

local   all             all                                     trust

После этого надо перезапустить постгрес, чтобы изменения вступили в силу.

# systemctl restart postgresql

Бэкап базы данных выполняется простой командой:

# pg_dump -U postgres base1c | pigz > /backup/base1c.sql.gz
postgres имя пользователя базы данных
base1c название бд с 1С
pigz архиватор
base1c.sql.gz файл, куда будет сохранена резервная копия

Обращаю внимание на архиватор pigz. Я его использую, потому что он умеет жать данные, нагружая все ядра процессора, в отличие от gzip. Прирост производительности 2-3 раза. Рекомендую. На debian он ставится из стандартного репозитория:

# apt-get -y install pigz

В centos из epel:

# yum -y install epel-release # yum -y install pigz

Попробуйте вручную в консоли выполнить команду и посмотреть на результат. Вы должны получить заархивированный файл с текстовыми sql командами в открытом виде. Теперь попробуем восстановить базу данных 1С из архива. Тут будут нюансы. Первым делом разархивируем файл:

# unpigz /backup/base1c.sql.gz

Файл будет распакован, а архив удален. Чтобы сохранить архив, можно использовать такую команду:

# unpigz -c /backup/base1c.sql.gz > base1c.sql

Создадим на сервере новую базу данных, в которую будем восстанавливать резервную копию. Перед этим посмотрим список баз данных на сервере:

# psql -U postgres -l

Создаем новую базу данных:

# createdb --username postgres -T template0 base1c-restored

Смотрим, что получилось:

Базу данных создали. Теперь загружаем в нее наш бэкап 1с:

# psql -U postgres base1c-restored < /backup/base1c.sql

Ждем приличное время. Оно будет зависеть от размера базы. После того, как восстановление завершено, можно идти в консоль кластера 1С и добавлять новую базу, указывая в качестве базы postgresql только что созданную базу с загруженным архивом.

Я сначала пошел по другому пути. Создал в консоли пустую базу, загрузил в нее бэкап через консоль postgresql. Архив вроде бы загрузился, но в базу я не мог войти, не проходила авторизация. То есть возникли какие-то проблемы. Когда сделал, как описал выше, без проблем все заработало сразу. Проверил базу, все было в порядке.

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

После того, как вы убедитесь, что все в порядке, можно написать небольшой скрипт, который мы добавим в cron для регулярного бэкапа нашей базы 1С. Я его сделал совсем простым, ничего лишнего, только 1 база. Я считаю, что если баз не много и вручную не представляет труда написать несколько строчек скрипта, то лучше все сделать без циклов и лишних переменных. Если у вас больше одной базы, то просто скопируйте строки и замените названия баз. Вот сам скрипт:

# cat /root/bin/backup-sql.sh #!/bin/sh # Устанавливаем дату DATA=`date +"%Y-%m-%d_%H-%M"` # Записываем информацию в лог с секундами echo "`date +"%Y-%m-%d_%H-%M-%S"` Start backup base1c" >> /var/log/postgresql/service.log # Бэкапим базу данных base1c и сразу сжимаем /usr/bin/pg_dump -U postgres base1c | pigz > /backup/$DATA-base1c.sql.gz echo "`date +"%Y-%m-%d_%H-%M-%S"` End backup base1c" >> /var/log/postgresql/service.log # Удаляем в папке с бэкапами архивы старше 3-х дней /usr/bin/find /backup -type f -mtime +3 -exec rm -rf {} \;

Я указал в названии файла с бэкапом 1с базы использовать текущую дату с точностью до минуты. В лог я пишу информацию с точностью до секунды, чтобы было точно видно, сколько длился бэкап. Просто для справки информация, можно обойтись и без лога совсем. В конце удаляю из папки все архивы старше 3-х дней. Я обычно сервером с бэкапами забираю информацию с целевых хостов. То есть я буду подключаться к sql серверу и забирать с него архивы и уже на сервере бэкапов буду их хранить и ротировать в зависимости от желаемой глубины архива. А здесь я удаляю почти сразу архивы, не храню их, чтобы не занимать место. Если вы будете хранить их долгосрочно на этом же сервере, то просто измените цифру 3 на нужное вам число дней, за которые вы хотите иметь архивную копию своей базы 1С.

Использование программы PostgreSQL Backup

Для бэкапа базы данных постгрес есть удобная и бесплатная для двух баз программа под windows — PostgreSQL Backup. Я ее установил, проверил, сделал бэкап, потом восстановил из бэкапа. Все отлично работает. Из полезных функций:

  • встроенный планировщик
  • автоматическое сжатие бэкапа
  • отправка оповещений на email

Программа, простая, понятная и приятная на вид. Попробуйте, возможно вам будет достаточно такого варианта. К сожалению, она не умеет восстанавливать из бэкапа. Для этого архив придется перенести на сервер, распаковать и загрузить в базу через консоль, как я показывал выше.

Обновление статистики и реиндексация в postgresql

С бэкапами разобрались, теперь настроим регламентные операции на уровне субд, чтобы поддерживать быстродействие базы данных. Тут особых комментариев не будет, в интернете очень много информации на тему регламентных заданий для баз 1С. Я просто приведу пример того, как это выглядит в postgresql.

Выполняем очистку и анализ базы данных 1С:

# vacuumdb --full --analyze --username postgres --dbname base1c

Реиндексация таблиц базы данных:

# reindexdb --username postgres --dbname base1c

Завернем все это в скрипт с логированием времени выполнения команд:

# cat /root/bin/service-sql.sh #!/bin/sh # Записываем информацию в лог echo "`date +"%Y-%m-%d_%H-%M-%S"` Start vacuum base1c" >> /var/log/postgresql/service.log # Выполняем очистку и анализ базы данных /usr/bin/vacuumdb --full --analyze --username postgres --dbname base1c echo "`date +"%Y-%m-%d_%H-%M-%S"` End vacuum base1c" >> /var/log/postgresql/service.log sleep 2 echo "`date +"%Y-%m-%d_%H-%M-%S"` Start reindex base1c" >> /var/log/postgresql/service.log # Переиндексирвоать базу /usr/bin/reindexdb --username postgres --dbname base1c echo "`date +"%Y-%m-%d_%H-%M-%S"` End reindex base1c" >> /var/log/postgresql/service.log

Сохраняем скрипт и добавляем в планировщик. Хотя я для удобства сделал еще один скрипт, который объединяет бэкап и обслуживание и уже его добавил в cron:

# cat all-sql.sh #!/bin/sh /root/bin/backup-sql.sh sleep 2 /root/bin/service-sql.sh

Добавялем в /etc/crontab:

# Бэкап и обслуживание БД 1 3 * * * root /root/bin/all-sql.sh

Проверяем лог файл и наличие бэкапа. Не забывайте делать проверочное регулярное восстановление бд из архива.

Описанные выше операции очистки и переиндексации можно делать в ручном режиме в программе под windows — pgAdmin. Рекомендую ее установить на всякий случай. Достаточно удобно и быстро можно посмотреть информацию или выполнить какие-то операции с базой данных посгрес.

Заключение

Вот и все, что я хотел рассказать по поводу бэкапа и обслуживания баз postgresql в связке с 1С. Если у кого есть еще полезная информация, прошу поделиться в комментариях. Возможно с бэкапом есть какие-то нюансы, особенно на больших базах. Но мне негде тестировать, больших рабочих баз более 10 гб у меня нет под рукой, а с теми что были, все отлично работает.

Помогла статья? Есть возможность отблагодарить автора

serveradmin.ru

Автоматическое резервное копирование баз PostgreSQL и восстановление из резервной копии

Автоматическое резервное копирование баз PostgreSQL и восстановление из резервной копии

Всем привет сегодня расскажу о том как настраивается автоматическое резервное копирование баз PostgreSQL и восстановление из резервной копии.  Может быть кому то эта информация пригодится.

Команды для работы с БД

Для создания резервной копии баз данных необходимо выполнить такую команду:

pg_dump -h localhost -U postgres -Fc -Z9 -c -f full_path_to_database_backup_file database_name

А для восстановления из резервной копии выполнить такую:

pg_restore -h localhost -U postgres -c -d database_name -v full_path_to_database_backup_file

Для автоматизации создания резервных копий баз данных можно (читаем нужно) написать простенький скрипт и засунуть его в cron. Например имеется база данных "sales", и надо ежедневно делать копию этой базы. Пишем следующие строки:#!/bin/shpg_dump -h localhost -U postgres -Fc -Z9 -c -f /home/user/1c-data-backup/"`date +%d-%m-%Y`".sales.backup sales

Сохраняем его в /home/user/createbackup, даём право на выполнение:

chmod 711 /home/user/createbackup

 

Добавляем задание в cron, открываем cron командой crontab -e и добавляем эту строку:

0       23      *       *       *       /home/user/createbackup

Эта строкой мы скажем выполнять резервное копирование каждый день в 23.00.

Для разрешения выполнения дампа базы данных надо разрешить localhost (127.0.0.1) обращаться к себе без паролей отредактировав файл /var/lib/pgsql/data/pg_hba.conf и добавив после # IPv4 local connections: строку:

host    all     all             127.0.0.1/32    trust

Сохраняем файл, перезапускаем сервер PostgreSQL. И ждём 23.00 часов дня когда вы добавили задание в cron. Пользователь от имени которого выполняются задания в cron'е должен иметь право на запись туда куда вы хотите сохранять резервные копии!

 

Восстановление баз из их копий не требуется выполнять ежедневно, поэтому можно и ручками попечатать немного (или скопировать).

На официальном сайте СУБД приведено описание всех параметров для обоих утилит:

pg_dump - http://www.postgresql.org/docs/8.4/static/app-pgdump.html

pg_restore - http://www.postgresql.org/docs/8.4/static/app-pgrestore.html

Всё это нужно для резервного копирования информационных баз 1С 8.2.13.202 под управления ОС Debian 5.0.6 x86_64

Материал сайта pyatilistnik.org

pyatilistnik.org

Бэкап-скрипт для PostgreSQL на Windows

В PostgreSQL есть утилита, которая создает дамп базы данных и называется она pg_dump. Для того чтобы автоматизировать процесс создания бэкапов баз PostgreSQL нужно будет создать bat-файл, который будет вызывать утилиту pg_dump  и вызывать его с помощью планировщика заданий. Результатом выполнения такого сценария будет ежедневное копирование базы данных PostgreSQL, ведение журнала с информацией о датах и результатах выполнения, сохранение подробных сведений о ходе выполнения каждой резервной копии в отдельный текстовый файл и в случае неудачи отображение диалогового окна с сообщением.

Содержимое bat-файла следующее:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

REM ПРИМЕР СОЗДАНИЯ РЕЗЕРВНОЙ КОПИИ БАЗЫ ДАННЫХ POSTGRESQL

CLS

ECHO OFF

CHCP 1251

REM Установка переменных окружения

SET PGBIN=c:\Program Files\PostgreSQL\9.2.4-1.1C\bin

SET PGDATABASE=ut

SET PGHOST=localhost

SET PGPORT=5432

SET PGUSER=postgres

SET PGPASSWORD=123456

REM Смена диска и переход в папку из которой запущен bat-файл

%~d0

CD %~dp0

REM Формирование имени файла резервной копии и файла-отчета

SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%

SET DUMPFILE=%PGDATABASE% %DATETIME%.backup

SET LOGFILE=%PGDATABASE% %DATETIME%.log

SET DUMPPATH="Backup\%DUMPFILE%"

SET LOGPATH="Backup\%LOGFILE%"

REM Создание резервной копии

IF NOT EXIST Backup MD Backup

CALL "%PGBIN%\pg_dump.exe" --format=custom --verbose --file=%DUMPPATH% 2>%LOGPATH%

REM Анализ кода завершения

IF NOT %ERRORLEVEL%==0 GOTO Error

GOTO Successfull

REM В случае ошибки удаляется поврежденная резервная копия и делается соответствующая запись в журнале

:Error

DEL %DUMPPATH%

MSG * "Ошибка при создании резервной копии базы данных. Смотрите backup.log."

ECHO %DATETIME% Ошибки при создании резервной копии базы данных %DUMPFILE%. Смотрите отчет %LOGFILE%. >> backup.log

GOTO End

REM В случае удачного резервного копирования просто делается запись в журнал

:Successfull

ECHO %DATETIME% Успешное создание резервной копии %DUMPFILE% >> backup.log

GOTO End

:End

Справочную информацию о командах, испульзуемых в этом файле можно получить из командной строки набрав следующую команду: "[Имя команды] /?"Многие использованные здесь команды достаточно распространены и известны, поэтому хочется акцентировать внимание на нескольких менее известных. Строки 15, 16 выполняют переход в папку в которой находится файл "backup.bat". "%0" возвращает имя bat-файла; "%~d0" и "%~dp0" возвращают соответственно диск и путь к bat-файлу. Подробные сведения о работе с параметрами файла можно посмотреть по этой ссылке. В строке 19 формируется строковое представление даты и времени в нужном формате. При формировании происходит обращение к переменным окружения DATE и TIME, которые хранят текстовое представление даты и времени соответственно. После имени переменной указывается строка вида ":~m,n", где m - позиция в строке, n - количество символов. В строке 27 вызывается утилита резервного копирования pg_dump.exe. Вызов выполняется с применением команды CALL, это позволяет дождаться завершения утилиты и проанализировать результат выполнения. Вызов утилиты завершается строкой "2>%LOGPATH%". Эта строка означает что поток ошибок STDERR, номер которого 2, приложения pg_dump.exe перенаправляется в файл, имя которого сохранено в переменной окружения LOGPATH. Так как приложение pg_dump.exe выводит все сообщения в стандартный поток ошибок, то в файле LOGPATH будет сохранен подробный отчет о выполнении резервного копирования. В строках 37 и 42 выполняется перенаправление вывода в файл backup.log. Перенаправление осуществляется оператором ">>". Различие между операторами ">" и ">>" в том, что первый каждый раз создает новый файл, затирая ранее записанные данные, а второй - дописывает данные в существующий файл. Таким образом можно вести журнал с подробными сведениями о результатах резервного копирования. Проверяем как работает bat-файл. Если дампы базы создаются, то можно приступать к созданию задачи для планировщика заданий Windows.Создаем задание, которое будет запускать bat-файл каждый день в ночное время.

Ежедневные бэкапы со временям породят проблему свободного пространства на жестком диске. Можно чистить ручками, но лучше уж автоматизацию сделать полной. Решается этот вопрос также созданием bat-файла и задачи в планировщике заданий Windows.Содержимое bat-файла такое:

forfiles /p "E:\BACKUP\Backup" /S /D -5 /C "cmd /c del /f /a /q @file"

 Здесь указана команда при выполнении которой будут удаляться файлы старше 5 дней.В планировщике заданий можно создать задачу на исполнения этого bat-файла раз в неделю.   http://soft-setup.ru/administrirovanie/sozdanie-bekapa-bazy-postgresql-dlya-windows

avecaes.blogspot.com

Хавтушки Тыжпрограммиста - Автоматическое резервное копирование баз Postgres и восстановление из резервной копии 2018

Создание резервных копий баз данных PostgreSQL на Linux сервере. Восстановление резервных копий.

Этот материал приходится держать под рукой. Ведь можно забыть не только как настраивать, но и как собственно пользоваться :)  

Для создания резервной копии баз данных необходимо выполнить такую команду:

А для восстановления из резервной копии выполнить такую:

Для автоматизации создания резервных копий баз данных можно (читаем нужно) написать простенький скрипт и засунуть его в cron. Например имеется база данных "sales", и надо ежедневно делать копию этой базы. Пишем следующие строки:#!/bin/sh

pg_dump -h localhost -U postgres -Fc -Z9 -c -f /home/user/1c-data-backup/"`date +%d.%m.%Y-%H.%M`".sales.backup sales

Сохраняем его в /home/user/createbackup, даём право на выполнение:

Добавляем задание в cron, открываем cron командой crontab -e и добавляем эту строку:

0       23      *       *       *       /home/user/createbackup

Эта строкой мы скажем выполнять резервное копирование каждый день в 23.00.

Так как процесс резервного копирования требует ввод пароля, а нас в серверной не в столь поздний час не будет то надо разрешить localhost (127.0.0.1) обращаться к себе без паролей отредактировав файл /var/lib/pgsql/data/pg_hba.conf и добавив после # IPv4 local connections: строку:

host    all     all             127.0.0.1/32    trust

Сохраняем файл, перезапускаем сервер Postgres. И ждём 23.00 часов дня когда вы добавили задание в cron. Пользователь от имени которого выполняются задания в cron'е должен иметь право на запись туда куда вы хотите сохранять резервные копии!

Восстановление баз из их копий не требуется выполнять ежедневно, поэтому можно и ручками попечатать немного (или скопировать).

На официальном сайте СУБД приведено описание всех параметров для обоих утилит:

Резервное копирование баз данных 1с на PostgreSQL

В поставку PostgreSQL сервера входят утилиты для резервного копирования, и восстановления из резервной копии базы данных: pg_dump и pg_restore. В этой статье разберу способы резервного копирования и восстановления баз данных сервера PostgreSQL на Linux.

Резервное копирование базы Postgre (pg_dump)

Используем pg_dump для резервного копирования базы данных с именем «Test». pg _dump позволяет делать как текстовые, так и сжатые архивы вашей БД.

Дамп с сжатием:

1 pg_dump –Fc –U postgres "Имя базы данных" > *.back.tgz
pg_dump –Fc –U postgres "Имя базы данных" > *.back.tgz

Где:

postgres – имя пользователя базы данных.«Имя базы данных» – имя базы данных на вашем сервере.*.back – имя конечного файла содержащего дамп.

Текстовый дамп:

1 pg_dump –Fе –U postgres "Имя базы данных" > *.sql
pg_dump –Fе –U postgres "Имя базы данных" > *.sql

Где:

postgres – имя пользователя базы данных.«Имя базы данных» – имя базы данных на вашем сервере.*.sql – имя конечного файла содержащего дамп в текстовом формате.

Восстановление базы данных из архивной копии. (pg_restore)

Восстановление базы данных postgre производится при помощи утилиты pg_restore. Для ее использования нужно указать Имя пользователя сервера БД, имя базы данных и имя файла с вашим дампом:

1 pg_restore –U ИМЯ ПОЛЬЗОВАТЕЛЯ БД –d ИМЯ БАЗЫ ДАННЫХ –v ПУТЬ К ВАШЕМУ ДАМПУ.
pg_restore –U ИМЯ ПОЛЬЗОВАТЕЛЯ БД –d ИМЯ БАЗЫ ДАННЫХ –v ПУТЬ К ВАШЕМУ ДАМПУ.

Например:Имя пользователя postgres.Имя базы данных Test.Имя файла dump.back.

1 pg_restore –U postgres –d Test –v dump.back
pg_restore –U postgres –d Test –v dump.back

Создадим небольшой скрпит для автоматического архивирования базы данных postgreSQL. В имени архивной копии будем использовать текущее число, что бы по названию можно было определить дату архива.

  BackUpDir="/home/melfis/dump/"  // Директория для хранения бэкаповDateName=`date +%d.%m.%Y-%H.%M` //Получаем дату для имени файла cd $BackUpDir  //Переходим в директорию с бэкапамиecho Начато резервное копирование базы данныхpg_dump -Fc -U postgres "Test" > $DateName.Test.backup  //Делаем бэкапecho Резервное копирование завершено нажмите любую клавишу.read x
BackUpDir="/home/melfis/dump/" // Директория для хранения бэкаповDateName=`date +%d.%m.%Y-%H.%M` //Получаем дату для имени файла

cd $BackUpDir //Переходим в директорию с бэкапамиecho Начато резервное копирование базы данныхpg_dump -Fc -U postgres "Test" > $DateName.Test.backup //Делаем бэкапecho Резервное копирование завершено нажмите любую клавишу.read x

Сделайте скрипт исполняемым, и добавьте его в cron. В результате выполнения этого кода в директории находящейся в переменной BackUpDir будет создана сжатая архивная копия вашей базы данных.

При создании резервной копии с ключом -t, будет создана текстовая резервная копия. Она занимает намного больше места, но удобна тем что SQL код поддается редактированию.

 

И еще один очень важный момент! Если вы редактировали ваш postgresql.conf файл, и меняли значения памяти (shared mem, mainterance mem, work mem и.т.д.), то при восстановлении базы данных из резервной копии pg_restore может пожаловаться на нехватку памяти. Что бы успешно восстановить БД из архивной копии, следует вернуть значения по умолчанию в файле postgresql.conf которые отвечают за объемы памяти используемые postgre, и перезапустить PostgreSQL сервер. Это случалось на базах данных 1с. На счет других ничего сказать не могу.

http://melfis.ru/%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5-%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B0%D0%B7-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-1%D1%81-%D0%BD%D0%B0-p/

itlogin.ru

PostgreSQL 9.4.2-1.1C: Резервное копирование SQL баз данных 1С самым простым путём

PostgreSQL 9.4.2-1.1C: Резервное копирование SQL баз данных 1С самым простым путём

19 января 2017 ВК Tw Fb

Резервное копирование баз данных 1С:Предприятие (да и любых других) — очень важная вещь, если вы не хотите потерять работу и клиентов. Для файловых версий баз данных есть замечательные средства резервного копирования. С SQL версиями немного сложнее.Сейчас расскажем как просто делать бэкапы баз данных 1С:Предприятие с помощью простейшего скрипта без каких либо программ или сложных манипуляций.

Сам скрипт (который упаковываем в *.cmd):

@echo off set h=%TIME:~0,2% set m=%TIME:~3,2% set s=%TIME:~6,2% set dd=%DATE:~0,2% set mm=%DATE:~3,2% set yyyy=%DATE:~6,4% "C:\Program Files\PostgreSQL\9.4.2-1.1C\bin\pg_dump.exe" -U postgres -F c -b bdname > "D:\BackUps\%yyyy%.%mm%.%dd%_%h%.%m%.%s%_bdname_.butts"

Что у нас тут есть:

На этом всё. Этот скрипт мы добавляем в планировщик задач и проверяем его выполнение. В итоге мы получили готовую схему резервного копирования. Лучше выполнять резервное копирование на NAS или внешний жёсткий диск. Для этого всего лишь нужно изменить директорию назначения.

Остались вопросы?

Что-то пошло не так? Специалисты нашей компании помогут Вам разобраться с возникшими проблемами! Обращайтесь! →

Также Ваши вопросы Вы можете задать в нашей группе ВК или на нашем YouTube канале!

try2fixkb.ru