EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

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


Author Message
Written on: 20. 04. 2016 [16:57]
s03Hejd
Jo Zoid
Topic creator
registered since: 31.03.2016
Posts: 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

Только указываем свои пути.
Written on: 22. 04. 2016 [04:27]
IrmIngeneer
Константин \m/
Contributor
Sponsor
registered since: 16.09.2010
Posts: 185
"s03Hejd" wrote:

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



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

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

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

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



6580