При ремонте баз данных периодически сталкиваемся с полным отсутствием бэкапов или копий БД. Если в этом случае в базе повреждены метаданные, то восстановить уже практически ничего нельзя, даже при помощи FirstAid Extractor.
Почему?
Firebird и InterBase, как и любые другие СУБД, используют т.н. "словарь метаданных". Т.е. описания структуры таблиц хранятся в системных таблицах. Структура таблиц может меняться, при этом в системных таблицах появляется новый формат данных, и сами данные в базе хранятся как в старых, так и в новых форматах, одновременно.
Прикладные базы данных на Firebird и InterBase в этом случае "делятся" на три типа
Если в базе повреждены метаданные, то FirstAid Extractor может использовать копию метаданных, чтобы вытащить максимум данных (одной из функций DataGuard является периодическое сохранение снимка метаданных в резервное хранилище).
Однако, если копия метаданных устарела, а описание форматов в БД повреждено, FirstAid Extractor не может определить тип данных, и корректно извлечь данные из поврежденной БД.
Например, в таблицу добавлен столбец varchar(100). А копия метаданных есть только на момент до добавления этого столбца. При попытке вытащить данные Extractor-ом этого столбца в "выходной" таблице не будет.
Кроме того, если нет точной копии метаданных, результатом восстановления будет лишь набор таблиц, без индексов, процедур, триггеров и прочего. Такие восстановленные данные невозможно использовать с прикладной программой. Их можно использовать только для ввода в БД заново, вручную, и то, не всегда, особенно если "объект" в БД представляет собой данные в нескольких взаимосвязанных таблицах.
Почему?
Firebird и InterBase, как и любые другие СУБД, используют т.н. "словарь метаданных". Т.е. описания структуры таблиц хранятся в системных таблицах. Структура таблиц может меняться, при этом в системных таблицах появляется новый формат данных, и сами данные в базе хранятся как в старых, так и в новых форматах, одновременно.
Прикладные базы данных на Firebird и InterBase в этом случае "делятся" на три типа
- Метаданные не меняются. Как БД разработана, так она и работает годами, без изменений.
- Метаданные изредка обновляются, при обновлении версии программ и БД
- Метаданные меняются на ходу, т.к. пользователь через программу имеет возможность добавления или изменения столбцов у таблиц БД
Если в базе повреждены метаданные, то FirstAid Extractor может использовать копию метаданных, чтобы вытащить максимум данных (одной из функций DataGuard является периодическое сохранение снимка метаданных в резервное хранилище).
Однако, если копия метаданных устарела, а описание форматов в БД повреждено, FirstAid Extractor не может определить тип данных, и корректно извлечь данные из поврежденной БД.
Например, в таблицу добавлен столбец varchar(100). А копия метаданных есть только на момент до добавления этого столбца. При попытке вытащить данные Extractor-ом этого столбца в "выходной" таблице не будет.
Кроме того, если нет точной копии метаданных, результатом восстановления будет лишь набор таблиц, без индексов, процедур, триггеров и прочего. Такие восстановленные данные невозможно использовать с прикладной программой. Их можно использовать только для ввода в БД заново, вручную, и то, не всегда, особенно если "объект" в БД представляет собой данные в нескольких взаимосвязанных таблицах.
Комментариев нет:
Отправить комментарий