Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 восстановление битого индекса  [new]
max5775
Member

Откуда:
Сообщений: 98
Здравствуйте.
В алерт-логе выскочило:

автор
Corrupt Block Found
TSN = 6, TSNAME = PRIEMDATA
RFN = 5, BLK = 285747, RDBA = 21257267
OBJN = 134840, OBJD = 154067, OBJECT = Бїёґ_ї°ЖёµЅВ, SUBOBJECT =
SEGMENT OWNER = STAT, SEGMENT TYPE = Table Segment


Проверил через DBV все dbf-файлы базы и нашел одну ошибку
в собственно файле PRIEMDATA.dbf и ошибку индекса в файле PRIEMINDEX.dbf

автор
Block Checking: DBA = 25276869, Block Type = KTB-managed data block
**** row 31: key out of order
---- end index block validation
Page 111045 failed with check code 6401


Сделал по совету на форуме:

автор
1. Предварительно поутшив базу делаем бекап всего того что осталось (вместе с online redo).
2. startup mount
Устанвливаем _allow_resetlogs_corruption = true
3. пробуем recover database until cancel;
cancel сразу же.
4. alter database open resetlogs;


Проверив снова через DBV ошибка в PRIEMDATA.dbf исчезла, а ошибка индекса в PRIEMINDEX.dbf так и осталась.
Посоветуйте как ее найти и исправить и на что она повлияет?
24 фев 16, 09:27    [18855893]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
trace.log
Guest
Битый индекс можно попробовать перестроить.
24 фев 16, 09:41    [18855929]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
max5775
Member

Откуда:
Сообщений: 98
trace.log,

Подскажите, как его найти и как перестроить? Я просто занимаюсь этим поскольку-постольку.
24 фев 16, 09:44    [18855937]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18487
Кто дал такой совет, того можно сразу за яйца подвешивать
Но, подозреваю, он давался совсем по другому случаю

Тебе нужно определить к какому сегменту относится сбойный блок и содержит ли он данные
Если это именно индекс, то его нужно просто перестроить
- либо командой REBUILD ONLINE
- либо перевести в UNUSABLE, а затем выполнить обычный REBUILD
24 фев 16, 09:45    [18855939]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
max5775
Member

Откуда:
Сообщений: 98
Вячеслав Любомудров,

не надо его подвешивать ))
подскжите, сейчас я базу остановил, благо имеется такая возможность
мне сейчас нужно в sqlplus выполнить команду REBUILD ONLINE и все?
24 фев 16, 09:54    [18855968]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
max5775
Member

Откуда:
Сообщений: 98
я сейчас посмотрел старые бекапы за прошлый год и прошерстил их через DBV, так вот, эта ошибка индекса была и раньше, но она не мешала
Но думаю, если есть возможность ее поправить, то надо это сделать
24 фев 16, 09:57    [18855983]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
Q.Tarantino
Member [заблокирован]

Откуда: Где-то рядом...
Сообщений: 12015
max5775
подскжите, сейчас я базу остановил, благо имеется такая возможность

зачем останавливать то??

а объект можно так найти:
SELECT relative_fno, owner, segment_name, segment_type
FROM dba_extents
WHERE file_id = номер_файла 
AND номер_блока BETWEEN block_id AND block_id + blocks - 1; 
24 фев 16, 09:57    [18855984]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
max5775
Member

Откуда:
Сообщений: 98
Q.Tarantino,

остановил, т.к писал выше - была ошибка в файле данных, которая исправилась при помощи recover database
24 фев 16, 09:58    [18855989]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18487
Только база должна быть открыта

И если установлен _allow_resetlogs_corruption, срочно убрать
Надеюсь, это еще не нанесло непоправимых повреждений БД
Все-так восстановление не аварийное
24 фев 16, 09:58    [18855991]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
max5775
Member

Откуда:
Сообщений: 98
Вячеслав Любомудров,

а как убрать?
24 фев 16, 10:00    [18855995]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18487
А как устанавливал?
24 фев 16, 10:06    [18856020]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
max5775
Member

Откуда:
Сообщений: 98
я в принципе могу разархивировать бекап до этой операции и попробовать выполнить recover database until cancel без allow_resetlogs_corruption
24 фев 16, 10:06    [18856022]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18487
Зачем вообще выполнять RECOVER?
24 фев 16, 10:07    [18856027]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
max5775
Member

Откуда:
Сообщений: 98
Вячеслав Любомудров,
устанавливал так:
alter system set "_allow_resetlogs_corruption" = true scope=spfile;
полагаю true заменить на false?
24 фев 16, 10:08    [18856034]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
max5775
Member

Откуда:
Сообщений: 98
Вячеслав Любомудров,
recover делал для этого:

автор
В алерт-логе выскочило:

Corrupt Block Found
TSN = 6, TSNAME = PRIEMDATA
RFN = 5, BLK = 285747, RDBA = 21257267
OBJN = 134840, OBJD = 154067, OBJECT = Бїёґ_ї°ЖёµЅВ, SUBOBJECT =
SEGMENT OWNER = STAT, SEGMENT TYPE = Table Segment


Проверил через DBV все dbf-файлы базы и нашел одну ошибку
в собственно файле PRIEMDATA.dbf

после recover она пропала
24 фев 16, 10:09    [18856038]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18487
alter system reset "_allow_resetlogs_corruption" scope=spfile

RECOVER для этого выполнять не надо
По крайней мере, без восстановления нормальной копии из бэкапа и наката всех требуемых архивлогов

Но, скорее на таблице была или плавающая ошибка (reread вернул нормальные данные), или там уже и нет данных
24 фев 16, 10:19    [18856069]     Ответить | Цитировать Сообщить модератору
 Re: восстановление битого индекса  [new]
max5775
Member

Откуда:
Сообщений: 98
Вячеслав Любомудров,

нет, в смысле пропали?
24 фев 16, 10:26    [18856084]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить