1

Oracle 10 g データベースがあり、ORA-00018: maximum number of sessions exceeded というメッセージが表示されます。以下のようにパラメータを設定します。

セッション 600 プロセス: 600

そしてその共有サーバーモード。これをセッション :900 およびプロセス : 750 に更新します。現在、Oracle は実行されていますが、これが先に進むのに役立つかどうかを知る必要があるか、エラー「ORA-00018: 最大」を回避するために他の変更も行う必要があります。セッション数を超えました」

誰でも助けてくれませんかあなたの反応は大歓迎です

よろしくジョセフ

4

3 に答える 3

1

ユーザーがセッションを取得し、それらをまったく解放しないか、長時間保持している可能性があります。その例外が発生したときに、実行時間の長いトランザクションがあるかどうかを確認してください。

于 2009-04-13T15:37:54.423 に答える
0

これを知る最善の方法は、データベースに接続し、5 ~ 10 分ごとに v$session テーブルをダンプすることです。このようにして、すべてのプロセス/アプリケーションがデータベースへの接続を保持していたことを時々知ることができます。長時間実行されているプロセス/デーモン/サービスがセッションをまったく解放していないバグである可能性があります。簡単なスクリプトを cron ジョブとして実行して v$session テーブルをダンプすると、表示される可能性があります。

于 2009-04-13T15:49:17.890 に答える
0

12cデータベースの場合、これを解決した方法は次のとおりです。

1使用中の接続数を制御する

PDBにログイン

sqlplus <username>/<pswd>@<hostname>:1521/<ServiceName>

接続数を確認する

SELECT
    'Currently, ' 
    || (SELECT COUNT(*) FROM V$SESSION)
    || ' out of ' 
    || VP.VALUE 
    || ' connections are used.' AS USAGE_MESSAGE
FROM 
    V$PARAMETER VP
WHERE 
    VP.NAME = 'sessions'

「現在、m 個の接続のうち n 個が使用されています」と表示されます。ここで n > m です。それは反対であるべきです。

2セッションの最大数を変更する

PDBにsysとしてログインします

quit
sqlplus / as sysdba
alter session set container = PDB1;

セッション数の変更

alter system set sessions=100 scope=both sid='*';

3データベースをバウンスする

SQL> shutdown immediate
SQL> startup

すべての PDB を開きます (バウンスによって閉じられます)

ALTER PLUGGABLE DATABASE ALL OPEN;

4再制御

sqlplus <username>/<pswd>@<hostname>:1521/<ServiceName>

コントロール SQL クエリを実行する

SELECT
    'Currently, ' 
    || (SELECT COUNT(*) FROM V$SESSION)
    || ' out of ' 
    || VP.VALUE 
    || ' connections are used.' AS USAGE_MESSAGE
FROM 
    V$PARAMETER VP
WHERE 
    VP.NAME = 'sessions'

「現在、m 個の接続のうち n 個が使用されています」と表示されます。n < m になりました。

于 2016-07-05T14:31:14.210 に答える