Backup базы
#2
Отправлено 05 Март 2015 - 13:36
Как создать резервную копию базы данных:
- Остановите работу сервера тестирования [INDIGO\server\uninstall.bat].
- Сделайте резервную копию папки с базой данных [INDIGO\database].
- Запустите работу сервера тестирования [INDIGO\server\install.bat].
#3
Отправлено 08 Октябрь 2017 - 04:04
#4
Отправлено 08 Октябрь 2017 - 14:46
AEROBATICS (08 Октябрь 2017 - 04:04) писал:
Как Вы останавливали сервер? Нужно делать именно через INDIGO\server\uninstall.bat. Может быть какой-то процесс СУБД по каким-то причинам не завершился. В этом случае можно перезагрузить ОС. Возможно в будущем появятся какие-то встроенные средства, работающие без остановки СУБД, сейчас только так.
#6
Отправлено 08 Октябрь 2017 - 18:33
AEROBATICS (08 Октябрь 2017 - 18:20) писал:
Это совсем не то, то остановка только web-сервера, а нужна остановку СУБД. Те бекапы, что Вы делали, это фактически бекапы на горячую, они скорее всего битые, т.к. имеется рассинхронизция файлов во времени.
#7
Отправлено 08 Октябрь 2017 - 18:42
Administrator (08 Октябрь 2017 - 18:33) писал:
Возможно вы что-то посоветуете (как например автоудаление устаревшего бэкапа) для того, что бы каждые сутки не добавлялось по 250 Мб бэкапа и не съедалось соответственно 250 Мб свободного пространства на SSD? Спасибо.
#9
Отправлено 08 Октябрь 2017 - 18:59
Administrator (08 Октябрь 2017 - 18:44) писал:
Набросал вот такой код. Посмотрите пожалуйста, как вы думаете, что можно поправить? Наверняка вы сможете предложить что-то лучшее.
chcp 1251 @echo off set day=%DATE:~0,2% set month=%DATE:~3,2% set year=%DATE:~6,4% C:\Program Files (x86)\INDIGO\server\IndigoInstaller.exe uninstall timeout 10 "C:\Program Files\WinRAR\WinRAR.exe" a -r -m5 C:\Users\SSD\YandexDisk\INDIGO_backup\IndigoDB_backup_%day%—%month%—%year%.rar C:\Program Files (x86)\INDIGO\database C:\Program Files (x86)\INDIGO\server\IndigoInstaller.exe install
Возможно понадобятся ваши ключи. Был бы благодарен, если распишете назначение для каждого.
/e/s/c/h/y
Спасибо.
#12
Отправлено 08 Октябрь 2017 - 19:18
AEROBATICS (08 Октябрь 2017 - 19:10) писал:
Осталось неясным, как минимизировать размер, занимаемый бэкапами на диске. К примеру пусть создаются три бэкапа(3 дня), а каждый четвёртый удаляется(по дате создания) или заменяется(если обезличен).
Так же ключи...
Не понял что это за ключи /e/s/c/h/y, к INDIGO это точно не относится. По поводу частоты бекапов тут я ничего не могу сказать сколько Вам делать беков, как часто и т.д. Это все индивидуально, определитесь сами. Я могу лишь посоветовать 1. Какое-то время хранить старый бекап, т.к. если Вы будете делать 3 бекапа три дня подряд, а потом удалять старые, то на 4-ый день вы можете опомниться, что база сломалась, и все три последних бекапа будут такие же сломанные. Также может быть имеет смысл делать бекапы не каждый день, а раз в неделю например. Слишком частые бекапы имеют смысл только при особой важности данных и при большом объеме доступного дискового пространства. 2. Могу ещё посоветовать сравнить rar и 7zp в ультра режиме. 7zp часто показывает себя лучше.
Я бы делал раз в неделю в 7zp, а старые вычищал ручным образом, когда начнет поджимать пространство.
#13
Отправлено 08 Октябрь 2017 - 19:22
Я не про частоту бэкапов спрашивал. Я хочу попросить помощи в написании кода для затирания каждого 5-го (10-го, 20-го) бэкапа по дате создания. Что бы не удалять старые вручную.
#14
Отправлено 08 Октябрь 2017 - 19:25
AEROBATICS (08 Октябрь 2017 - 19:22) писал:
Ну так это системная команда xcopy. Смотрите в cmd справку xcopy /?
#15
Отправлено 08 Октябрь 2017 - 19:28
#17
Отправлено 06 Ноябрь 2017 - 04:11
В связи с этим выношу на рассмотрение следующее предложение:
Создать в папке INDIGO исполняемые системные файлы StartServer и StopServer (можно StartService и соответственно StopService) со следующим содержанием:
net start "IndigoController"и
net stop "IndigoController"соответственно.
Считаю, что данные файлы необходимы для выполнения бэкапа и самое главное-для полноценного восстановления БД из архива.
Файл бэкапа предлагаю сделать следующим (для моего варианта):
net stop "IndigoController" timeout 10 xcopy "C:\Program Files (x86)\INDIGO\database" "C:\Users\INDIGO_backup\%date:~-10%\" /e/s/c/h/y net start "IndigoController"
#18
Отправлено 06 Ноябрь 2017 - 10:55
AEROBATICS (06 Ноябрь 2017 - 04:11) писал:
В связи с этим выношу на рассмотрение следующее предложение:
Создать в папке INDIGO исполняемые системные файлы StartServer и StopServer (можно StartService и соответственно StopService) со следующим содержанием:
net start "IndigoController"и
net stop "IndigoController"соответственно.
Считаю, что данные файлы необходимы для выполнения бэкапа и самое главное-для полноценного восстановления БД из архива.
Так ведь уже есть install.bat и uninstall.bat. Это ровно тоже самое что и net start "IndigoController" и net stop "IndigoController", только делается через IndigoInstaller.exe, который дополнительно выделяет права и делает дополнительные действия (типа прописывания IndigoInformer в автозагрузку). Восстановление базы данных проводится точно также как и копирование:
1. Остановите работу сервера тестирования [INDIGO\server\uninstall.bat].
2. Замените папку с базой данных [INDIGO\database].
3. Запустите работу сервера тестирования [INDIGO\server\install.bat].
#19
Отправлено 06 Ноябрь 2017 - 16:21
Administrator (06 Ноябрь 2017 - 10:55) писал:
1. Остановите работу сервера тестирования [INDIGO\server\uninstall.bat].
2. Замените папку с базой данных [INDIGO\database].
3. Запустите работу сервера тестирования [INDIGO\server\install.bat].
Хочу заметить, что батник с кодом:
C:\Program Files (x86)\INDIGO\server\uninstall.batне вызывает никаких действий при запуске с высшими правами (почему-то), а с текущими правами полностью выгружает службу, что требует более длительного времени для повторной загрузки и запуска службы. Служба устраняется из списка служб вообще. Не проще-ли службу приостанавливать или запускать вместо полной выгрузки и загрузки?
P.S. Кстати видимо за счёт Ioncube папка database жмётся хорошо winrar'ом. С 310 Мб до 60 Мб.
#20
Отправлено 06 Ноябрь 2017 - 18:24
AEROBATICS (06 Ноябрь 2017 - 16:21) писал:
- Там отрабатывает команда icacls, которая выделяет права на файлы базы данных, т.к. если к каким-то файлам файловой структуры не будет доступа у СУБД, то будет сбой.
AEROBATICS (06 Ноябрь 2017 - 16:21) писал:
- Можете создать свои батники, мы дополнительно не будем создавать батники только лишь приостановки, потому что это будет слишком много батников, и это будет вызывать путаницу (сейчас все просто - install/uninstall). Только если будете делать свои батники, то лучше их разместите в корне INDIGO\, т.к. папка server полностью заменяется при установки обновлений.
Цитата
- Ioncube к этому не относится, т.к. папка database это база данных под управлением PostgreSQL, и к этому не имеет отношение (ioncube используется для защиты web-интерфейса). Жмется хорошо, потому что СУБД не особо экономит место, т.к. в ней сделан упор на производительность, и когда, например, какие-то данные удаляются, то образуются пустоты в файлах базы, поэтому иногда полезно делать операцию Оптимизации (дефрагментации базы), которая доступна в настройках системы тестирования.
Ответить
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных