12.12.2015 17:39
OlegON
 
Для начала необходимо понимать, что такое RBA
Цитата:
Redo Byte Address (RBA)

An RBA points to a specific location in a particular redo thread. It
is ten bytes long and has three components: log sequence number,
block number within log, and byte number within block.
Упоминание rba идет во многих журналах, каким образом получить из него номера файла и блока?

Возьмем, извините, тестовый произвольный, например
Index root = tsn: 4 rdba: 0x00d00428b

Для начала надо перевести 0x00d00428b в десятичное число (из шестнадцатиричного). Это может любой нормальный калькулятор.
0x00d00428b=218120843

Затем выполняете следующий запрос
SQL код:
select dbms_utility.data_block_address_file(218120843"Rfile",dbms_utility.data_block_address_block(218120843"Block"
from dual
и получаем нечто вроде
Цитата:
Rfile Block
---------- ----------
12 23491
чтобы узнать, какому сегменту соответствуют значения, подставляем эти числа в следующий запрос
SQL код:
select ownersegment_namesegment_type
from dba_segments
where header_file 
12 and header_block 23491
что на выходе даст искомый сегмент.
Часовой пояс GMT +3, время: 08:33.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.