Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Recovery is repairing media corrupt block  [new]
Я
Guest
Есть primary и standby база данных на Oracle 8.1.7.
При накате очередного лога на standby в alert.log вижу сообщения:

Media Recovery Log D:\ORACLE\ORADATA\OBASE\ARCHIVE\ORCLT001S73575.ARC
Recovery is repairing media corrupt block 202682 of file 982
Recovery is repairing media corrupt block 125493 of file 242
Recovery is repairing media corrupt block 125494 of file 242
Recovery is repairing media corrupt block 125495 of file 242
Recovery is repairing media corrupt block 79305 of file 277

Как по номеру файла (например file 982) узнать номер физического датафайла в котором произошел crash?
30 сен 08, 15:46    [6246441]     Ответить | Цитировать Сообщить модератору
 Re: Recovery is repairing media corrupt block  [new]
Гессиан
Guest
select * from v$datafile where file# = 982
30 сен 08, 15:49    [6246461]     Ответить | Цитировать Сообщить модератору
 Re: Recovery is repairing media corrupt block  [new]
sql+
Guest
аккуратнее надо быть с nologging
30 сен 08, 16:42    [6246912]     Ответить | Цитировать Сообщить модератору
 Re: Recovery is repairing media corrupt block  [new]
sql+
Guest
Попробуй этот запрос(накропал на коленке)

select
  distinct 
  t.owner, 
  t.table_name,
  e.block_id
 from 
  dba_tables t,
  dba_extents e
 where
   t.logging='NO' and
   t.table_name = e.segment_name and
   (
   file_id=982 and 202682 between block_id and block_id+e.blocks-1 or
   file_id=242 and 125493 between block_id and block_id+e.blocks-1 or
   file_id=242 and 125494 between block_id and block_id+e.blocks-1 or
   file_id=242 and 125495 between block_id and block_id+e.blocks-1 or
   file_id=277 and 79305 between block_id and block_id+e.blocks-1            
   ) 
;   
30 сен 08, 17:00    [6247083]     Ответить | Цитировать Сообщить модератору
 Re: Recovery is repairing media corrupt block  [new]
sql+
Guest
Если с nologging не попрёт, попробуй просто:

select
  distinct 
  e.owner, 
  e.segment_name
 from 
  dba_extents e
 where
   file_id=982 and 202682 between block_id and block_id+e.blocks-1 or
   file_id=242 and 125493 between block_id and block_id+e.blocks-1 or
   file_id=242 and 125494 between block_id and block_id+e.blocks-1 or
   file_id=242 and 125495 between block_id and block_id+e.blocks-1 or
   file_id=277 and 79305 between block_id and block_id+e.blocks-1            
;   
30 сен 08, 17:10    [6247164]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить