Резервное копирование и восстановление данных

SberMobile используется для критически важных приложений, поэтому очень важно обеспечить целостность данных и быстрое восстановление после сбоев.

SberMobile Server был разработан для обеспечения простого резервного копирования как базы данных и конфигурации сервера. Настоятельно рекомендуется регулярно выполнять резервное копирование системы.

Полное резервное копирование виртуального сервера

Если сервер и его база данных работают на виртуальной машине (машинах), самым простым и надежным методом резервного копирования является создание полных снимков виртуальной машины.

Резервное копирование на уровне виртуальных машин настоятельно рекомендуется в сравнении с другими методами резервного копирования.

Частичное резервное копирование

Пошаговое резервное копирование установки SberMobile может включать следующее:

  • Резервное копирование папки установки сервера. Периодическое резервное копирование настоятельно рекомендуется, если установка SberMobile Server не зеркалируется на отказоустойчивый сервер

  • Резервное копирование файла конфигурации сервера. Рекомендуется, если не выполняется полное резервное копирование папки установки сервера.

  • Резервное копирование статистики. Рекомендуется, если не выполняется полное резервное копирование папки установки сервера.

  • Резервное копирование встроенной базы данных. Рекомендуется, если не выполняется полное резервное копирование папки установки сервера.

  • Резервное копирование внешней базы данных. Настоятельно рекомендуется, если внешняя база данных не зеркалируется, см. обход отказа базы данных для получения подробной информации.

Если сервер планируется обновить, перед обновлением обязательно выполняются следующие операции резервного копирования:

  • Резервное копирование папки установки сервера

  • Резервное копирование внешней базы данных

Резервное копирование папки установки сервера

SberMobile Server установка процесс не вносит никаких изменений в конфигурационные файлы операционной системы или реестр Windows. Никакие файлы не хранятся вне основного каталога установки. Сам SberMobile Server также сохраняет все файлы, созданные во время нормальной работы системы, в том же каталоге.

Таким образом, создание полной системной резервной копии установки SberMobile Server так же просто, как создание полной копии каталога установки сервера (например, %program files%/SberMobile в Microsoft Windows) и его архивирование. В случае серьезных проблем (таких как отказ дискового накопителя или повреждение базы данных ошибочным скрипт ), ранее заархивированная установка может быть восстановлена простым извлечением архива последней резервной копии на ту же машину, где она работала до сбоя, или даже на другой сервер. Никаких дополнительных действий не требуется, сервер может быть запущен сразу после завершения процесса извлечения.

Резервная копия папки установки сервера уже будет включать в себя:

  • Резервное копирование файла конфигурации сервера (убедитесь, что используется файл конфигурации по умолчанию, см. примечания ниже)

  • Резервная копия статистики (убедитесь, что используется местоположение статистики по умолчанию, см. примечания ниже)

  • Резервная копия встроенной базы данных (убедитесь, что используется папка встроенной базы данных по умолчанию, см. примечания ниже).

Однако резервная копия папки установки сервера не будет включать резервную копию внешней базы данных.

При восстановлении резервной копии на другом сервере может потребоваться получение нового файла лицензии. См. Вопросы лицензирования для получения дополнительной информации.

Резервная копия внешней базы данных

Большие установки SberMobile Server с сотнями управляемых устройств обычно хранят данные на внешнем сервере баз данных, например Apache Cassandra, MySQL или Oracle. Такие установки требуют выполнения резервного копирования внешней базы данных в дополнение к Резервное копирование папки установки сервера чтобы получить полную копию установки SberMobile Server.

Сервер хранит все данные в нескольких таблицах, расположенных в одной базе данных (см. База данных и Настройки базы данных для выяснения того, какая база данных используется для хранения данных сервера). Эта база данных должна быть резервирована во время резервного копирования сервера. Метод резервного копирования базы данных зависит от движка управления базами данных, используемого конкретной установкой SberMobile Server, и выходит за рамки данной статьи.

Подробные инструкции по резервному копированию

В этом разделе приведены инструкции по резервному копированию конкретных компонентов SberMobile Server.

Резервное копирование файла конфигурации сервера

Сервер файл конфигурации содержит основные настройки SberMobile Server, такие как имя установки и настройки доступа к базе данных. Для резервного копирования файла конфигурации сервера сделайте копию файла server.xml, расположенного в папке установки SberMobile Server, и храните эту копию в надежном месте.

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

Резервное копирование статистики

На сайте статистические каналы хранят данные в подпапке /statistics папки установки SberMobile Server. Эту папку следует резервировать для сохранения архивов статистики.

Расположение папки хранения статистики можно изменить в параметре глобальной конфигурации сервера. Убедитесь, что резервное копирование выполняется в нужную папку.

Резервное копирование встроенной реляционной базы данных

На сервере встроенный механизм реляционной базы данных который входит во все комплекты SberMobile Server, хранит данные базы данных в подкаталоге /db в инсталляции сервера.

Чтобы создать резервную копию всей встроенной базы данных, выполните следующие действия:

  • 1. Остановите сервер.

  • 2. Скопируйте подкаталог /db каталога установки SberMobile Server в место резервного копирования.

Сжатие содержимого папки /db уменьшит размер резервной копии в 5-10 раз.

Расположение встроенной базы данных можно изменить в параметре глобальной конфигурации сервера. Убедитесь, что вы создаете резервную копию нужной папки.

Резервное копирование и восстановление базы данных postgresql

Если SberMobile Server использует базу данных PostgreSQL, можно создать резервную копию базы данных с помощью следующей техники:

  • Чтобы создать резервную копию всей базы данных в файл, выполните следующую команду:

pg_dump -U USER -W PASSWORD DATABASE > database.sql

где USER и PASSWORD - ваши учетные данные PostgreSQL, а DATABASE - имя базы данных, используемой SberMobile Server.

  • Чтобы восстановить всю базу данных из файла, выполните следующую команду:

psql -U USER -W PASSWORD DATABASE < database.sql

Резервное копирование базы данных Mysql

Если SberMobile Server использует базу данных MySQL, можно создать резервную копию базы данных с помощью следующей техники:

  • Чтобы создать резервную копию всей базы данных в файл, выполните следующую команду:

mysqldump -u USER -p PASSWORD --skip-lock-tables DATABASE > database.sql

где USER и PASSWORD - ваши учетные данные MySQL, а DATABASE - имя базы данных, используемой SberMobile Server.

  • Чтобы избежать резервного копирования большинства некритичных событий, вы можете ограничить резервное копирование только несколькими основными таблицами:

mysqldump -u USER -p PASSWORD --skip-lock-tables DATABASE ag_properties ag_events ag_data ag_alert > database.sql

Сжатие, загрузка и планирование резервных копий в linux

  • Сжать полученный файл database.sql и сохранить его на удаленном безопасном сервере резервного копирования, скопировав его по FTP:

mysqldump -u USER -p PASSWORD --skip-lock-tables DATABASE ag_properties ag_events ag_data ag_alert | /home/ LINUX_USER /db_pipe.sh

Вот текст скрипта db_pipe.sh:

sfx=`/bin/date +%Y-%m-%d` /bin/gzip -c > /home/LINUX USER/db_backup.${sfx}.sql.gz /usr/bin/lftp -e "put /home/LINUX USER/db_backup.${sfx}.sql.gz; bye" -u BACKUP_SERVER_USER,BACKUP_SERVER_PASSWORD BACKUP_SERVER_ADDRESS /bin/rm -rf /home/LINUX_USER/db_backup.${sfx}.sql.gz
  • Чтобы выполнить вышеуказанное резервное копирование по расписанию, добавьте следующую строку в конфигурацию Linux/Unix cron:

0 0 * * * mysqldump -u USER -p PASSWORD --skip-lock-tables DATABASE ag_properties ag_events ag_data ag_alert | /home/LINUX_USER/db_pipe.sh

Приведенная выше конфигурация будет выполнять резервное копирование каждую полночь.

Сжатие, загрузка и планирование резервных копий в windows

  • Скачайте и установите архиватор WinRar.

  • Скачайте и установите утилиту cURL.

  • Подготовьте командный файл backup.bat со следующим содержанием:

"%SberMobile%\mysql\bin\mysqldump" –uUSER –pPASSWORD --skip-lock-tables DATABASE ag_properties ag_events ag_data ag_alerts > c:\backup\MySQL.sql rar.exe a sqlBackup d:\backup\MySQL.sql del /q d:\backup\MySQL.sql curl.exe -T d:\backup\sqlBackup.rar -u FTP_USER:FTP_PASSWORD ftp://BACKUP_SERVER exit
  • Запланируйте запуск этого командного файла с помощью планировщика задач Windows.

Для резервного копирования на linux-машину с помощью SCP используйте утилиту winscp вместо curl:

winscp.exe /console /script=D:\BackUp\transfer.txt

Содержимое файла transfer.txt:

open sftp://SSH_USER:SSH_PASSWORD@BACKUP_SERVER cd /home/SSH_USER option transfer binary put d:\backup\sqlBackup.rar close exit