Neuroware
@Neuroware
Программист в свободное от работы время

Насколько «живучие» БД?

Возникла одна интересная идея, но есть один момент, который меня удерживает от попытки реализовать, вопрос в том насколько базы данных (sql) живучие в условиях повреждения БД, к примеру если взять в середине файла БД затереть сотню другую секторов или повредить диск (HDD) так, что он будет в некоторых местах плохо\медленно читаться, что будет с БД в таком случае? Она полностью развалится с потерей данных или будет потеряна лишь часть данных и можно как то выяснить какая часть и попытаться восстановить\удалить поврежденную часть?
  • Вопрос задан
  • 2926 просмотров
Решения вопроса 2
DevMan
@DevMan
Помимо самих файлов БД, СУБД еще ведет лог транзакций, который (если не убит) используется при восстановлении.
Ну а в целом, для решения таких проблем используются бекапы/репликация.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
Обычно, администратор не разгребается восстановлением битых баз данных.
Обычно администраторы делятся на тех, кто НЕ делает бэкапы, тех кто УЖЕ делает, и тех кто УЖЕ делает и проверяет их целостность.

В продвинутых базах данных есть журналы транзакций, которые пишутся в отдельное место, и тоже могут бэкапироваться. Благодаря им, просто поднимается база из последнего бэкапа, и журналами транзакций состояние базы "докатывается" до момента перед сбоем.

Все остальные попытки "восстановить" базу из битых файлов - совершенно ненадежная ситуация, так как результат просто непредсказуем.
Ну то есть частично битые текстовые данные можно визуально отследить, а бинарные - вряд ли можно как-либо использовать такую кашу.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
плохо живучая при серьезных повреждениях почти всегда потеря данных
если данные важные то не целостная копия обычно не имеет как таковой ценности.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы