70 GBのRAMを備えた強力なマシンを持っています。20 GBのOracleインスタンスはいくつ作成できますか?


9

70 GB RAMの強力なマシンを持っています。sga_targetとして20 GBのOracleインスタンスを1つ作成しました。sga_target > 10G最初のデータベースを停止したままでも、別のOracleインスタンスを作成できません。設定するsga_target >=10Gと、起動時に以下のエラーが発生します。

ORA-27104:共有メモリーのシステム定義の制限が正しく構成されていません

ながらfree -mも利用可能な十分な記憶があることを示しています:

             total       used       free     shared    buffers     cached
Mem:         72419      34490      37928          0        618      28159
-/+ buffers/cache:       5711      66707
Swap:         2047          0       2047

スワップ領域を増やす必要がありますか?この点でのポインタは高く評価されています。

また、70 GBのメモリの場合、多くのインスタンスを作成するために、スワップ領域に最適な値は何ですか?これを計算する方法はありますか?私の目的は、それぞれに少なくとも2つのインスタンスsga_target=20Gを持ち、同時に1つのインスタンスのみを維持することです。ここに概念がない場合

出力ipcs -imは以下の通り

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 4194303
max total shared memory (kbytes) = 8388608
min seg size (bytes) = 1

回答:


13

カーネルパラメータを変更する必要があります。

/etc/sysctl.conf次の行を編集して確認します。

kernel.shmall = 18350080
kernel.shmmax = 75161927680
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128

次に、マシンを再起動します。


この作品に感謝します。shmall、shmax、shmniなどの値をどのように決定できるか教えてください。これらを計算する方法はありますか?
user419534

3
shmmaxは、単一の共有メモリセグメントの最大サイズ(バイト単位)であり、70GbのRAMがあるため、70 * 1024 * 1024 * 1024を使用しました。shmallは、同時に存在できるすべての共有メモリセグメントの最大合計であり、ページ単位で測定されます。Linuxのページサイズは通常4kなので、shmmax数を4096で
割り


0

shmmax値の設定は、OSが32ビットか64ビットかによって異なります。これについて詳しく説明するメタリンクのメモがあります。

Linux x86およびx86-64の最大SHMMAX値[ID 567506.1]

ぜひご覧ください。

また、Oracleの共有メモリ/セマフォについての興味深い記事もあります。

TECH:Unixセマフォと共有メモリの説明[ID 15566.1]

よろしく、Nagendra Chillale

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.