В таблице приведено описание регламентных работ по сохранению баз и конфигурации ECSS-10.
Таблица — Регламентные работы по сохранению баз данных и конфигурации ECSS-10
| Период | Операция | Метод резервного копирования | Метод восстановления |
|---|---|---|---|
| один раз в неделю | /etc — конфигурация сервера и всех служб, полное или инкрементное резервное копирование (backup) | Копирование и архивирование | Замена директории из архива |
| один раз в неделю | /var/lib/ecss/etc — конфигурация узлов ECSS, полное или инкрементное резервное копирование (backup) | Копирование и архивирование | Замена директории из архива |
| один раз в неделю | /var/lib/ecss/mycelium — долговременные данные mycelium, полное резервное копирование (backup) | Копирование и архивирование | Замена директории из архив |
| один раз в неделю | /var/lib/ecss/oasys — базы данных кластеров ECSS, полное или инкрементное резервное копирование (backup) | Копирование и архивирование | Замена директории из архива |
| один раз в неделю | /var/lib/ecss/snmp — базы данных SNMP, полное резервное копирование (backup) | Копирование и архивирование | Замена директории из архива |
| один раз в неделю | БД MySQL — инкрементное резервное копирование (backup) | Описан в Backup и восстановление MySQL | Описан в Backup и восстановление MySQL |
| один раз в неделю | БД LDAP — полное резервное копирование (backup) | Описан в Backup и восстановление LDAP | Описан в Backup и восстановление LDAP |
| один раз в месяц | БД MySQL — полное резервное копирование (backup) | Описан в Backup и восстановление MySQL | Описан в Backup и восстановление MySQL |
| обновление релиза | /usr/lib/ecss — компоненты ECSS, полное резервное копирование (backup) | Копирование и архивирование | Замена директории из архива |
|
Полное копирование:
cp -rv /etc /tmp/etc
Инкрементное копирование:
cp -ruv /etc /tmp/etc
где
ключ -r копирует каталог /etc с его подкаталогами в каталог /tmp/etc;
ключ -u копирует только новые или обновленные файлы.
Архивирование:
tar -cvf <NAME>./etc/
где
<NAME> — имя архива.
Разархивирование:
tar -xvf <NAME>
где
<NAME> — имя архива.
Midnight Commander:
Содержимое каталогов:
В зависимости от аварийной ситуации необходимо заменить текущий раздел на backup.
Примеры:
Пропала регистрация, повторная регистрация не приводит к положительному результату.
Действия:
cluster/adapter/sip1/ldap/user test test 3000 .Пропали данные истории вызовов
Действия:
| Указанные команды выполняются через интерфейс командной строки CLI. |
/cluster/core/core1/history/properties/info , значение параметра "enabled" должно быть "true"./node/core1@ssw1/service , напротив сервиса "cph" в колонке "S" должно быть установлено значение "+";/cluster/core/core1/history/show-history all 1 ;Выполнить Backup базы MySQL простым копированием файлов можно в том случае, если остановить сервис MySQL. Это обусловлено тем, что база в любой момент может быть модифицирована. Существует кэш и копирование может совпасть с моментом записи в файл (модификацией файла). В этом случае проблемы возникнут при попытке восстановления базы из Backup.
Варианты действий:
Запустить инкрементный backup базы. Преимущества данного способа: сохраняются только изменения от момента последнего сохранения, соответственно быстро из без остановки системы. Недостатки: перед сохранением нужно сбросить кэш в файлы.
В данном подразделе указаны команды, которые выполняются из командной консоли управления операционной системы Linux (shell) непосредственно хоста, на котором установлена система ECSS-10. |
Описание варианта №3
Выполнить копию БД
mysqldump --verbose --single-transaction --quote-names --complete-insert --extended-insert --routines --events --triggers -u<LOGIN> -P<PORT> -h<HOST> -p<PASS> <DBNAME> > dump.sql
где
<HOST> — хост, на котором размещен сервер MySQL;
<LOGIN> — логин к MySQL;
<PORT> — порт, на котором работает сервер;
<PASS> — пароль;
<DBNAME> — имя базы.
После выполнения данной команды в файле dump.sql будет копия MySQL-базы с именем "DBNAME".
Целесообразно имя файла dump.sql формировать с учетом даты и времени суток.
Например:
mysqldump --verbose --single-transaction --quote-names --complete-insert --extended-insert --routines --events --triggers --user=root --password=ssw1 --databases ecss_audit ecss_calls_db ecss_dialer_db ecss_statistics ecss_subscribers web_conf history_db > ./all_dump.sql |
Восстановление
mysql -u<LOGIN> -P<PORT> -h<HOST> -p<PASS> <DBNAME> < dump.sql
Описание процесса можно просмотреть по следующим ссылкам: https://dev.mysql.com/doc/refman/5.7/en/backup-methods.html; http://www.codenet.ru/db/mysql/MySql-Backup.php; http://habrahabr.ru/post/137380/; http://www.linuxjournal.su/?p=1064.
Описание варианта №4
Метод сохранения Backup основан на базе механизма бинарных логов MySQL. Бинарные логи содержат полную историю изменений базы данных. Для работы инкрементного Backup необходимо, чтобы бинарные логи были включены для требуемой базы данных.
| Описание настройки бинарных инкрементных логов приведено по ссылке: Схема развертывания MySQL master-master replication с использованием keepalive |
Процесс состоит из двух фаз:
mysqldump -uLOGIN -PPORT -hHOST -pPASS --flush-logs DBNAME > dump.sql Восстановление Backup из инкрементных логов происходит следующим образом:
mysqlbinlog binlog_files | mysql -uLOGIN -pPASS .Не рекомендуется выполнять backup базы данных LDAP копированием по тем же причинам, что и MySQL.
С подробным описанием можно ознакомиться по ссылке: http://supportex.net/2011/02/backup-restore-ldap-database.
Скрипт для создания backup:
#!/bin/sh LDAPBK=ldap-$( date +%y%m%d-%H%M ).ldif BACKUPDIR=/home/backups /usr/sbin/slapcat -v -b "dc=yourDC,dc=local" -l $BACKUPDIR/$LDAPBK gzip -9 $BACKUPDIR/$LDAPBK |
|
Восстановление из backup:
Остановить slapd:
~$ sudo service slapd stop |
Удалить базу (убедиться, что вы находитесь в правильном каталоге для удаления командой rm):
~$ sudo rm -rf /var/lib/ldap/* |
Восстановить базу из LDIF-файла:
~$ sudo -u openldap /usr/sbin/slapadd -l backup.ldif |
Запустить slapd:
~$ sudo service slapd start |
Для полного backup используется копирование всего жесткого диска (dd). Необходимо сохранить все содержимое диска (таблица разделов, разделы, данные). Преимущество данного метода в том, что за один шаг сохраняются все установленные на жестком диске системы. При таком backup сохранятся все данные, относящиеся к загрузчику. Таким образом, после восстановления можно сразу же загрузиться с этого жесткого диска.
mount без параметров.Смонтировать backup-раздел
sudo mount /dev/sdXY /mnt |
Выполнить команду
sudo dd if=/dev/sdX bs=1M conv=noerror,sync | lzma -cv > /mnt/hdd.dd.lzma
где «sdX» — диск для копирования без сжатия, а не раздел.
В зависимости от размера жесткого диска и производительности компьютера процедура может занять продолжительное время (до нескольких часов).
По завершении п. 4 отмонтировать backup-раздел
sudo umount /mnt |
|
Смонтировать backup-раздел
sudo mount /dev/sdXY /mnt |
Выполнить команду
bzip2 -dc /mnt/hdd.dd.bz | sudo dd of=/dev/sdX bs=1M conv=sync,noerror |
или для несжатого образа
sudo dd if=/mnt/hdd.dd.bz of=/dev/sdX bs=1M conv=sync,noerror |
По завершении п.3 отмонтировать backup-раздел
sudo umount /mnt |
|
df -h или mount проверить, что ни один из разделов дисков (с которого будет делаться клон и на который будет делаться клон) не примонтирован. В случае если разделы примонтировались, то выполнить команду umount.В shell выполнить следующую команду:
sudo dd if=/dev/sdX of=/dev/sdY bs=4M
где sdX — диск, с которого будет производиться клонирование,
sdY — диск, на который будет производиться клонирование.
Ожидаем завершения выполнения команды. Операция может занять продолжительное время (до нескольких часов).
В пакет ecss-ds добавлена утилита ecss-control (идет в пакете ecss-node).
Доступны следующие команды:
В процессе работы утилита запрашивает пароль от пользователя root к mysql.
Пример:
hurd@insider:~$ ecss-control stash ~/ ERROR: this operation required root privilegies. Try with sudo hurd@insider:~$ sudo ecss-control stash ~/ please enter root password for mysql db: Enter password: stashing ECSS-10... create stashed file: /home/hurd//ecss-stash-20180511-151933.tar.gz done hurd@insider:~$ sudo ecss-control rollback ~/ecss-stash-20180511-151933.tar.gz rollback configuration from /home/hurd/ecss-stash-20180511-151933.tar.gz please enter root password for mysql db: Enter password: stashed file successfull rollbacked hurd@insider:~$ |
После выполнения rollback для применения новой конфигурации из бекапа необходимо произвести перезагрузку подсистемы ds, используя команду:
hurd@insider:~$ sudo systemctl restart ecss-ds |
Backup выполняется для следующих файлов конфигурации:
Каталоги:
mysql db: