Oracleアプリケーションが正常に動作できるように、Solaris 10サーバーの制限を変更するように求める電子メールをOracleから受け取りました。
残念ながら、私はSolarisの経験がないので、助けが必要です。
値は次のとおりです。
A00110 This rule verifies that the ulimit settings are adequate Oracle Database 11g R2. The recommended values are not less than:
ulimit(TIME) = unlimited
ulimit(FILE) = unlimited
ulimit(DATA) = 1048576
Soft ulimit(NOFILES) = 1024
Hard ulimit(NOFILES) = 65536
ulimit(VMEMORY) = 4194304
and not more than
Soft ulimit(STACK) = 10240
Hard ulimit(STACK) = 32768
VmemoryNotDefined
StackHardUnlimited Review the ulimit settings:
Set the hard ulimit(STACK) to a maximum of 32768
ulimit(VMEMORY) is not defined
答え1
グローバルファイル記述子の制限を増やすことはお勧めできません。 255を超えるファイル記述子の使用方法がわからないと、32ビットプログラムが失敗する可能性があるためです。を参照してくださいenable_extended_FILE_stdio(3C)
。
ulimit
したがって、最初に制限を設定するために必要な呼び出しを実行してから、データベースを呼び出すシェルスクリプトを介してoracleデータベースを呼び出すことをお勧めします。
Bourne Shellを使用して検索できる一般的なSolaris制限セットを紹介します(例を参照)。ksh93
ksh93には他の設定できないリソースの情報が含まれているため、ksh93を使用することは役に立ちません。これはSolarisのデフォルト設定です。
LC_ALL=C ulimit -aSH
-t: time(seconds) unlimited:unlimited
-f: file(blocks) unlimited:unlimited
-d: data(kbytes) unlimited:unlimited
-s: stack(kbytes) 10240:unlimited
-c: coredump(blocks) unlimited:unlimited
-n: nofiles(descriptors) 256:65536
-v: memory(kbytes) unlimited:unlimited
ご覧のとおり、開かれたファイル記述子を除くすべてのデフォルト値は必要以上に高くなります。スタックのハード制限を減らすべきかどうかはわかりません。
この値を変更するには、シェルスクリプトを作成して次のように入力します。
ulimit -nS 1024
これにより、ソフトファイル記述子の制限が1024に増え、新しい制限が作成されます。
-n: nofiles(descriptors) 1024:65536
ハードスタックの制限を減らす必要がある場合は、次のように入力します。
ulimit -sH 32768
これにより、ハードスタックの制限が32MBに減り、次のような結果が得られます。
-s: stack(kbytes) 10240:32768
次に、oracleデータベースを起動するコマンドをスクリプトに入力し、スクリプトを実行します。