Просмотр Исходного

{toc:maxlevel=2}

h2. Описание системы резервного копирования

* Резервное копирование платформы происходит раз в сутки.
* Лог выполнения операции хранится в файле /app/base/var/log/cron_backup.sh.log.
* Процесс резервного копирования состоит из последовательного вызова команды */app/* {color:red}*<имя app>*{color}*/service backup* для каждого контейнера, которая создает резервную копию, и */app/* {color:red}*<имя app>*{color}*/service backup_upload*, которая выгружает её на ftp.
Следовательно, если проблема с резервным копирование была во время создания, отлаживать можно именно /app/<имя app>/service backup. В случае, если была проблема с выгрузкой на ftp, можно отлаживать /app/<имя app>/service backup_upload. Не выполняя полную процедуру резервного копирования.
* Единовременно на сервере хранятся только по одному экземпляру ежемесячной, еженедельной и ежедневной резервных копий.
* В процедуре backup_upload происходит не только выгрузка, но и чтение файлов с ftp, обновление файлов и создание директорий. Все эти действия должны быть разрешены на ftp-сервере.
* В архив резервной копии *base* (папка */app/base/mnt/backup*) копируется корневая папка /etc под названием *root_etc*. Эти файлы можно вручную восстановить на новой или восстановленной системе.

h2. Настройка автоматического резервного копирования и выгрузки по FTP

Настройки резервного копирования находятся в пункте меню "Настройки платформы":

!backup_1.png|border=1,width=900!

!base_ftp.png|width=900!

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

|| Ежедневное резервное копирование данных | {warning}{*}Включает ежедневное создание резервных копий. Крайне рекомендуется включить эту опцию.*{warning} ||
|| Каталог на FTP сервере | Каталог на FTP-сервер куда будут выгружаться резервные копии ||
|| Выкладывать резервную копию на FTP | Включает ежедневное создание резервных копий ||
|| Пароль | Пароль пользователя FTP-сервера ||
|| IP-адрес FTP-сервера | Адрес FTP-сервера:
* Можно указать домен, например: *ftp.mydomain.ru*
* Нестандартный порт нужно указывать через двоеточие от имени хоста, например: *ftp.mydomain.ru:555* ||
|| Имя пользователя | Имя пользователя FTP-сервера ||

h3. Структура каталогов на ftp-сервере

# В каталоге, который вы указали для выгрузки на ftp будет содержать подкаталоги для каждого контейнера.
# В этом каталоге будут лежать архивы с резервной копией контейнера и файл с md5 суммой этого файла. Например, бекап asr_billing:
\\
\\
#- backup_daily_2016-05-26_02-51_asr_billing.tar.gz
backup_daily_2016-05-26_02-51_asr_billing.tar.gz.md5
#- backup_weekly_2016-05-20_02-51_asr_billing.tar.gz
backup_weekly_2016-05-20_02-51_asr_billing.tar.gz.md5
\\
\\
# В asr_billing также есть директория static, там хранятся неизменяемые бекапы БД, но в которые происходит дозапись. Например, аудит и история фин.проводок по абонентам. В основной архив класть их слишком накладно по памяти, да и изменяются они редко. Так что эти файлы выгружаются отдельно от архива и обновляются, после того в биллинге в эти базы произошла запись (во время бекапа).

{note}
В платформе нет возможности выбрать контейнеры, по которым будет создана резервная копия. При необходимости уменьшить размер места, которое занимают резервные копии на диске или ftp сервере, необходимо самостоятельно удалять их. Для этого можно воспользоваться планировщиком cron.
{note}

h2. Управление резервными копиями

Все команды для управления резервными копиями доступны с помощью опции \--help:
{code}
/app/asr_billing/service --help
{code}

Доступные команды:

h3. Создать резервную копию
{code}
/app/asr_billing/service backup
{code}

h3. Показать список резервных копий на FTP-сервере
{code}
/app/asr_billing/service backup_ftp_list
{code}

h3. Показать список резервных копий на сервере c биллингом
{code}
/app/asr_billing/service backup_local_list
{code}

h3. Скачать резервную копию с FTP-сервера. Принимает имя резервной копии
{code}
/app/asr_billing/service backup_download <имя_бекапа>
{code}

h3. Восстановить все файлы из резервной копии. Принимает имя резервной копии
{code}
/app/asr_billing/service backup_restore <имя_бекапа>
{code}

Например
{code}
/app/asr_billing/service backup_restore backup_2017-09-01_2017-09-01_15-12_asr_billing.tar.gz
{code}

h3. Загрузить последнюю резеврную копию на FTP-сервер
{code}
/app/asr_billing/service backup_upload
{code}

Создать резервную копию можно с помощью команды *backup* и выгрузить её на FTP-сервер командой *backup_upload*.

Восстановление из резервной копии (backup_restore) можно производить только с файлами, которые находятся на сервере биллинга.

Локальные копии, в том числе скачанные с ftp сервера, находятся в каталоге:

{code}
/mnt/backup/app/asr_billing/backup/
{code}

Чтобы скачать бекап с FTP-сервера, требуется просмотреть имеющееся файлы командой *backup_list*, а потом загрузить нужный, с помощью *backup_download*.

h2. Решение проблем резервного копирования

Если:
* Не включено ежедневное создание резервных копий
* Не включена выгрузка резервных копий на FTP
* Создание резервной копии или выгрузка на FTP завершились с ошибкой

при входе в интерфейс базовой системы Вы увидите предупреждение:
{warning}Последняя выгрузка резервной копии на FTP была завершена неудачно. Проверьте правильность настроек FTP{warning}
Решение проблем создания резервных копий или их выгрузки описано в статье "[CarbonBilling:Система мониторинга]"