|
|
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
ситуация, редко, но всё ещё случается, поэтому хотелось бы почитать и разобраться. нужны линки на доки ибо, советами, как приконнектиться-убить-увеличить-поднять забит весь инет заранее спасибо всем ответившим по существу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 14:34 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
ITest, Что тебя интересует? Есть лимит, при попытке породить процесс сверх лимита - валится ошибка. Можно легко напороться если на мощном железе кто-то бездумно использует ADOP. Например на одной из прошлых баз у меня ADOP был 160 (определялся по ядрам), соответственно 5 сессий с ADOP порождали 800 слейв процессов. 10 сессий уже приводили к ORA-00020. А вообще чтоб отвечали по существу, вопрос задавай по существу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 14:56 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, причины ошибки и способы борьбы/предупреждения более-менее ясны. самый главный вопрос, что происходит в ядре сразу ПОСЛЕ ORA-00020? особенно, если появляются свободные процессы, очереди размораживаются и "всё само-собой рассасывается" :) желательно, пошагово на уровне системных процессов ... ты прав, всё сводится к вопросу: "насколько можно доверять заданию, которое завершилось, вроде бы , без ошибок, но в процессе возникала пресловутая ORA-00020?" тесты (длительные), само собой, проходят для результата "на ура", но это сегодня. а завтра ORA-00020 случится в момент отката транзакции/порождения цепочки джобов и т.п. и что? доверять результату, потому что в прошлый раз всё было гут? не факт. значит снова полное тестирование результатов -- долго и накладно. вот поэтом и обратился к сообществу за линками на доки как-то так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 15:29 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
ITest, Ты пытаешься копать вглубь не поняв основ. В случае ORA-00020 просто сессия не создается. Всё. Если процессинг выполняется множественными джобами, то успешность выполнения для каждого из заданий вроде как можно проверять в логах (конкретно для ORA-00020 не задавался целью). А вообще надо понять причину превышения лимита и бороться с ней а не заниматься бесполезными ковыряниями. Если проблема в том, что факт возникновения ORA-00020 нигде не отражен, тут надо копать dbms_job/dbms_scheduler. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 15:40 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
Не очень понял, что здесь непонятного Превышено количество процессов -- это чисто ораклячия ошибка При инициализации (старте экземпляра) выделяется определенное количество памяти для всех возможных процессов (из настройки process или вытекающей из других) Этот кусок памяти статический (Fixed SGA) и не расширяется, поэтому, порождение нового процесса (попытка записать информацию о нем, а места уже нет) заставляет его самоубиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 16:05 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, положим, даже при глухом затыке новую сессию создать можно с -prelim и рестартануться :) то есть, резервы есть всегда. причины успешно поборены, но несколько раз в год случается казус -- звёзды, сэр. вот пришла ORA-00020, и, получается, что процессов записать сие событие в алертлог уже недостаточно, но хватает для трейса... как пример, всегда запрос выполнялся в 8 потоков, сейчас свободных 10/8/4. как он себя поведёт в каждом таком случае? вот про это бы прочитать где-то... я правильно понял твоё экспертное мнение, что если задание успешно доползло до финиша -- на промежуточную ORA-00020 можно забить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 16:23 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
Вячеслав, спасибо. то же вопрос к эксперту -- если задание успешно доползло до финиша -- на промежуточную ORA-00020 можно забить? или есть нюансы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 16:29 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
ITestесли задание успешно доползло до финиша -- на промежуточную ORA-00020 можно забить? ORA-00020 само по себе проблема. Ты смотришь только с точки зрения джoба - доползло до финиша за приемлемое время, ну и слава богу. А как, например, насчет интерактивых подключений? SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 16:43 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
ITestкак пример, всегда запрос выполнялся в 8 потоков, сейчас свободных 10/8/4. как он себя поведёт в каждом таком случае?Если нет возможности выделить необходимое число потоков, то он спокойно выполнится с меньшим числом слейвов чем требовалось. Вроде еще можно сконфигурить, чтоб выстраивались в очередь. Auto DOP and Parallel Statement Queuing ITestвот про это бы прочитать где-то...Гугли по "oracle white paper parallel execution" если хочешь увлекательных статей с картинками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 17:15 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
ITestесли задание успешно доползло до финиша -- на промежуточную ORA-00020 можно забить?При ORA-00020 я думаю задание либо создасться либо нет. Если же одно задание создает другие дочерние, которые могут не создаться, то ты получишь частично (обработанные) корректрые данные. Устраивает ли тебя это - это уже сам решай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 17:20 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
SY, спасибо за помощь. в этот момент интерактивых подключений нет, точно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 17:58 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, ок. данке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 17:59 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровНе очень понял, что здесь непонятного Превышено количество процессов -- это чисто ораклячия ошибка При инициализации (старте экземпляра) выделяется определенное количество памяти для всех возможных процессов (из настройки process или вытекающей из других) Этот кусок памяти статический (Fixed SGA) и не расширяется, поэтому, порождение нового процесса (попытка записать информацию о нем, а места уже нет) заставляет его самоубиться Там ещё (и в первую очередь) есть завязка на количество семафоров, ибо экземпляру при старте выделяется PROCESSES (явное или неявное)+4 семафоров, по одному на каждый фоновый процесс и 4 служебных. Топиксатартеру: не ешьте мозг людям, разбирайтесь в логике работы прикладного кода - как он обрабатывает получаемые ошибки. Сильно не советую делать обработчик таких системных сбоев - эксплуатация пожалеет. Структурно Ваша ситуация развивается так: возникла потребность породить процесс -> проверили возможность -> наткнулись на лимит, не породили -> выдали ошибку. После выдачи ошибки ничего интересного не происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2016, 21:32 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
благодарю всех ответивших, извините за задержку -- "продукцион" Scott TigerСтруктурно Ваша ситуация развивается так: возникла потребность породить процесс -> проверили возможность -> наткнулись на лимит, не породили -> выдали ошибку. После выдачи ошибки ничего интересного не происходит. ИМХО, самое интересное здесь только начинается. я правильно понимаю, что цикл некоторое время повторяется? ...выдали ошибку -> подождали -> вернулись на проверку возможности породить процесс -> проверили возможность -> наткнулись на лимит, не породили -> выдали ошибку -> подождали -> вернулись на проверку возможности породить процесс... и это продолжается, до того как: 1) появились свободные процессы, достаточные для старта -- и все счастливы; 2) по тайм-лимиту, когда ора-20 висит достаточно долго, начали отваливаться/не запускаться некие служебные процессы -- увы и ах! (какие?) к сожалению, не нашел ответа на вопрос "какой бэкграунд-процесс порождает данную ошибку?" грешил на ресурс-менеджер, но, вроде, в доках написано, что если его не активировали, то он спит себе спокойно... я хз. и основной вопрос к гуру, если внедрено планирование ресурсов через ресурс-менеджер, и ветка "продукцион", которой к примеру я выделю 80% процессов, упрётся в ограничения на свободные процессы уже по плану ресурс-менеджера, в этом случае ора-20 возникает или нет? @Scott Tiger ST>Сильно не советую делать обработчик таких системных сбоев... дык, до такого ещё не опустился... или не взлетел... :) всем удачи и доброго здоровья ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 15:32 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
ITestИМХО, самое интересное здесь только начинается. я правильно понимаю, что цикл некоторое время повторяется?Все начинается только в твоей фантазии. Как происходит по факту уже было написано упрощенно. Создается вообще впечатление, что чукча не читатель. Было дано предостаточно ифнормации для поиска. Но зачем искать если можно нафантазмировать, да? :) ITestначали отваливаться/не запускаться некие служебные процессы -- увы и ах!И наступил апокалипсис. Служебные процессы всегда работают в фоне (когда начнет "крешится" один из них - об этом будет видно в alert.log) Код: plaintext Количество процесов на джобы ограничивается параметром job_queue_processes. Про количество процесов и организацию enqueue для параллельных стейстементов можешь почитать по моим ссылкам выше. И да, это еще не берем во внимание ресурс менеджер. ITestк сожалению, не нашел ответа на вопрос "какой бэкграунд-процесс порождает данную ошибку?"Скорее всего SMON/PMON, ну что, стало легче? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 19:14 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
ITestScott TigerСтруктурно Ваша ситуация развивается так: возникла потребность породить процесс -> проверили возможность -> наткнулись на лимит, не породили -> выдали ошибку. После выдачи ошибки ничего интересного не происходит. я правильно понимаю, что цикл некоторое время повторяется? ...выдали ошибку -> подождали -> вернулись на проверку возможности породить процесс -> проверили возможность -> наткнулись на лимит, не породили -> выдали ошибку -> подождали -> вернулись на проверку возможности породить процесс... Нет. Но это не исключает повторения попытки создания процесса в результате работы более высокоуровневого кода, если он так специально написан. Но именно повторных попыток породить процесс в функции порождения процесса не будет. Получение ORA-00020 - не приглашение подолбиться в закрытую дверь ещё разок, авось получится, а вполне конкретное указание подумать над настройкой ключевых параметров экземпляра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 20:27 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopITestкак пример, всегда запрос выполнялся в 8 потоков, сейчас свободных 10/8/4. как он себя поведёт в каждом таком случае?Если нет возможности выделить необходимое число потоков, то он спокойно выполнится с меньшим числом слейвов чем требовалось. Вроде еще можно сконфигурить, чтоб выстраивались в очередь. Auto DOP and Parallel Statement Queuing ITestвот про это бы прочитать где-то...Гугли по "oracle white paper parallel execution" если хочешь увлекательных статей с картинками. Так как описано, Auto DOP and Parallel Statement Queuing не работает, при "каких-то" пограничных условиях стреляет downgrade 100%. SR весит уже несколько месяцев. ITest, выделение PX процессов можно посмотреть через трассировку _px_trace ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2016, 06:02 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
Благодарю всех ответивших. Поздравляю с новым 2017-м годом. Всем здоровья. с ув. ITest ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2016, 13:58 |
|
||
|
ORA-00020, что происходит на уровне ядра?
|
|||
|---|---|---|---|
|
#18+
Kamaeldbms_photoshopпропущено... Если нет возможности выделить необходимое число потоков, то он спокойно выполнится с меньшим числом слейвов чем требовалось. Вроде еще можно сконфигурить, чтоб выстраивались в очередь. Auto DOP and Parallel Statement Queuing пропущено... Гугли по "oracle white paper parallel execution" если хочешь увлекательных статей с картинками. Так как описано, Auto DOP and Parallel Statement Queuing не работает, при "каких-то" пограничных условиях стреляет downgrade 100%. SR весит уже несколько месяцев. ITest, выделение PX процессов можно посмотреть через трассировку _px_trace Может кому будет полезно, по SR сапорт начал пилить патч. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2017, 19:18 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=180&tid=1886630]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
170ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 439ms |

| 0 / 0 |
