powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-00020, что происходит на уровне ядра?
19 сообщений из 19, страница 1 из 1
ORA-00020, что происходит на уровне ядра?
    #39341451
ITest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ситуация, редко, но всё ещё случается,
поэтому хотелось бы почитать и разобраться.

нужны линки на доки
ибо, советами, как приконнектиться-убить-увеличить-поднять забит весь инет

заранее спасибо всем ответившим по существу
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39341459
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ITest,

Что тебя интересует? Есть лимит, при попытке породить процесс сверх лимита - валится ошибка.

Можно легко напороться если на мощном железе кто-то бездумно использует ADOP.
Например на одной из прошлых баз у меня ADOP был 160 (определялся по ядрам), соответственно 5 сессий с ADOP порождали 800 слейв процессов. 10 сессий уже приводили к ORA-00020.

А вообще чтоб отвечали по существу, вопрос задавай по существу.
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39341471
ITest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbms_photoshop,

причины ошибки и способы борьбы/предупреждения более-менее ясны.

самый главный вопрос, что происходит в ядре сразу ПОСЛЕ ORA-00020?
особенно, если появляются свободные процессы, очереди размораживаются и "всё само-собой рассасывается" :)
желательно, пошагово на уровне системных процессов ...

ты прав, всё сводится к вопросу: "насколько можно доверять заданию, которое завершилось, вроде бы , без ошибок, но в процессе возникала пресловутая ORA-00020?"
тесты (длительные), само собой, проходят для результата "на ура", но это сегодня.
а завтра ORA-00020 случится в момент отката транзакции/порождения цепочки джобов и т.п.
и что? доверять результату, потому что в прошлый раз всё было гут? не факт.
значит снова полное тестирование результатов -- долго и накладно.

вот поэтом и обратился к сообществу за линками на доки
как-то так
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39341473
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ITest,

Ты пытаешься копать вглубь не поняв основ.
В случае ORA-00020 просто сессия не создается. Всё.
Если процессинг выполняется множественными джобами, то успешность выполнения для каждого из заданий вроде как можно проверять в логах (конкретно для ORA-00020 не задавался целью).

А вообще надо понять причину превышения лимита и бороться с ней а не заниматься бесполезными ковыряниями.

Если проблема в том, что факт возникновения ORA-00020 нигде не отражен, тут надо копать dbms_job/dbms_scheduler.
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39341482
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не очень понял, что здесь непонятного
Превышено количество процессов -- это чисто ораклячия ошибка
При инициализации (старте экземпляра) выделяется определенное количество памяти для всех возможных процессов (из настройки process или вытекающей из других)
Этот кусок памяти статический (Fixed SGA) и не расширяется, поэтому, порождение нового процесса (попытка записать информацию о нем, а места уже нет) заставляет его самоубиться
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39341494
ITest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbms_photoshop,

положим, даже при глухом затыке новую сессию создать можно с -prelim и рестартануться :)
то есть, резервы есть всегда.

причины успешно поборены, но несколько раз в год случается казус -- звёзды, сэр.

вот пришла ORA-00020, и, получается, что процессов записать сие событие в алертлог уже недостаточно, но хватает для трейса...

как пример, всегда запрос выполнялся в 8 потоков, сейчас свободных 10/8/4.
как он себя поведёт в каждом таком случае?

вот про это бы прочитать где-то...

я правильно понял твоё экспертное мнение, что если задание успешно доползло до финиша -- на промежуточную ORA-00020 можно забить?
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39341497
ITest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав, спасибо.

то же вопрос к эксперту -- если задание успешно доползло до финиша -- на промежуточную ORA-00020 можно забить?
или есть нюансы?
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39341502
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ITestесли задание успешно доползло до финиша -- на промежуточную ORA-00020 можно забить?


ORA-00020 само по себе проблема. Ты смотришь только с точки зрения джoба - доползло до финиша за приемлемое время, ну и слава богу. А как, например, насчет интерактивых подключений?

SY.
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39341518
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ITestкак пример, всегда запрос выполнялся в 8 потоков, сейчас свободных 10/8/4.
как он себя поведёт в каждом таком случае?Если нет возможности выделить необходимое число потоков, то он спокойно выполнится с меньшим числом слейвов чем требовалось.
Вроде еще можно сконфигурить, чтоб выстраивались в очередь.
Auto DOP and Parallel Statement Queuing
ITestвот про это бы прочитать где-то...Гугли по "oracle white paper parallel execution" если хочешь увлекательных статей с картинками.
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39341520
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ITestесли задание успешно доползло до финиша -- на промежуточную ORA-00020 можно забить?При ORA-00020 я думаю задание либо создасться либо нет.
Если же одно задание создает другие дочерние, которые могут не создаться, то ты получишь частично (обработанные) корректрые данные.
Устраивает ли тебя это - это уже сам решай.
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39341538
ITest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY, спасибо за помощь.

в этот момент интерактивых подключений нет, точно.
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39341539
ITest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbms_photoshop,

ок. данке.
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39341635
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровНе очень понял, что здесь непонятного
Превышено количество процессов -- это чисто ораклячия ошибка
При инициализации (старте экземпляра) выделяется определенное количество памяти для всех возможных процессов (из настройки process или вытекающей из других)
Этот кусок памяти статический (Fixed SGA) и не расширяется, поэтому, порождение нового процесса (попытка записать информацию о нем, а места уже нет) заставляет его самоубиться

Там ещё (и в первую очередь) есть завязка на количество семафоров, ибо экземпляру при старте выделяется PROCESSES (явное или неявное)+4 семафоров, по одному на каждый фоновый процесс и 4 служебных.

Топиксатартеру: не ешьте мозг людям, разбирайтесь в логике работы прикладного кода - как он обрабатывает получаемые ошибки. Сильно не советую делать обработчик таких системных сбоев - эксплуатация пожалеет. Структурно Ваша ситуация развивается так: возникла потребность породить процесс -> проверили возможность -> наткнулись на лимит, не породили -> выдали ошибку. После выдачи ошибки ничего интересного не происходит.
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39351163
ITest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
благодарю всех ответивших, извините за задержку -- "продукцион"

Scott TigerСтруктурно Ваша ситуация развивается так: возникла потребность породить процесс -> проверили возможность -> наткнулись на лимит, не породили -> выдали ошибку. После выдачи ошибки ничего интересного не происходит.

ИМХО, самое интересное здесь только начинается.
я правильно понимаю, что цикл некоторое время повторяется?
...выдали ошибку -> подождали -> вернулись на проверку возможности породить процесс -> проверили возможность -> наткнулись на лимит, не породили -> выдали ошибку -> подождали -> вернулись на проверку возможности породить процесс...

и это продолжается, до того как:
1) появились свободные процессы, достаточные для старта -- и все счастливы;
2) по тайм-лимиту, когда ора-20 висит достаточно долго, начали отваливаться/не запускаться некие служебные процессы -- увы и ах!
(какие?)

к сожалению, не нашел ответа на вопрос "какой бэкграунд-процесс порождает данную ошибку?"
грешил на ресурс-менеджер, но, вроде, в доках написано, что если его не активировали, то он спит себе спокойно...
я хз.

и основной вопрос к гуру, если внедрено планирование ресурсов через ресурс-менеджер,
и ветка "продукцион", которой к примеру я выделю 80% процессов, упрётся в ограничения на свободные процессы уже по плану ресурс-менеджера,
в этом случае ора-20 возникает или нет?


@Scott Tiger
ST>Сильно не советую делать обработчик таких системных сбоев...
дык, до такого ещё не опустился... или не взлетел... :)

всем удачи и доброго здоровья
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39351401
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ITestИМХО, самое интересное здесь только начинается.
я правильно понимаю, что цикл некоторое время повторяется?Все начинается только в твоей фантазии.
Как происходит по факту уже было написано упрощенно.

Создается вообще впечатление, что чукча не читатель.
Было дано предостаточно ифнормации для поиска.
Но зачем искать если можно нафантазмировать, да? :)

ITestначали отваливаться/не запускаться некие служебные процессы -- увы и ах!И наступил апокалипсис.
Служебные процессы всегда работают в фоне (когда начнет "крешится" один из них - об этом будет видно в alert.log)

Код: plaintext
select * from v$session where type = 'BACKGROUND'

Количество процесов на джобы ограничивается параметром job_queue_processes.

Про количество процесов и организацию enqueue для параллельных стейстементов можешь почитать по моим ссылкам выше.

И да, это еще не берем во внимание ресурс менеджер.

ITestк сожалению, не нашел ответа на вопрос "какой бэкграунд-процесс порождает данную ошибку?"Скорее всего SMON/PMON, ну что, стало легче? :)
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39351457
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ITestScott TigerСтруктурно Ваша ситуация развивается так: возникла потребность породить процесс -> проверили возможность -> наткнулись на лимит, не породили -> выдали ошибку. После выдачи ошибки ничего интересного не происходит.
я правильно понимаю, что цикл некоторое время повторяется?
...выдали ошибку -> подождали -> вернулись на проверку возможности породить процесс -> проверили возможность -> наткнулись на лимит, не породили -> выдали ошибку -> подождали -> вернулись на проверку возможности породить процесс...

Нет. Но это не исключает повторения попытки создания процесса в результате работы более высокоуровневого кода, если он так специально написан. Но именно повторных попыток породить процесс в функции порождения процесса не будет. Получение ORA-00020 - не приглашение подолбиться в закрытую дверь ещё разок, авось получится, а вполне конкретное указание подумать над настройкой ключевых параметров экземпляра.
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39351554
Kamael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39378303
ITest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю всех ответивших.
Поздравляю с новым 2017-м годом.
Всем здоровья.

с ув. ITest
...
Рейтинг: 0 / 0
ORA-00020, что происходит на уровне ядра?
    #39387126
Kamael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 сапорт начал пилить патч.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-00020, что происходит на уровне ядра?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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