|
|
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Help, Помогите разобраться. На долгих(до 40мин ) UPDATE (parallel DML 16, parallel 30 ) стали выскакивать эти ошибки. UNDO у базы 100ГБ, undo_retention с 10 часов уменьшал до 60, 30, ... 5 минут - не помогает. Причем еще "вчера" эти запросы работали. Код: plsql 1. 2. 3. 4. Что делать? Уменьшать parallel? CPU E5-2690 - 8 ядер, 16 потоков. Мне не до конца понятно как работает сохранение информации в UNDO. Я считал, что после перезагрузки UNDO должно сбрасываться, но после рестарта размер не меняется, и она не помогает с этой проблемой. И потом, уменьшение undo_retention должно оставлять достаточно места - но тоже не срабатывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 06:43 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Кеклик_25Мне не до конца понятно как работает сохранение информации в UNDO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 07:02 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. после того как вышла эта ошибка, повторный запуск update сразу вылетает с этой же ошибкой. После перезапуска базы он долго работает и потом сыпется(вчера работал). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 07:04 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Viewer , дык объясните..., что сделать? Я знаю для чего нужно UNDO, в частности для поддержки согласованности по чтению. Но ведь перезагрузка базы убирает все транзакции - значит и нет смысла держать сегменты выделенные им ранее. К тому же UPDATE'ы прошедшие до проблемного были закомичены- т.е. тоже их в крайнем случае можно затереть. Даже если это и нарушит undo_retention, но последней установил явно достаточным(5мин), не требующим много места, по сравнению с размером самого UNDO = 100ГБ. Что за 5 минут забивается 100ГБ? Объясните? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 07:10 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
select retention from dba_tablespaces where contents='UNDO'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 07:23 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 07:31 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
В общем большого выбора у тебя нет Или прождать 10 часов, чтоб UNEXPIRED экстенты переехали в EXPIRED (да и в зависимости от версии ты можешь этого и не дождаться из-за багов) Либо создать новое, перейти на него, а старое потом дропнуть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 07:41 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Естественно, стоит проверить, не выполняется ли у тебя сейчас откат какой-либо длинной транзакции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 07:42 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Вячеслав спасибо за советы. Я же базу перегружаю, т.е. чужих транзакций нет. авторИли прождать 10 часов, чтоб UNEXPIRED экстенты переехали в EXPIRED (да и в зависимости от версии ты можешь этого и не дождаться из-за багов) Вот же блин ... сдается мне что тут баги, иначе как вообще объяснить, что на днях эти UPDATE работали, а сегодня глюкают? Или тестируя эти запросы я и забил UNDO? Есть ли тут эти баги и откуда взялось 10 часов, если я пытаюсь задать минимальное время(5мин) для undo_retention? - SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production PL/SQL Release 11.2.0.3.0 - Production CORE 11.2.0.3.0 Production TNS for Linux: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - Production Зачем держать эти экстенты ПОСЛЕ перезагрузки? авторЛибо создать новое, перейти на него, а старое потом дропнуть А даст он на новое переключиться? И тут же вопрос - если даст, то значит ничего там "бесценного" нет и почему Oracle сам не отдает эти экстенты активным транзакциям, там где они реально нужны? Я так понял, если сделать PLSQL блок с update в цикле(можно по rowid, bulk...) - это тоже тут не поможет, так как просто забито UNDO? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 07:59 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Кеклик_25Я же базу перегружаю, т.е. чужих транзакций нет.Ну если ты перегрузил когда твой страшный UPDATE еще работал (или уже отработал, но ты не закоммитил его) -- это ведь откатить надо Кеклик_25откуда взялось 10 часов, если я пытаюсь задать минимальное время(5мин) для undo_retention? -Ты ведь меняешь уже для новых -- для старых так и осталось то значение, которое было на момент создания Кеклик_25SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production PL/SQL Release 11.2.0.3.0 - Production CORE 11.2.0.3.0 Production TNS for Linux: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - ProductionНавскидку, здесь уже должно быть номально (явные баги, когда экстент оставался в статусе UNEXPIRED, были полечены еще в 10.2) Кеклик_25Зачем держать эти экстенты ПОСЛЕ перезагрузки?Да как бы ораклу фиолетово на перезагрузку -- он только темп подчищает (точнее, просто переинициализирует пул) Зачищать UNDO, SHRINK-ать таблицы и индексы -- слишком много чести. Он даже незакомиченные транзакции лениво откатывает, а что уж говорить об отложенной очистке блоков авторЛибо создать новое, перейти на него, а старое потом дропнуть А даст он на новое переключиться? И тут же вопрос - если даст, то значит ничего там "бесценного" нет и почему Oracle сам не отдает эти экстенты активным транзакциям, там где они реально нужны? Я так понял, если сделать PLSQL блок с update в цикле(можно по rowid, bulk...) - это тоже тут не поможет, так как просто забито UNDO?[/quot]Переключиться даст, тут он помешать не в силах И, может, даже старое удалить разрешит, хотя оно ему время от времени будет нужно и он будет гневно срать в alert.log Но со временем забудет А можно просто подождать с удалением старого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 08:14 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Кеклик_25, после перезагрузки БД - смело можно создать новое UNDO и переклюбчиться на него, после чего со временм старое удалить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 08:15 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровНу если ты перегрузил когда твой страшный UPDATE еще работал (или уже отработал, но ты не закоммитил его) -- это ведь откатить надо Не, ну базу торможу shutdown immediate - он должен сам откатить все транзакции... Да и не делал так(перегрузка во время работы update) ... Ты ведь меняешь уже для новых -- для старых так и осталось то значение, которое было на момент создания упс, точно ....было 10 часов ... Да как бы ораклу фиолетово на перезагрузку -- он только темп подчищает (точнее, просто переинициализирует пул) Зачищать UNDO, SHRINK-ать таблицы и индексы -- слишком много чести. Он даже незакомиченные транзакции лениво откатывает, а что уж говорить об отложенной очистке блоков Мне это непонятно - я могу переключится на другое UNDO - ведь это значит, что ничего ценного в текущем undo нет. И вместо того чтобы выделить эти эктенты, для активной транзакции, Oracle рубит запрос, роняя приложение. Кстати, я считал, что undo информация по закомиченным транзакциям может быть перезатерта даже в нарушение undo_retention - это выходит не так? Вроде так было в 7-8i? авторПереключиться даст, тут он помешать не в силах И, может, даже старое удалить разрешит, хотя оно ему время от времени будет нужно и он будет гневно срать в alert.log Но со временем забудет А можно просто подождать с удалением старого Спасибо за науку, но тут явный перебор у Oracle. Дает переключится - значит нет активных транзакций в UNDO... - и значит валом места... - нет же, хранит... Надо аккуратнее с undo_retention.... trace.log после перезагрузки БД - смело можно создать новое UNDO и переклюбчиться на него, после чего со временм старое удалить. Ну так и сделаю, удалю позже... Остался вопрос - если сделать PLSQL блок с update в цикле с коммитами (можно по rowid, bulk...) - это тоже тут не поможет, так как просто забито UNDO? Обычно такие UPDATE в случае проблем разбивают....(но там снапшот ту олд...). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 08:36 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Кеклик_25Да как бы ораклу фиолетово на перезагрузку -- он только темп подчищает (точнее, просто переинициализирует пул) Зачищать UNDO, SHRINK-ать таблицы и индексы -- слишком много чести. Он даже незакомиченные транзакции лениво откатывает, а что уж говорить об отложенной очистке блоков Мне это непонятно - я могу переключится на другое UNDO - ведь это значит, что ничего ценного в текущем undo нет.Переключиться -- это не значит потерять старую инфу Кеклик_25И вместо того чтобы выделить эти эктенты, для активной транзакции, Oracle рубит запрос, роняя приложение. Кстати, я считал, что undo информация по закомиченным транзакциям может быть перезатерта даже в нарушение undo_retention - это выходит не так?По идее должна быть и перезатерта Вот только я подозреваю следующий сценарий: -- стояло AUTOEXTEND (и 10 часов) -- увидел, что слишком подросло, отменил AUTOEXTEND и начал играться с UNDO_RETENTION Вот только те экстенты которые были выделены при AUTOEXTEND имеют жесткую привязку к UNDO_RETENTION на момент создания, в то время как при фиксированном размере UNDO_RETENTION расчитывается автоматически и наверное не столь критично к нарушению Ну, точнее, это такая гипотеза Кеклик_25Вроде так было в 7-8i?В 7-8 Automatic Undo Management вообще не было :-) А вот в 9.2 я натыкался, что UNEXPECTED не освобождались и не переводились в EXPIRED Кеклик_25авторПереключиться даст, тут он помешать не в силах И, может, даже старое удалить разрешит, хотя оно ему время от времени будет нужно и он будет гневно срать в alert.log Но со временем забудет А можно просто подождать с удалением старого Спасибо за науку, но тут явный перебор у Oracle. Дает переключится - значит нет активных транзакций в UNDO... - и значит валом места... - нет же, хранит... Надо аккуратнее с undo_retention.... А вдруг ты Flashback Query забабахаешь? И будешь возмущаться -- UNDO_RETENTION еще позволяет, а мне ORA-01555 лезет Кеклик_25Остался вопрос - если сделать PLSQL блок с update в цикле с коммитами (можно по rowid, bulk...) - это тоже тут не поможет, так как просто забито UNDO? Обычно такие UPDATE в случае проблем разбивают....(но там снапшот ту олд...).Ну дык, если просто нет места в текущем UNDO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 09:06 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Кстати, я считал, что undo информация по закомиченным транзакциям может быть перезатерта даже в нарушение undo_retention - это выходит не так? Вроде так было в 7-8i? В 7-8 не было ни undo_retention, ни undo tablespace. Rollback segments и никаких undo :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 09:12 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
А если в линуксе дату перевести вперед перед запуском базы - освободит он UNEXPIRED экстенты? Это ради интереса просто, делать так не буду, т.к. придется еще и отключать ntpd. Хотя не сложно... Кстати, я вчера вечером уменьшал уже undo_retention задавал час по-моему - почему до сих пор столько UNEXPIRED экстентов? Т.е. 10 часов давно прошло.... Вячеслав ЛюбомудровПо идее должна быть и перезатерта Вот только я подозреваю следующий сценарий: -- стояло AUTOEXTEND (и 10 часов) -- увидел, что слишком подросло, отменил AUTOEXTEND и начал играться с UNDO_RETENTION Вот только те экстенты которые были выделены при AUTOEXTEND имеют жесткую привязку к UNDO_RETENTION на момент создания, в то время как при фиксированном размере UNDO_RETENTION расчитывается автоматически и наверное не столь критично к нарушению Ну, точнее, это такая гипотеза Не знал об этой особености связки AUTOEXTEND + UNDO. Правда и не видел ни одной системы с AUTOEXTEND на UNDO. В этом случае было и есть 100ГБ. И мне непонятна эта ошибка. Вячеслав ЛюбомудровВ 7-8 Automatic Undo Management вообще не было :-) Undo Management не было, но движение экстентов по кругу было, и "закомиченные" undo экстенты, отдавались активным транзакциям, даже в нарушение UNDO_RETENTION. Там вообще можно было длинной транзакции прицепить отдельный кусок "undo". Что сейчас могло бы сработать. А вот в 9.2 я натыкался, что UNEXPECTED не освобождались и не переводились в EXPIRED вот очень на то похоже. А вдруг ты Flashback Query забабахаешь? И будешь возмущаться -- UNDO_RETENTION еще позволяет, а мне ORA-01555 лезет Да, понятно, должен держать и после рестарта базы, но не должен держать закомиченные экстенты в ущерб активным транзакциям. Ну дык, если просто нет места в текущем UNDO м-да, придётся шлепать UNDO TS, благо это разовый UPDATE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 09:37 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Кеклик_25Undo Management не было, но движение экстентов по кругу было, и "закомиченные" undo экстенты, отдавались активным транзакциям, даже в нарушение UNDO_RETENTION. Там вообще можно было длинной транзакции прицепить отдельный кусок "undo". Что сейчас могло бы сработать. Ты путаешь с rollback-сегментами Которые вообще ни о каком времени удержания не знали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 09:55 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровТы путаешь с rollback-сегментами Которые вообще ни о каком времени удержания не знали Да, конечно UNDO_RETENTION там не было, уже забывать стал названия и детали, но общие концепты не поменялись. Закомиченные экстенты они не держали, если не хватало места активным транзакциям. Undo managment просто автоматизировал процесс управления этими rollback-сегментами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 10:03 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
При создании UNDO TS есть опция FLASHBACK OFF; FLASHBACK ON; Как считаете, имеет смысл использовать на временном TS на время этих UPDATE FLASHBACK OFF ? Потом переключу на старое, у меня под него была выделена отдельная FS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 11:09 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Т.е. будут опции: RETENTION NOGUARANTEE FLASHBACK OFF; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 11:12 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Нет такой опции для UNDO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 12:30 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Оно тут не из этой оперы, но такая опция есть для создания любого TS. flashback_mode_clause ::= http://oracle.su/docs/11g/server.112/e10592/statements_7003.htm | FLASHBACK { ON | OFF } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 14:06 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Кеклик_25Оно тут не из этой оперы, но такая опция есть для создания любого TS. выж не любое создаёте, а конкретное... http://oracle.su/docs/11g/server.112/e10592/statements_7003.htm#CJAFDEIF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 14:15 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Кеклик_25, для разового апдейта можно шлепать новое UNDO с теми параметрами, которые вам нужны, после апдейта все вернете в зад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 14:16 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
ViewerКеклик_25Оно тут не из этой оперы, но такая опция есть для создания любого TS. выж не любое создаёте, а конкретное... http://oracle.su/docs/11g/server.112/e10592/statements_7003.htm#CJAFDEIF Sorry "Акелла промахнулся" http://oracle.su/docs/11g/server.112/e10592/statements_7003.htm#CJAJHGDA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 14:20 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Тогда уж https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_7003.htm#i2174630 This clause is not valid for temporary or undo tablespaces. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 14:27 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Но не ругается если есть в CREATE UNDO TABLESPACE и по умолчанию при создании базы делается с FLASHBACK ON; :) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Включая UNDO. А если создать новое UNDO TS c FLASHBACK OFF там будет NO. Нажал CTRL+C в sqlplus на кривом UPDATE, висит уже долго, как посмотреть, что запрос начал откатываться? По buffer_gets, disk_reads(V$SQLAREA ) вижу, что запрос не бежит дальше(не меняется число блоков), но как понять, что идет откат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 16:07 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
trace.logКеклик_25, для разового апдейта можно шлепать новое UNDO с теми параметрами, которые вам нужны, после апдейта все вернете в зад. Так и буду делать, как раньше задавали отдельный rollback-кусок для долгих транзакций. Еще у меня создалось впечатление, что tuned_undoretention работает, даже при не нулевом undo_retention и без autoextend. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2017, 16:15 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Он именно при NOAUTOEXTEND и работает Как вариант отключения (точнее изменения алгоритма расчета) -- установить AUTOEXTEND и выставить MAXSIZE в текущий размер. Тогда он будет скакать от UNDO_RETENTION, а при недостатке места пытаться расширить. При достижении MAXSIZE начнет отбирать у UNEXPIRED. About the Undo Retention Period ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 04:42 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровВ общем большого выбора у тебя нет Или прождать 10 часов, чтоб UNEXPIRED экстенты переехали в EXPIRED (да и в зависимости от версии ты можешь этого и не дождаться из-за багов) Либо создать новое, перейти на него, а старое потом дропнуть Не надо ждать, ... Этакий flush UNEXPIRED :) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Достаточно выключить _undo_autotune , чтобы перегнать UNEXPIRED в EXPIRED. Теперь можно запускать тяжелые UPDATE с меньшей вероятностью ORA-30036, ну и undo_retention поставить вменяемое заранее. Как я понял, undo autotune выкручивает tuned_undoretention в максимально возможные значения, стараясь держать экстенты как можно дольше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 08:34 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Так а чем не нравится UNEXPIRED ? Это же штатное поведение. Oracle делает максимально возможную undo retention при настройках как у автора. Параметр undo_retention игнорируется, как и должно быть. UNDO_RETENTIONFor fixed- size undo tablespaces, the system automatically tunes for the maximum possible undo retention period, based on undo tablespace size and usage history, and ignores UNDO_RETENTION unless retention guarantee is enabled. Это не ACTIVE же и могут использоваться транзакциями. Автор запускает update который не помещается в UNDO, транзакция падает через 40 мин. Сразу после этого она падает, т.к. откат идет. Тут как-бы либо UNDO увеличивать, либо уменьшать генерацию UNDO, либо разбивать один update на несколько с commit. Ну а 16 потоков за 40 мин запросто 100 гиг нагенерят. 2.6 МБ в секунду на поток всего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 09:00 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
wurduТак а чем не нравится UNEXPIRED ? Это же штатное поведение. Oracle делает максимально возможную undo retention при настройках как у автора. Параметр undo_retention игнорируется, как и должно быть. . Так-то оно так, и UNEXPIRED должны раздаваться активным транзакциям, но если бы банально не хватало UNDO, запрос бы ни разу не выполнился. А ведь утверждается, что он ранее выполнялся, потом перестал и даже на "чистой" базе, после рестарта, когда нет чужих активных транзакций, получал ORA-30036. 1951355.1, 1951351.1 - там говорится, что раздутое значение TUNED_UNDORETENTION может быть причиной этой ошибки, также как и банальная нехватка места. Есть еще баг 9327524 ( TUNED_UNDORETENTION ) пофиксенный аж в 12.1., как раз связан с неправильным значением TUNED_UNDORETENTION, если была нагрузка перед остановом-запуском базы. Может там формула какая-то, срабатывающая при больших значениях TUNED_UNDORETENTION, и придерживающая в таких случаях UNEXPIRED от раздачи активным транзакциям, ну и баги не отменяли. 1951351.1 - там даже описан случай, когда можно получить эту ошибку, имея основное количество Expired экстентов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 13:29 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
В любом случае -- юзать недокументированные параметры, когда того же самого результата можно добиться документированными -- не очень приветствуется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 13:44 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Ну есть же v$transaction где точно видно сколько update съел undo. Без всяких гаданий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 14:04 |
|
||
|
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
|
|||
|---|---|---|---|
|
#18+
Была запарка не мог ответить. Код: sql 1. Реально это тогда помогло, всем спасибо! Не пробовал на undo autoextend ставить - видимо тоже сработает, но мне проще отключить _undo_autotune в подобных системах через pfile. Как я понял, параметр этот хоть и скрытый, но уже бывалый, с "десятки" живет и глюков с этим TUNED_UNDORETENTION было(и есть) предостаточно. Думаю попал упомянутый баг, когда после активной фазы DML идет ребут и неправильно вычисляется TUNED_UNDORETENTION. Как раз проблемы появились когда в ходе тестов я понял, что надо перевести базу в noarchivelog на время DML(иначе архивами заваливает диск, ну и быстрее без archivelog). Тестировал, перегрузил с noarchivelog .... - скрипты перестали работать и TUNED_UNDORETENTION действительно несуразное было сразу после рестарта. После установки параметра, размер UNDO стал вменяемым, больше половины не заполнялся. Я даже подумал перевести все базы на этот режим, чтобы самому задавать undo_retention(так понятнее), чем этот сам себе "режиссерерный" режим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 10:49 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1885908]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 440ms |

| 0 / 0 |
