この記事ではCPU増設時のCPU_COUNTの変化について解説します。
CPU_COUNTの値の変化
DBの性能アップのためCPU数を増やすことがあるかと思います。
Oracle DatabaseではDBサーバのCPUを増やすとともに、初期化パラメータのCPU_COUNTの値を変更する必要があります。
CPU_COUNTはデフォルトでは0に設定されています。
この場合は実際のサーバのCPU数に合わせて自動的に値が設定されます。
明示的にCPU_COUNTが設定されている場合は手動でCPU_COUNTを設定する必要があります。
Oracleのアプライアンス製品などではCPU_COUNTが自動的に明示的に設定される場合があるため注意が必要です。
CPU_CONUTの変化例
実際にCPU数を1→2に増加させてCPU_COUNTの値を確認します。
CPU増設前の状態はCPU_COUNTの値を1に明示的に設定しています。
この場合CPU_COUNTを確認すると当然値は1になります。
SQL> show parameter cpu_count
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count string 1
明示的に設定しているためpfileを作成するとcpu_countが記載されています。
この状態でDBサーバを落とし、CPU数を2に変更します。
DBサーバを起動し、cpu_countを確認するとcpu_countを確認すると値は1のままです。
SQL> show parameter cpu_count
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count string 1
ここでcpu_countの値をリセットします。
SQL> ALTER SYSTEM RESET cpu_count SCOPE=BOTH;
システムが変更されました。
cpu_countを確認すると値は0になります。
SQL> show parameter cpu_count
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count string 0
またpfileを作成するとcpu_countの記載は消えています。
ここでDBを再起動し、cpu_countの値を再度確認すると値は2へ変化します。
SQL> show parameter cpu_count
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count string 2
ここでpfileを作成し中身を確認してもcpu_countの記載はありません。
cpu_countはデフォルトの0が設定されていますが、show parameterで確認すると実際の値の2が確認できる仕様のようです。
そのためcpu_countがデフォルトの0であるかどうかはpfileに出力して、cpu_countの記載のあるなしで判断するのがよさそうです。