Бекап и восстановление¶
Ручной бекап базы данных¶
Данные система хранит в базе данных, далее по тексту БД и в файлах.
БД состоит из 3 баз:- config содержит конфигурационные данные
- storage содержит CDR и другие объемные данные
- var содержит локальные временные данные, например таблицу активных звонков
Наиболее ценные данные содержатся в базах config и storage.
config¶
База config хранится в формате InnoDB.
Система по умолчанию создает бекап базы config в виде SQL дампа каждые 6 часов.
Бекапы сохраняются в архивах /var/backup/smartswitch.
У вас есть бекапы за каждые 6 часов за последний месяц в любой момент времени.
Воспользоваться бекапом вы можете захотеть в следущих случаях:
- неисправимое повреждение журнальных файлов InnoDB вследствие некорректной перезагрузки системы
- ошибка оператора (например удаление важной информации)
Для восстановления базы config из бекапа используйте следующую инструкцию (предположим, что вы хотите восстановить архив 010600.tgz:
Внимание! В случае, если вы являетесь клиентом Streamco, не выполняйте следующие операции самостоятельно!
Вы можете испортить все ваши данные.
Свяжитесь со службой технической поддержки!
# sudo -s # cd /usr/local/smartswith/mysql # tar zxvf /var/backups/smartswitch/010600.tgz # mysql mysql> drop database config; mysql> create database config; mysql> exit # mysql config < 010600/config.sql
Вы можете настроить rsync для бекапа этих файлов на ваш сервер.
Установите пакет expect и добавьте следующий скрипт на периодическое выполнение на удаленном хосте:
#!/bin/sh SSH_LOGIN=<ваш SSH логин> SSH_PASSWORD=<ваш SSH пароль> HOST_IP=<IP адрес сервера с Smartswitch> expect -c "spawn rsync -axSRzv $SSH_LOGIN@$HOST_IP:/var/backups/smartswitch ./; expect \"*?assword:*\" {send \"$SSH_PASSWORD\r\"; interact};"
storage¶
База storage хранится в формате MyISAM.
База storage не бекапится на локальный диск из-за ее большого объема.
MyISAM не журналируется, потому при некорректных перезагрузках вся база может быть восстановлена не прибегая к бекапам.
При повреждении используется стандартная процедура восстановления баз данных MyISAM MySQL (например, для восстановления таблицы cdr):
Внимание! В случае, если вы являетесь клиентом Streamco, не выполняйте следующие операции самостоятельно!
Вы можете испортить все ваши данные.
Свяжитесь со службой технической поддержки!
mysql> repair table cdr use_frm;
Этой командой вы восстановите таблицу cdr.
Аналогично вы можете восстановить любую другую поврежденную таблицу.
В системе есть скрипт, который выполняет автоматическое восстановление всех таблиц:
/usr/local/bin/smartswitch/repair.sh
Запускайте его для восстановления базы storage после некорректной перезагрузки сервера по питанию.
Такжы вы можете настроить репликацию этой базы на другой сервер для сохранения постоянно актуальной резервной копии.
В этом случае даже при полном сбое основного сервера у вас гарантированно будет снимок базы данных на сервере, на который выполняется репликация.
Подробнее об этой возможности см. раздел Репликация_MySQL.
var¶
Эта база не хранит важных данных.
Однако в ней есть нужные таблицы и в ней хранится лицензионный ключ.
Достаточно сделать бекап ее всего раз (однако делать бекaп нужно после каждого апдейта, так как при апдейте обычно меняется формат базы):
# mysqldmp --single-transaction -S /usr/local/smartswitch/mysql_var/mysql.sock var > var.sql
Скопируйте полученный var.sql куда-нибудь и используйте процедуру для восстановления:
Внимание! В случае, если вы являетесь клиентом Streamco, не выполняйте следующие операции самостоятельно!
Вы можете вызвать сбой всей системы.
Свяжитесь со службой технической поддержки!
# mysql -S /usr/local/smartswitch/mysql_var/mysql.sock var mysql> drop database var; mysql> create database var; mysql> exit # mysql -S /usr/local/smartswitch/mysql_var/mysql.sock var < var.sql
Бекап и восстановление файлов¶
Важные файлы - это записи телефонных разговоров.
Они хранятся в /usr/local/smartswitch/recordings.
Вы можете настроить rsync для бекапа этих файлов на ваш сервер.
Установите пакет expect и добавьте следующий скрипт на периодическое выполнение на удаленном хосте:
#!/bin/sh SSH_LOGIN=<ваш SSH логин> SSH_PASSWORD=<ваш SSH пароль> HOST_IP=<IP адрес сервера с Smartswitch> expect -c "spawn rsync -axSRzv $SSH_LOGIN@$HOST_IP:/usr/local/smartswitch/recordings ./; expect \"*?assword:*\" {send \"$SSH_PASSWORD\r\"; interact};"
Ручной бекап файловой системы¶
Для бекапа файловой системы воспользуйтесь следующей процедурой:
# mkdir backup # cd backup # dump -0 -L -f - / | gzip -9 > root.img.gz # dump -0 -L -f - /usr | gzip -9 > usr.img.gz # dump -0 -L -f - /var | gzip -9 > var.img.gz
Перенесите файлы себе на ПК.
Пусть ваш логин - admin, а IP адрес сервера - 192.168.0.1.
# pscp.exe -r admin@192.168.0.1:backup backup
После этого у вас на ПК находятся снимки всех файловых систем.
Для восстановления из бекапа сначала установите систему с нашего установочного диска, а затем перенесите бекап на него:
# pscp.exe -r backup admin@192.168.0.1:
Затем восстановите из бекапа:
# cd backup # gzip -d root.img.gz | ( cd / ; restore -rf - ) # gzip -d usr.img.gz | ( cd /usr ; restore -rf - ) # gzip -d var.img.gz | ( cd /var ; restore -rf - )
Автоматический полный бекап системы¶
Для нагруженных production систем ручной метод бекапа не подходит, так как возможна потеря данных в интервале между сделанным бекапом и аппаратным сбоем.
Для настройки автоматического бекапа инженерами нашей компании используется репликация MySQL. совместно с использованием rsync.
Настройка репликации и выходит за рамки данного руководства.