УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

Скрипт для сохранения БД проекта


Автор Сообщение
Сообщение создано: 20. 04. 2016 [16:57]
s03Hejd
Jo Zoid
Создатель темы
Зарегистрирован(а) с: 31.03.2016
Сообщения: 33
Хотел удалить виджет с мнемосхемы выделение с виджета снялось и чуть не снес мнемосхему - результат нескольких дней работы. В последний момент увидел, что запрос на удаление всей мнемосхемы.
Решил сохранять файл ДБ по крону каждые 10 мин.
Если кому нужно, вот скрипт:

#!/bin/bash
#Абсолютный путь откуда запускается скрипт и где хранятся бекапы
SCRIPTDIR="/home/user/oscada.bak/"
#Откуда и что сохраняем
DBDIR="/home/user/.openscada/DATA/"
DBFILE="MainSt.db"

BAKNAME="MainSt.db."$(date '+%F(%H:%M)')".bak"
BAKMAX="300"

cp $DBDIR$DBFILE $SCRIPTDIR$BAKNAME
ls -t $SCRIPTDIR*.bak | tail -n+$BAKMAX | xargs rm -f

Расписание для крона, например, так:
#> Auto saving openscada database file
*/10 8-18 * * 1-5 /home/user/oscada.bak/oscadabak.sh

Только указываем свои пути.
Сообщение создано: 22. 04. 2016 [04:27]
IrmIngeneer
Константин \m/
Contributor
Sponsor
Зарегистрирован(а) с: 16.09.2010
Сообщения: 185
"s03Hejd" wrote:

Хотел удалить виджет с мнемосхемы выделение с виджета снялось и чуть не снес мнемосхему - результат нескольких дней работы. В последний момент увидел, что запрос на удаление всей мнемосхемы.
Решил сохранять файл ДБ по крону каждые 10 мин.



Есть куда более серъезные ситуации, обуславливающие необходимость бэкапов. Но бэкапить открытые DB это уже слишком. Рискуете наделать кучу непригодных для использования (порушенных БД). :)
У меня во время разработки openscada запускается скриптом, который бэкапит БД до старта и после старта. Специально на случай странных исполнений разработчика. Отметил про себя, что наваял что-то долговосстановимое, - просто перезапустил скаду, - и спокоен. На рабочих конфигурациях бОльшее внимание уделяется файлам архивов, а конфигурация и так надежно зарезервирована.
Сообщение создано: 22. 04. 2016 [10:52]
fido_max
Maxim Kochetkov
Contributor
Зарегистрирован(а) с: 28.10.2010
Сообщения: 129
А мы храним БД в виде дампов:

Создание дампа из БД
sqlite3 ИмяБД.db .dump > ИмяФайлаДампа.sql

Создание БД из дампа
sqlite3 -init ИмяДампа.sql ИмяБД.db .exit

А сами дампы версионируются git-ом. Очень удобно. Видно кто, что, когда и зачем поменял. И откатится на раннюю версию всегда можно. Плюс некоторые вещи в дампе даже удобнее чем в конфигураторе исправлять (например изменить кучу привязок с одного контроллера на другой)



16673