powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01548: active rollback segment
15 сообщений из 15, страница 1 из 1
ORA-01548: active rollback segment
    #38718720
Ceib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Во время операции импорта (IMP_DP) переполнился сегмент отката, процесс завис намертво, прерывать пришлось аварийно. UNDO так и остался заполненным в статусе ACTIVE вся память табличного пространства. Создал новый сегмент, переключился на него:

Код: plsql
1.
2.
3.
create undo tablespace UNDOTBS1 datafile 'C:\APP\RA\ORADATA\RA\UNDOTBS1.DBF' size 300M;
ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS1;
drop tablespace UNDOTBS2 including contents and datafiles;


Последняя операция не прошла, выяснилось, что появился некий сегмент со статусом PARTLY AVAILABLE:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select segment_name, tablespace_name, status from dba_rollback_segs where tablespace_name='UNDOTBS2'

SEGMENT_NAME                   TABLESPACE_NAME                STATUS         
------------------------------ ------------------------------ ----------------
_SYSSMU36_3515635829$          UNDOTBS2                       PARTLY AVAILABLE   
_SYSSMU37_1833855021$          UNDOTBS2                       OFFLINE          
_SYSSMU38_1310123677$          UNDOTBS2                       OFFLINE          
_SYSSMU39_3110269489$          UNDOTBS2                       OFFLINE          
_SYSSMU40_1231397611$          UNDOTBS2                       OFFLINE  

Нашел руководство по которому дошел до пункта
Код: plaintext
 alter database datafile ‘/app/oracle/oradata/RA/undotbs2.dbf’ offline drop;
. Файл удалился, но сегмент отказывается удаляться:
Код: plsql
1.
2.
3.
 drop rollback segment "_SYSSMU36_3515635829$";
ORA-30025: Сегмент DROP '_SYSSMU36_3515635829$' (в табличном пространстве отмен) запрещен
30025. 00000 -  "DROP segment '%s' (in undo tablespace) not allowed"



Теперь имеется следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select segment_name, tablespace_name, status from dba_rollback_segs where tablespace_name='UNDOTBS2'

SEGMENT_NAME                   TABLESPACE_NAME                STATUS         
------------------------------ ------------------------------ ----------------
_SYSSMU36_3515635829$          UNDOTBS2                       NEEDS RECOVERY  
_SYSSMU37_1833855021$          UNDOTBS2                       OFFLINE          
_SYSSMU38_1310123677$          UNDOTBS2                       OFFLINE          
_SYSSMU39_3110269489$          UNDOTBS2                       OFFLINE          
_SYSSMU40_1231397611$          UNDOTBS2                       OFFLINE  

Таблица, в которую производился импорт реагирует следующим образом:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
truncate table ra_object_geodata

SQL Error: ORA-29859: возникла ошибка при выполнении программы ODCIINDEXTRUNCATE
ORA-13249: Stmt-Execute Failure: TRUNCATE TABLE RUSAGRO.MDRT_3BE7F$
ORA-29400: ошибка данных картриджа
ORA-00376: в данный момент файл 14 не может быть прочитан
ORA-01110: файл данных 14: 'C:\APP\RA\ORADATA\RUSAGRO\UNDOTBS2.DBF'
ORA-06512: на  "MDSYS.SDO_INDEX_METHOD_10I", line 43
29859. 00000 -  "error occurred in the execution of ODCIINDEXTRUNCATE routine"
*Cause:    Failed to successfully execute the ODCIIndexTruncate routine.
*Action:   Check to see if the routine has been coded correctly.



Подскажите, как исправить ситуацию?
...
Рейтинг: 0 / 0
ORA-01548: active rollback segment
    #38718736
Ceib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавлю:

Код: plsql
1.
2.
3.
4.
5.
Alter tablespace UNDOTBS2 online;

SQL Error: ORA-01113: для файла 14 требуется восстановление носителя
ORA-01110: файл данных 14: 'C:\APP\RA\ORADATA\RA\UNDOTBS2.DBF'
01113. 00000 -  "file %s needs media recovery"
...
Рейтинг: 0 / 0
ORA-01548: active rollback segment
    #38718754
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ceib,

А просто дать транзакциям завершиться не пробовал?
...
Рейтинг: 0 / 0
ORA-01548: active rollback segment
    #38718765
Ceib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-Ceib,

А просто дать транзакциям завершиться не пробовал?

Во время выполнения импорта (после переполнения UNDO) все зависло, никакой активности не наблюдалось. После прерывания процесса подождал несколько часов (при том, что импорт на момент остановки не продолжался и часа) - откат не произошел, пришлось переходить к экстренным мерам, тем более что накануне на другой табличке в аналогичной ситуации аналогичное прерывание процесса с пересозданием табличного пространства прошло без проблем.
...
Рейтинг: 0 / 0
ORA-01548: active rollback segment
    #38718925
AG#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ceib,

отложенный rollback (deferred rollback)
...
Рейтинг: 0 / 0
ORA-01548: active rollback segment
    #38718926
AG#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ORA-01548: active rollback segment
    #38718927
AG#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMON че кажет в логах ?
...
Рейтинг: 0 / 0
ORA-01548: active rollback segment
    #38718928
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да че кажет -- срет он там кирпичами, что не может прочитать файл старого пространства отката, который наш герой нашел способ удалить (ведь предупреждала его команда DROP TABLESPACE, но нет, он нашел лом)

А аффтару, похоже, придется все начинать сначала (с создания чистой БД)
...
Рейтинг: 0 / 0
ORA-01548: active rollback segment
    #38719007
Ceib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
RECOVER DATAFILE 14;

Файл восстановился, пошел процесс отката. Сижу, жду, надеюсь на лучшее.
...
Рейтинг: 0 / 0
ORA-01548: active rollback segment
    #38719231
AG#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drop tablespace UNDOTBS2....drop rollback segment.... круто... что сказать :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ORA-01548: active rollback segment
    #40090123
Ondayl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
А если drop tablespace UNDOTBS2 including contents and datafiles; прошел сразу, но файл остался, почему это могло произойти и что с этим делать?
...
Рейтинг: 0 / 0
ORA-01548: active rollback segment
    #40090131
Фотография shane54
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ondayl
... и что с этим делать?


Базу перезагрузить (когда сможете).
У Вас ведь Unix*, правда?
...
Рейтинг: 0 / 0
ORA-01548: active rollback segment
    #40090185
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ondayl,

lsof |grep <имя файла>

если никто не держит, просто удалить руками
...
Рейтинг: 0 / 0
ORA-01548: active rollback segment
    #40090442
Ondayl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я понял
...
Рейтинг: 0 / 0
ORA-01548: active rollback segment
    #40090549
Фотография shane54
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
landy
если никто не держит, просто удалить руками


Я на это и намекал - была же старая история, что то ли на Linux'е, то ли на Solaris'е (то ли и там и там) нельзя было удалить файл, который "держит" какой-то из процессов Oracle. И помогал только рестарт базы (или ASM), причём это все смешно до тех пор пока ситуация не упиралась в нехватку места. Удаляешь Tablespace, файлы на месте. Удаляешь файлы из ОС - команда (rm) отрабатывает без ошибки, но файл на месте (и места свободного не становится больше). Были вроде и баги зарегистрированы на MOS по этой теме, и может даже патчи соответствующие. Правда, был трюк - не удалять датафайл, а уменьшить его размер, если файл внутри пустой (но это нужно было заранее догадаться, что будут такие проблемы, и сразу же идти по пути уменьшения файлов, а не удаления. Хотя я тут подумал - возможно прокатил бы вариант, если TBS удалён, но файл остался - попытаться снова добавить его к базе через ALTER TABLESPACE ADD DATAFILE <file> REUSE - может быть получилось бы). Доходило до смешного - можно было "студентов пугать" - удалить всю базу, все файлы данных базы (rm -rf *.dbf) - но база продолжала работать как ни в чем не бывало. И можно было (если файлы базы удалили по ошибке), скрестив пальцы, чтобы база не включилась, быстренько базу забекапить, и тем самым ее не потерять. И потом уже reboot - и все, файлы таки пропадали, и место появлялось. Но это я уже отвлёкся.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01548: active rollback segment
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (8): Анонимы (5), Bing Bot 1 мин., Yandex Bot 3 мин., CerebroSQL 5 мин.
Пользователи онлайн (8): Анонимы (5), Yandex Bot, Bing Bot 1 мин., CerebroSQL 4 мин.
x
x
Закрыть


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