powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01578 поврежден UNDO
3 сообщений из 3, страница 1 из 1
ORA-01578 поврежден UNDO
    #39443465
GlooBus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Есть Oracle 9.2, бэкапов нет (ну как нет, только дамп 2 дневной давности)

После нескольких непроизвольных перезагрузок появилась ошибка:
Код: plsql
1.
2.
ORA-01578: ORACLE data block corrupted (file # 39, block # 373773)
ORA-01110: data file 39: 'C:\ORACLE\ORADATA\DBNAME\UNDOTBS02.DBF'



Ошибка возникает при обращении к двум таблицам

Выполнял скрипт:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select owner, segment_name, segment_type, tablespace_name
       from dba_extents
      where file_id = 39
        and 373773 between block_id
            and block_id + blocks -1;

OWNER	SEGMENT_NAME	SEGMENT_TYPE	TABLESPACE_NAME
SYS	_SYSSMU3$	TYPE2 UNDO	UNDOTBS1



Далее я в init.ora (база без spfile) изменил undo_management и добавил сегмент:
Код: plsql
1.
2.
3.
undo_management=MANUAL
_offline_rollback_segments="_SYSSMU3$"
_corrupted_rollback_segments="_SYSSMU3$"



Далее стартанул базу и в следующем порядке:
Код: plsql
1.
2.
3.
create undo tablespace undotbs2 datafile ' C:\oracle\oradata\dbname\undotbs201.dbf' size 500m;
alter tablespace undotbs1 offline;
shutdown immediate



Старый UNDOTBS1 не удалял.
Далее опять правлю в init.ora и убираю *_rollback_segments
Код: plsql
1.
2.
undo_management=AUTO
undo_tablespace=UNDOTBS2



Стартую базу... При попытке опять обратиться к той же таблице, уже возникает другая ошибка:
Код: plsql
1.
2.
ORA-00376: file 2 cannot be read at this time 
ORA-01110: data file 2: 'C:\ORACLE\ORADATA\DBNAME\UNDOTBS01.DBF'



Дальше стопор!
Подскажите что сделать можно? Может изначально не правильно двигался?
...
Рейтинг: 0 / 0
ORA-01578 поврежден UNDO
    #39443748
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верни ТП в ONLINE и попробуй грохнуть его. Если разрешит -- все в порядке.
Можно попробовать менее радикально -- поприбивать оставшиеся там ROLLBACK сегменты и уменьшить размер файла до пары мегабайт и пусть болтается.

У меня так дополнительное UNDO болталось на 9.2 несколько лет до апгрейда
...
Рейтинг: 0 / 0
ORA-01578 поврежден UNDO
    #39444000
GlooBus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,

Да, спасибо большое! Не нужно было оффлан выводить!
По пытался удалить старое битое UNDOTBS1 мне ругнулся что мешает сегмент _SYSSMU3$

Заново подправил init.ora:
Код: plsql
1.
2.
3.
4.
5.
undo_management=MANUAL
...
undo_tablespace=UNDOTBS2
_offline_rollback_segments="_SYSSMU3$"
_corrupted_rollback_segments="_SYSSMU3$"



После чего все отлично удалилось!

Вернул init.ora обратно в вид:
Код: plsql
1.
2.
3.
undo_management=AUTO
...
undo_tablespace=UNDOTBS2



Стартанул базу, проверил select count(*) к тем проблемным таблицам, все прошло нормально!
Сейчас снимается дамп.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01578 поврежден UNDO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]