Українська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-ом. Очень удобно. Видно кто, что, когда и зачем поменял. И откатится на раннюю версию всегда можно. Плюс некоторые вещи в дампе даже удобнее чем в конфигураторе исправлять (например изменить кучу привязок с одного контроллера на другой)



3038