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

Во время операции импорта (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
12.08.2014, 19:33
    #38718736
Ceib
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01548: active rollback segment
Добавлю:

Код: 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
12.08.2014, 19:55
    #38718754
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01548: active rollback segment
Ceib,

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

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

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

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

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

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


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

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

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


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


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