Баз у нас море. Среди них есть важные: собственная бухгалтерия, разработка по и т.п. Настроено автоматическое архивирование. Которое собственно работает как часы. Недавно понадобилось восстановить одну базу. Залез в архив, а она не разбэкапливается... Начал проверять: просто звиздец, ничего не разбэкапливается...
А что произошло. Долгое время сервером был Яфил. До сих пор болшинство баз под ним. Так как он был единственным сервером то в скриптах архивирования было просто прописано gbak и все. Потом на сервер поставили ФБ 2.0.5, ФБ 2.1 и ФБ 2.5. И так получилось, что в какой-то момент в путях каталог BIN сервера 2.5 стал впереди Яфиловского. И вот тут основная засада. Дело в том, что архивация проходит. gbak 2.5 даже глазом не моргнет о том, что что-то не так. А разархивация не проходит. Так как хранимые процедуры и триггеры используют Яфиловские встроенные функции, а у них другой BLR! По мойму это не правильно делать архив, который заведомо не восстановится. Хорошо, у нас такая система относительно не давно и за февраль есть архивы, которые нормально восстанавливаются. Предложение: чтобы избежать такой ситуации, gbak видя что версия структуры БД отличается от ФБ 2.5 должен перед архивированием проверить BLR хранимых процедур и триггеров. И если на этом этапе будут ошибки, то не делать архив вообще.

