2012年7月29日日曜日

Solaris11とZFSでOracleDBのハイブリッド列圧縮は使えるか?

Oracleのハイブリッド列圧縮(Hybrid Columnar Compression=HCC)についてマニュアルに以下の記載があります。
Requires Exadata, ZFS, or Pillar Axiom 600 storage
ExadataやPillarはハードウェア製品なので個人ではとても気楽に試せませんが、ZFSならSolaris使えば楽勝じゃね? と思い特に下調べせずに(チョットマテ)突撃してみました。

 試した環境は以下。(サーバはノートPC上のVirtualBox仮想マシンです)

  • Solaris 11 11/11 x86 (関係ないけど1並び!)
  • Oracle11g Database 11.2.0.3.0 x86-64

で、試してみた結果が以下。

 11:54:11 SQL> CREATE TABLE sales_qh COMPRESS FOR QUERY HIGH AS SELECT * FROM sh.sales WHERE 1 =0;
CREATE TABLE sales_qh COMPRESS FOR QUERY HIGH AS SELECT * FROM sh.sales WHERE 1 =0
                                                                  *
行1でエラーが発生しました。:
ORA-64307:
ハイブリッド・コラム圧縮は、Exadataストレージに存在する表領域でのみサポートされています


経過: 00:00:00.76
11:57:12 SQL>

結局駄目なのか? ZFS storageってZFS Storage Applianceのことなのか? もうちょっと調べたほうが良いかな。

## 追記 ##
ORACLE社のプレスリリースにはしっかり以下のように書いてあった。残念。
Oracle today announced Hybrid Columnar Compression, pioneered in Oracle Exadata , is now supported on Oracle’s Sun ZFS Storage Appliances and Pillar Axiom Storage Systems.

ちなみに細かい構築手順は載せませんが、いくつか注意点を。

  • OracleDBのSolaris11サポートは11.2.0.3.0からです。11.2.0.2では未サポートです。
  • インストールマニュアルには「No special kernel parameters, packages, or patches are required at the time of this release for Oracle Solaris 11.」と記載がありますが、カーネルパラメータの設定はSolaris11でも必須です。設定しないと「ORA-27102 out of memory」でDB作成に失敗します。(インストーラの要件チェックにも引っ掛かりません)
  • シェル制限でNOFILESは4096という記載がありますが、正しくは65536です。(これはインストーラの要件チェックにも引っ掛かります)
  • 後はほぼマニュアル通りですが、【こちら】も参照ください。