13ноя Как зная Dba получить file# и block#?

Предположим, что Вы знаете DBA для битого (сorrupted) блока. Именно адрес DBA нам выдает утилита DBVerify. Так как нам нужно найти объект, которому принадлежит этот блок, то нам нужно знать file# и block#, чтобы выпонив следующий запрос, найти объект:

select owner,segment_name,segment_type, EXTENT_ID, BLOCK_ID from dba_extents where file_id=file# and block# between  block_id and block_id+blocks-1;

Так как Data Block Address (DBA) идентифицирует блок базы данных, для работы с ним можно использовать функции dbms_utility.make_data_block_address, data_block_address_file, data_block_address_block. То с помощью запроса мы получим необходимые нам данные:

select dbms_utility.data_block_address_file([dba]) file#, dbms_utility.data_block_address_block([dba]) block# from dual;

Комментарии (0)



Новый комментарий

Имя
Электронная почта
 
Ваш сайт
Защита от спама: укажите сумму 1 + 9
   
 

Поиск по блогам



Подпишись на RSS:

RSS - Подписаться на блог



Читателям


Рекомендую к прочтению





Разделы блога



Последние публикации



Последние коментарии