スキップしてメイン コンテンツに移動

Smart Flash Cache

小幡さんよりSSDを使ったSmart Flash Cacheのテストについてコメントをもらったので、テストをしてみる予定です。

OEL(Oracle Enterprise Linux)でSmart Flash Cacheを使用できるようにするには、ひとつパッチが必要になります。

Patch 8974084
META BUG FOR FLASH CACHE 11.2PL BUGS TO BACKPORT TO 11.2.0.1 OEL

では軽く手順を示しておきます。

1. 上記のOracleの個別パッチをopatchで適用します
2. 初期化パラメータ db_flash_cache_fileを設定します
3. 初期化パラメータ db_flash_cache_sizeを設定します
4. DBの再起動

ここで、ひとつ注意が必要です。通常、SSDを使用する場合、/dev/sd*のようなデバイスをdb_flash_cache_fileに設定すると思いますが、このようなデバイスファイルには、ORACLEインストールユーザーへ直接、読み書き権限がついていません。

今回、私の検証環境では、SSDは/dev/sdcでした。

$ ls -l /dev/sdc
brw-r----- 1 root disk 8, 32 9月 14 01:58 /dev/sdc

この状態で、Oracleを起動すると

Errors in file /home/oracle/app/oracle/diag/rdbms/ora1120/ora1120/trace/ora1120_dbw0_23097.trc:
ORA-27041: unable to open file
Linux-x86_64 Error: 13: Permission denied
Additional information: 1
DBW0 (ospid: 23097): terminating the instance due to error 27041
Instance terminated by DBW0, pid = 23097

のように、Permission deniedでDBWRが停止して、インスタンスも停止します。
そこで、/dev/sdcに権限をつけてあげるわけですが、これではOSの再起動とともに権限が落ちます。

ということで、適切に/etc/udev/rules.d/*.rulesを設定します。

今回、私は検証環境ということもあり
/etc/udev/rules.d/99-flash-cache.rulesを作成し

KERNEL=="sdc", MODE="0777"

の設定をしておきました。

これで、めでたくOELでSmart Flash Cacheのテストが可能になりました。

SQL> show parameter db_flash_cache
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_flash_cache_file                  string      /dev/sdc
db_flash_cache_size                  big integer 100G

これから、しばらくSmart Flash Cacheについてテストしていきます。

コメント