Oracle 11g Максимальное количество процессов / сессий / лимитов транзакций - PullRequest
0 голосов
/ 27 сентября 2018

Что я делаю

Я работаю над драйвером Oracle, включающим OCI.Чтобы проверить это (в основном стабильность и устранение утечек памяти), я использую Oracle Database 11g Express Edition (я не эксперт Oracle, поэтому я не знаю, подходит ли эта версия для работы).Для этого ему необходимо совершить много транзакций одновременно: десятки соединений одновременно, каждое из которых поддерживает пул сеансов, в котором десятки сеансов одновременно создают таблицы, вставляют большое количество данных и удаляют таблицы.

В любом случае, я быстро получил следующую ошибку:

ORA-12516: TNS: слушателю не удалось найти доступный обработчик с соответствующим стеком протоколов

Как оказалось,Это связано с тем, что ограничения Процессы / Сеансы / Транзакции недостаточно высоки.В поисках в Интернете мне сказали, что их можно установить следующим образом:

alter system set processes=1000 scope=spfile;
alter system set sessions=1000 scope=spfile;
alter system set transactions=1000 scope=spfile;

Очевидно, правда сложнее, чем это, потому что эти значения устанавливаются в зависимости друг от друга, и как это работает, кажется,быть разными в каждой версии.Согласно документации Oracle здесь все зависит от Процессы :

Значения по умолчанию для параметров SESSIONS и TRANSACTIONS получены из этого параметра.

И Процессы НЕ МОГУТ быть изменены:

Изменяемый №

... в то же время он говорит о том, что происходит при измененииit:

Поэтому, если вы измените значение PROCESSES [...]

Так что это не очень полезно.Или, может быть, я что-то здесь неправильно понимаю.В любом случае, с помощью вызовов alter system, указанных выше, я изменил значения, и изменения прошли успешно.Когда я делаю этот вызов

(select 'sessions', current_utilization, limit_value from v$resource_limit where resource_name='sessions')
union
(select 'processes', current_utilization, limit_value from v$resource_limit where resource_name='processes')
union
(select 'transactions', current_utilization, limit_value from v$resource_limit where resource_name='transactions');

, я получаю следующий результат:

'SESSIONS'   CURRENT_UTILIZATION LIMIT_VALUE
------------ ------------------- ----------------------------------------
processes                    314       1000
sessions                     317       1524
transactions                   2  UNLIMITED

Похоже, что процессы могут изменяться в отличие от документации Oracle, сеансы установлены на 2 больше, чемprocesses * 1.5 + 22 правило описано здесь , и транзакции кажутся неограниченными.Изменения вступили в силу, теперь я могу установить гораздо больше подключений и сеансов, не обнаружив ошибки ORA-12516.Пока все хорошо.

Моя проблема

Я хотел еще больше подключений, поэтому я попытался установить его на 10000. Однако, когда я это сделал, база данных даже не запустилась должным образом.Когда я пытаюсь подключиться к нему с помощью sqlplus, я получаю следующее сообщение:

Подключен к бездействующему экземпляру

Я не могу использовать базу данных в любом случае,и startup тоже не сработает.Я переустановил базу данных, установил ее на 1000, перезагрузился, и это сработало.Переустановка и перезагрузка без изменения настроек также работает.Однако переустановка, установка 10000 и перезагрузка не работает.Это заставляет меня поверить, что есть предел того, насколько высокими могут быть установлены эти значения, и что превышение этого предела сделает базу данных не способной к правильному запуску.

Поэтому мой вопрос: каковы максимальные процессы / сеансы /Ограничения транзакций, которые я могу установить для Oracle Database 11g Express Edition?Существуют ли факторы, влияющие на такой предел, который я мог бы контролировать / изменять?Или я ужасно неправильно понимаю все это, и решение - это нечто совершенно другое?Машина, на которой я работаю, это довольно мощная машина под управлением Windows 10, поэтому проблема с питанием не должна быть проблемой.За исключением, может быть, если в программном обеспечении установлен искусственный лимит, и я нашел такие комментарии в своем поиске.

Заранее спасибо.

...