Резервное копирование и восстановление Samba AD DC |
---|
Оригинал: Backup and Recovery
Перевел: Graf
Под редакцией: Serg Bormant
Дата перевода: сентябрь 2013 г.
Содержание этого документа актуально только для samba 4.x.
Надеемся, что данное пособие по резервному копированию и восстановлению samba окажется полезным. Но имейте ввиду, что написанное здесь не дает НИКАКИХ ГАРАНТИЙ!
До удаления этой строки из данного пособия, рассматривайте этот документ как черновик, который может содержать ошибки или в котором может чего-то не хватать!
Просто присоедините новую машину как DC. И все будет синхронизировано с рабочим(и) DC, кроме репликации SysVol, которая пока не реализована.
Если же сломан весь домен на всех DC, вы должны отправить сообщение в samba-technical на http://lists.samba.org для обсуждения наилучшего способа исправления.
Если вы будете вносить изменения в скрипт samba_backup или создадите собственный, то вам пригодится некоторая полезная информация:
Samba предоставляет очень простой скрипт резервного копирования баз данных (он находится в архиве с исходными кодами в source4/scripting/bin/samba_backup). Для его работы необходимо, чтобы вся Samba была установлена в одном месте (например в /usr/local/samba/). Если во время сборки вы использовали запуск configure с различными опциями для хранения частей Samba в разных местах, то вы можете исправить скрипт или использовать его в качестве базы для написания собственного скрипта.
Поскольку на данный момент этот скрипт очень прост, и вы будете использовать его без изменений, то вам необходимо знать некоторые вещи:
Samba скрипт для резервного копирования не устанавливается во время запуска make install. Рекомендуется скопировать его из директории с исходным кодом (source4/scripting/bin/samba_backup) в систему, например в /usr/sbin и установить разрешения:
# cp ..../source4/scripting/bin/samba_backup /usr/sbin # chown root:root /usr/sbin/samba_backup # chmod 750 /usr/sbin/samba_backup
Настройте следующие переменные внутри скрипта под свои нужды:
FROMWHERE=/usr/local/samba WHERE=/usr/local/backups DAYS=90
Создайте директорию назначения, которую вы прописали в переменной $WHERE, и установите разрешения:
# mkdir /usr/local/backups # chmod 750 /usr/local/backups
Запустите скрипт резервного копирования для первого теста:
# /usr/sbin/samba_backup
Если сценарий завершился без ошибок, то вы увидите три файла в папке назначения:
Если тест резервного копирования удался, то для ежедневного резервного копирования добавьте его в cron:
# crontab -e
Для ежедневного резервного копирования в 2 часа ночи добавьте следующую строку:
0 2 * * * /usr/sbin/samba_backup
Следующие рекомендации по восстановлению предполагают, что вы сделали резервные копии баз данных при помощи скрипта samba_backup. Если у вас есть свой собственный сценарий, отрегулируйте соответствующие шаги.
Если ваша система не работает, вы должны сначала настроить всю машину как описано в практических руководствах (HowTo) ( контроллера AD или рядового сервера).
Удалите те директории, которые будете восстанавливать (Samba не должна работать!):
# rm -rf /usr/local/samba/etc # rm -rf /usr/local/samba/private # rm -rf /usr/local/samba/var/locks/sysvol
Распакуйте последние рабочие файлы резервных копий в старое местоположение:
# cd /usr/local/backups # tar -jxf etc.{Timestamp}.tar.bz2 -C /usr/local/samba/ # tar -jxf samba4_private.{Timestamp}.tar.bz2 -C /usr/local/samba/ # tar -jxf sysvol.{Timestamp}.tar.bz2 -C /usr/local/samba/
Переименуйте файлы *.ldb.bak в каталоге private в *.ldb. С GNU find и Bash это можно сделать разом:
# find /usr/local/samba/private/ -type f -name '*.ldb.bak' -print0 | while read -d $'\0' f ; do mv "$f" "${f%.bak}" ; done
Если ваша резервная копия не содержит расширенные списки управления доступом (ACL) (см. раздел о скрипте samba_backup ), то запустите:
# samba-tool ntacl sysvolreset
Если вы используете Bind в качестве сервера DNS, исправьте жесткие ссылки на базы данных DNS:
# samba_upgradedns --dns-backend=BIND9_DLZ
Смотрите DNS Backend BIND - New added DNS entries are not resolvable.
Теперь, если восстановление прошло успешно, вы можете запустить samba и начать тестирование.