Прочитал про падение серверов СДЭК и прямо до мелочей вспомнил, как почти 7 лет назад принимал участие в устранении последствий вируса-шифровальщика.
7 лет назад я работал в крупной компании, и так как за два года до события я работал там же администратором баз данных, то меня тоже пригласили помогать в процессе поднятия серверов БД.
Всем, кто смеётся над рукожопостью IT-шников и отсутствию бэкапов, хотел бы рассказать как это выглядит в реале.
Если речь про шифровальщики, то он шифрует все компьютеры подряд: рабочие станции пользователей, контроллеры доменов, серверы резервного копирования, рядовые серверы, в общем всё, до чего сможет дотянуться по сети.
Прежде чем что-либо восстанавливать нужно найти выживший контроллер домена, если такого нет и нет бэкапа, то придётся строить инфраструктуру с нуля. Контроллер домена - это такой главный сервер в инфраструктуре, в котором содержится база данных всех пользователей, компьютеров, серверов и т.д. В нашем случае нам повезло и у нас такие нашлись. Параллельно начали поднимать серверы резервного копирования, по сути нужно взять и установить всё с нуля и подцепить к нему базу бэкапов.
Ну и после поднятия началась планомерная работа по восстановлению наиболее критичных систем.
Пока сисадмины возились с контроллерами я выработал схему восстановления серверов БД не прибегая к бэкапам. Повезло в том, что вирус не тронул файлы БД, а шифровал только офисные файлы, текстовые и системные каталоги Windows.
Процесс выглядел вот таким образом:
1. С диска c: копируются все файлы системных БД СУБД MSSQL(master, model, msdb и mssqlsystemresource) хоть на usb-флешку, т.к. они имеют небольшой размер. Если рабочие базы лежат на системном диске, то и их тоже. Кроме того можно посмотреть каталог C:\Program Files\Microsoft SQL Server\{version}\Setup Bootstrap\Update Cache, чтобы понимать какие обновления были установлены ранее.
2. Форматируется системный раздел и заново ставится ОС.
3. Заводим сервер в домен.
4. Устанавливаем SQL Server и все обновления, которые были на сервере до этого.
5. Останавливаем службы SQL и заменяем системные базы старыми(новенькие можно куда-нибудь скопировать на всякий случай, вдруг что-то пойдёт не так).
6. Запускаем SQL Server и проверяем получилось или нет.
В процессе установки ОС у подключенных дисков могут стать несколько иными буквы дисков, но в принципе при подключении старой базы master и в логах SQL Server можно увидеть нужные пути до баз и просто переименовать буквы дисков.
С кластерами всё работает точно так же, просто процесс установки дольше, т.к. установить SQL и обновления нужно на все ноды
Вот такой простой подход позволил восстановить все серверы БД SQL Server без потерь в данных.
Вдруг кому пригодится в будущем.
Подробнее https://www.yaplakal.com...
По мотивам сбоя СДЭК
2024-05-28 15:06:08