Перейти к содержимому


Backup базы


Сообщений в теме: 38

#1 Гость_Алексей_*

  • Гости

Отправлено 05 Март 2015 - 13:32

Здравствуйте. Подскажите пожалуйста, как сделать Backup базы Indigo со всеми введенными пользователями, тестами, правилами и т.д.

#2 Administrator

    Менеджер проекта

  • Администраторы
  • 1 407 сообщений

Отправлено 05 Март 2015 - 13:36

Здравствуйте, Алексей!

Как создать резервную копию базы данных:
  • Остановите работу сервера тестирования [INDIGO\server\uninstall.bat].
  • Сделайте резервную копию папки с базой данных [INDIGO\database].
  • Запустите работу сервера тестирования [INDIGO\server\install.bat].
Делать резервное копирование базы данных [INDIGO\database] «на горячую» (во время работы сервера тестирования) нельзя. Это может привести к повреждению данных (рассинхронизации версий файлов)! Поэтому необходимо сначала остановить систему управления базой данных, а потом копировать. Папку с базой рекомендуется создавать в архив (rar, 7z и т.п.), чтобы не было большого числа мелких файлов, чтобы быстро и компактно перенести данные на какой-то носитель информации.

#3 AEROBATICS

    Пользователь

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 08 Октябрь 2017 - 04:04

Станислав Викторович, вопрос по теме. Остановил сервер, закрыл клиентское ПО и попытался папку добавить в архив "database.rar", но возникли ошибки занятости процессами. Получилось только копированием папки "database" в другую директорию с последующим её архивированием. Это нормальный процесс? Резервирование исключительно копированием папки с данными? Спасибо.

#4 Administrator

    Менеджер проекта

  • Администраторы
  • 1 407 сообщений

Отправлено 08 Октябрь 2017 - 14:46

Просмотр сообщенияAEROBATICS (08 Октябрь 2017 - 04:04) писал:

Станислав Викторович, вопрос по теме. Остановил сервер, закрыл клиентское ПО и попытался папку добавить в архив "database.rar", но возникли ошибки занятости процессами. Получилось только копированием папки "database" в другую директорию с последующим её архивированием. Это нормальный процесс? Резервирование исключительно копированием папки с данными? Спасибо.

Как Вы останавливали сервер? Нужно делать именно через INDIGO\server\uninstall.bat. Может быть какой-то процесс СУБД по каким-то причинам не завершился. В этом случае можно перезагрузить ОС. Возможно в будущем появятся какие-то встроенные средства, работающие без остановки СУБД, сейчас только так.

#5 AEROBATICS

    Пользователь

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 08 Октябрь 2017 - 18:20

Останавливал через программную оболочку, соответственно вкладка "Сервер", кнопка "Остановить". Позже стало понятно, что делать это нужно через INDIGO\server\uninstall.bat, но ведь делал я это до прочтения этой темы.

#6 Administrator

    Менеджер проекта

  • Администраторы
  • 1 407 сообщений

Отправлено 08 Октябрь 2017 - 18:33

Просмотр сообщенияAEROBATICS (08 Октябрь 2017 - 18:20) писал:

Останавливал через программную оболочку, соответственно вкладка "Сервер", кнопка "Остановить". Позже стало понятно, что делать это нужно через INDIGO\server\uninstall.bat, но ведь делал я это до прочтения этой темы.

Это совсем не то, то остановка только web-сервера, а нужна остановку СУБД. Те бекапы, что Вы делали, это фактически бекапы на горячую, они скорее всего битые, т.к. имеется рассинхронизция файлов во времени.

#7 AEROBATICS

    Пользователь

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 08 Октябрь 2017 - 18:42

Просмотр сообщенияAdministrator (08 Октябрь 2017 - 18:33) писал:

Это совсем не то, то остановка только web-сервера, а нужна остановку СУБД. Те бекапы, что Вы делали, это фактически бекапы на горячую, они скорее всего битые, т.к. имеется рассинхронизция файлов во времени.
Всё понял. Уже настроил бэкап на Яндекс Диск через определённую папку, батник и с участием планировщика Windows. Я так делаю уже 5 лет с другой системой тестирования АОС. Только там бэкапы не такие большие, как тут. Там сейчас при очень большом количестве тестов 15 Мб размер бэкапа.
Возможно вы что-то посоветуете (как например автоудаление устаревшего бэкапа) для того, что бы каждые сутки не добавлялось по 250 Мб бэкапа и не съедалось соответственно 250 Мб свободного пространства на SSD? Спасибо.

#8 Administrator

    Менеджер проекта

  • Администраторы
  • 1 407 сообщений

Отправлено 08 Октябрь 2017 - 18:44

Можно делать не копирование, а сразу упаковку в 7zp через параметры командной строки.

#9 AEROBATICS

    Пользователь

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 08 Октябрь 2017 - 18:59

Просмотр сообщенияAdministrator (08 Октябрь 2017 - 18:44) писал:

Можно делать не копирование, а сразу упаковку в 7zp через параметры командной строки.
Но ведь даже таким способом мы не уйдём от планомерного заполнения SSD бэкапами, будь они хоть в виде каталогов или уже созданных архивов.....

Набросал вот такой код. Посмотрите пожалуйста, как вы думаете, что можно поправить? Наверняка вы сможете предложить что-то лучшее.

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

Спасибо.

#10 Administrator

    Менеджер проекта

  • Администраторы
  • 1 407 сообщений

Отправлено 08 Октябрь 2017 - 19:02

Код вроде нормальный. Бекапы на SSD неоправданно дорого, делайте копии на какой-нибудь HDD или удаляйте старые неактуальные бекапы.

#11 AEROBATICS

    Пользователь

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 08 Октябрь 2017 - 19:10

Жду ответ по остальным вопросам :)
Осталось неясным, как минимизировать размер, занимаемый бэкапами на диске. К примеру пусть создаются три бэкапа(3 дня), а каждый четвёртый удаляется(по дате создания) или заменяется(если обезличен).
Так же ключи...

#12 Administrator

    Менеджер проекта

  • Администраторы
  • 1 407 сообщений

Отправлено 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 AEROBATICS

    Пользователь

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 08 Октябрь 2017 - 19:22

Ключи взяты из вашей рекомендации. Если вы их применяете, то полагаю, что осведомлены об их назначении в отличии от меня ;)
Я не про частоту бэкапов спрашивал. Я хочу попросить помощи в написании кода для затирания каждого 5-го (10-го, 20-го) бэкапа по дате создания. Что бы не удалять старые вручную.

#14 Administrator

    Менеджер проекта

  • Администраторы
  • 1 407 сообщений

Отправлено 08 Октябрь 2017 - 19:25

Просмотр сообщенияAEROBATICS (08 Октябрь 2017 - 19:22) писал:

Ключи взяты из вашей рекомендации.

Ну так это системная команда xcopy. Смотрите в cmd справку xcopy /?

#15 AEROBATICS

    Пользователь

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 08 Октябрь 2017 - 19:28

Просмотр сообщенияAdministrator (08 Октябрь 2017 - 19:25) писал:

Ну так это системная команда xcopy. Смотрите в cmd справку xcopy /?
Точно! Спасибо большое! Бывает, что голова уставшая. Я почему-то полагал, что это именно ключи для запуска исполняемых файлов вашего ПО. Перепутал строки.

#16 Administrator

    Менеджер проекта

  • Администраторы
  • 1 407 сообщений

Отправлено 08 Октябрь 2017 - 19:29

Ок)

#17 AEROBATICS

    Пользователь

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 06 Ноябрь 2017 - 04:11

Продолжим. Станислав Викторович, возникли проблемы при восстановлении БД на лицензированное ПО после перестановки ОС. А именно проблемы характера замены файлов database по той причине, что "они открыты в другом приложении".
В связи с этим выношу на рассмотрение следующее предложение:
Создать в папке 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 Administrator

    Менеджер проекта

  • Администраторы
  • 1 407 сообщений

Отправлено 06 Ноябрь 2017 - 10:55

Просмотр сообщенияAEROBATICS (06 Ноябрь 2017 - 04:11) писал:

Продолжим. Станислав Викторович, возникли проблемы при восстановлении БД на лицензированное ПО после перестановки ОС. А именно проблемы характера замены файлов database по той причине, что "они открыты в другом приложении".
В связи с этим выношу на рассмотрение следующее предложение:
Создать в папке 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 AEROBATICS

    Пользователь

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 06 Ноябрь 2017 - 16:21

Просмотр сообщенияAdministrator (06 Ноябрь 2017 - 10:55) писал:

Так ведь уже есть 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].

Хочу заметить, что батник с кодом:
C:\Program Files (x86)\INDIGO\server\uninstall.bat
не вызывает никаких действий при запуске с высшими правами (почему-то), а с текущими правами полностью выгружает службу, что требует более длительного времени для повторной загрузки и запуска службы. Служба устраняется из списка служб вообще. Не проще-ли службу приостанавливать или запускать вместо полной выгрузки и загрузки?

P.S. Кстати видимо за счёт Ioncube папка database жмётся хорошо winrar'ом. С 310 Мб до 60 Мб.

#20 Administrator

    Менеджер проекта

  • Администраторы
  • 1 407 сообщений

Отправлено 06 Ноябрь 2017 - 18:24

Просмотр сообщенияAEROBATICS (06 Ноябрь 2017 - 16:21) писал:

не вызывает никаких действий при запуске с высшими правами (почему-то)

- Там отрабатывает команда icacls, которая выделяет права на файлы базы данных, т.к. если к каким-то файлам файловой структуры не будет доступа у СУБД, то будет сбой.

Просмотр сообщенияAEROBATICS (06 Ноябрь 2017 - 16:21) писал:

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

- Можете создать свои батники, мы дополнительно не будем создавать батники только лишь приостановки, потому что это будет слишком много батников, и это будет вызывать путаницу (сейчас все просто - install/uninstall). Только если будете делать свои батники, то лучше их разместите в корне INDIGO\, т.к. папка server полностью заменяется при установки обновлений.


Цитата

P.S. Кстати видимо за счёт Ioncube папка database жмётся хорошо winrar'ом. С 310 Мб до 60 Мб.

- Ioncube к этому не относится, т.к. папка database это база данных под управлением PostgreSQL, и к этому не имеет отношение (ioncube используется для защиты web-интерфейса). Жмется хорошо, потому что СУБД не особо экономит место, т.к. в ней сделан упор на производительность, и когда, например, какие-то данные удаляются, то образуются пустоты в файлах базы, поэтому иногда полезно делать операцию Оптимизации (дефрагментации базы), которая доступна в настройках системы тестирования.




Ответить



  

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных