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

Эта возможность становится реальной, если на все колонки таблицы существует индекс. Точнее – можно получить из индексных сегментов информацию, хранящуюся в них, не смотря на то, что соответствующие блоки таблицы повреждены. далее


В продолжение темы . Индекс на основе B* - дерева состоит из узловых и листовых блоков. Листовые блоки образуют двусвязный список. То есть блоки индекса последовательно связаны между собой ссылками. Но это совершенно не значит, что в сегменте индекса они размещены упорядочено. Вероятнее всего оракл их кладет туда в произвольном порядке. далее

Тэги: индексы

Комментариев нет


Появился у меня в базе один битый блок: ORA-01578: Oracle data block corrupted (file ..., block ...). По указанному номеру файла и номеру блока запросом далее


На основном сервере создали еще один файл данных для существующего табличного пространства. Однако как оказалось на standby сервере был установлен параметр инициализации STANDBY_FILE_MANAGEMENT в значение MANUAL. Поэтому на стэндбае файл данных не был создан автоматически. В алерте получили следующее сообщение: далее


Oracle в индексах на основе B* - дерева не содержит неопределенных ключей. То есть если в таблице есть запись у которой по всем ключам индекса стоит NULL, то индекс соответствующей записи не имеет.

Хорошо это или плохо? далее

Тэги: индексы

Комментариев нет


Как известно из документации, индекс на основе B* - дерева не содержит неопределенных значений. То есть, если таблица содержит записи, у которых все ключи индекса имеют значение NULL, то такие записи в индекс не попадают. Если хотя бы одно значение ключа не является NULL, такая запись попадает в индекс. Найдем простейшее доказательство этого утверждения. далее

Тэги: индексы

Комментариев нет


Как минимум есть три варианта: SKIP_CORRUPT_BLOCKS, ROWID Range Scans и PL/SQL скрипт. Сейчас понемногу о каждом.

далее


Когда встречается такое повреждение блока данных базы Oracle, первым делом определяемся с именем и типом сегмента, которому принадлежит поврежденный блок. Чаще всего блок может принадлежать либо табличному, либо индексному сегменту. далее


INDEX RANGE SCAN - просмотр диапазона по индексу. Как оракл его выполняет? Для индекса на основе B* - дерева листовые блоки образуют двухсвязный список. Такая организация листовых блоков индекса при поиске позволяет не просматривать каждый раз всю индексную структуру сверху вниз, а достаточно спустившись один раз к необходимому начальному листовому блоку дальше двигаться по порядку только по листовым блокам. далее

Тэги: индексы

Комментариев нет


Если вы уже решили, что индекс нужно перепаковать, то есть как минимум три варианта как это можно сделать:

alter index table1_index1 coalesce;
alter index table1_index1 rebuild;
alter index table1_iindex1 rebuild online;

Взвесим все ЗА и ПРОТИВ для каждой команды. далее



« назад

вперед »

 

От авторов блога

О Блоге - прочитай перед началом.

Зарегистрируйтесь и комментируйте без заморочек

Задать вопрос и получить ответ - уже решено 88 вопросов

Глоссарий - список терминов и сокращений

На блоге умеренно размещаю рекламу. Счетчик посещаемости:


 
 

Бизнес форум

Последние темы:

О мифах вокруг стандартов UNIDO
06 вересня, 1 ответа
Открытие свадебного салона.
06 вересня, 1 ответа