Solaris パラメータ project.max-shm-memory 設定変更!Oracle Universal Installer (OUI) 前提条件のチェック


solalisoracle_a002

Solarisで Oracle Universal Installer (OUI) を使っての Oracle Database のインストール。前提条件のチェックで「OSカーネル・パラメータ"project.max-shm-memory"が正しく設定されているかどうか確認して!」とチェックエラーに。ということで対応内容の備忘録です。


【チェックのエラー内容】

これは、OSカーネル・パラメータ"project.max-shm-memory"が正しく設定されているかどうかをテストする前提条件です。

予想される値
: 2621440000
実際値
: 1306408960

【構築環境】
  • Oracle Solaris 11.3 on x86-64 (64-Bit)
  • Oracle Database 12c Release 1 Standard Edition
  • 物理メモリ:5GB

Oracle Database 共有メモリー・リソースの要件

Oracle Databaseクイック・インストレーション・ガイド によると 必要な共有メモリー・リソースは以下のようになっています。

■ RAM 1から16GB
物理メモリー・サイズの半分

■ RAM 16GBよりも大きい
8GB以上

今回は、RAMが 5GBなので、2.5GB(2621440000)以上を project.max-shm-memory に設定する必要があります。

oracle ユーザの利用できる特権メモリを確認

root@Solaris:~# su - oracle
Oracle Corporation	SunOS 5.11	11.3	September 2015
access control disabled, clients can connect from any host
oracle@Solaris:~$ 

シェルの実行権限を ユーザ oracle に移します。

oracle@Solaris:~$ prctl -n project.max-shm-memory -i process $$
process: 2474: -bash
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
project.max-shm-memory
        usage           1.80MB   
        privileged      1.22GB      -   deny                                 -
        system          16.0EB    max   deny                                 -
oracle@Solaris:~$

project.max-shm-memory ですが、ユーザ oracle の特権メモリは 1.22GB (1306408960) までのようです。前提チェックのエラーで指摘された実測値と一致します。

oracle ユーザのプロジェクト設定を確認

Oracle Universal Installer (OUI) は oracle ユーザで実行します。 oracleユーザに属するプロジェクトを確認と。

root@Solaris:~# su - 
Oracle Corporation	SunOS 5.11	11.3	September 2015
access control disabled, clients can connect from any host
root@Solaris:~# 

root にシェルの実行権限を戻します。

root@Solaris:~# id -p oracle
uid=100(oracle) gid=200(oinstall) projid=3(default)

ユーザは oracle 、所属グループは oinstall そして 属性プロジェクトは default です。

root@Solaris:~# cat /etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::
root@Solaris:~# 

プロジェクトの設定を確認しました。ユーザ oracle に対しては特に指定なし。グループ oinstall についても特に指定なし。プロジェクト default については「default:3::::」なので、デフォルト設定のようです。

project.max-shm-memory の設定

インストールするのが ユーザ oracle なので、それに対して project.max-shm-memory 2.5GB (RAM 5Gの半分) を設定します。

root@Solaris:~# echo "user.oracle:100::::project.max-shm-memory=(privileged,2684354560,deny)" >> /etc/project
root@Solaris:~#

/etc/project の末尾に 以下を追記しました。

user.oracle:100::::project.max-shm-memory=(privileged,2684354560,deny)

root@Solaris:~# cat /etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::
user.oracle:100::::project.max-shm-memory=(privileged,2684354560,deny)
root@Solaris:~# 

追記されていることが確認できました。

oracle ユーザの利用できる特権メモリを確認

root@Solaris:~# su - oracle
Oracle Corporation	SunOS 5.11	11.3	September 2015
access control disabled, clients can connect from any host
oracle@Solaris:~$ 

シェルの実行権限を ユーザ oracle に移します。

oracle@Solaris:~$ prctl -n project.max-shm-memory -i process $$
process: 2500: -bash
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
project.max-shm-memory
        usage               0B   
        privileged      2.50GB      -   deny                                 -
        system          16.0EB    max   deny                                 -                            -
oracle@Solaris:~$

ユーザ oracle の特権メモリは 2.5GB (2621440000) に変更されていることが確認できました。

これで無事に、Oracle Universal Installer (OUI) のチェックを通ることができました。

※修正後に、OUIの前提条件のチェック画面で「再チェック」ボタンや「修正して再チェック」ボタンをクリックしても、この"project.max-shm-memory"の再設定はうまく認識してくれませんでした。この場合、一旦OUIの作業を取り消し、再度最初からはじめるときちんと認識してチェックを通ることができました。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です