23.10.20

Вы пока базу поремонтируйте, а мы с ней поработаем

 Есть такое понимание у людей, когда база вроде бы рабочая, но где-то там что-то повреждено. Например, всё работает, кроме запросов к одной из таблиц.

Ну и, останавливать работу нельзя, поврежденная часть вроде бы не каждодневно используется, можно потерпеть, пока нам "базу отремонтируют".

Но увы, нет. Редко какая база (в смысле разработки и предметной области) позволяет "склеить" базу из двух - починенной и "рабочей". Можно даже сказать, что вообще никакая.

Теоретически "склеить" две БД в одну могут разработчики этой базы. То есть, для этого надо точно знать структуру БД, взаимодействие таблиц (в том числе поврежденных), и как надо производить это самое "склеивание".
Но как показывает практика, разработчикам такими вещами вообще неинтересно заниматься. Ну разве что если только они эксплуатируют свою же собственную разработку. А если это тиражируемое решение - нет, мне подобные энтузиасты не попадались.

Так что, единственный вариант ремонта:

- останавливаем работу
- передаем базу в ремонт
- сидим ждем, пока починят
- получаем отремонтированное, продолжаем работать.

И тут, конечно, засада в том, что длительность ремонта неизвестна. Поэтому что?
Да, надо чаще делать бэкапы! :-) Вполне вероятно, что восстановиться из вчерашнего бэкапа и перевбить данные за день будет гораздо дешевле, чем тупо сидеть пару дней, пока базу починят (еще и с неизвестным результатом).