|
|
|
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?fid=52&msg=39454310&tid=1885908]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
180ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 477ms |

| 0 / 0 |
