データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

Oracle Exadataスマート・フラッシュ・キャッシュ徹底解説|ライトバックモードの設定手順も紹介

本記事では、Oracle Exadata Smart Flash Cache(スマート・フラッシュ・キャッシュ)機能とそのアーキテクチャについて、ライトバック・フラッシュ・キャッシュ機能も含めて詳しく解説します。

はじめに

Exadata Smart Flash Cacheには、主に次の2つのメリットがあります。

  • アクティブなデータベース・オブジェクトをフラッシュ領域にステージングできる
  • Exadata Smart Flash Loggingにより、データベース・ロギングという重要な処理を高速化できる

ライトバック・フラッシュ・キャッシュとは

ライトバック・フラッシュ・キャッシュは、書き込み負荷の高い処理を改善するための機能です。ハードディスクへの書き込みよりもフラッシュ・キャッシュへの書き込みの方がはるかに高速であるため、データベースに対する重いジョブを実行する際に特に有効です。Oracleによると、アプリケーションにもよりますが、ディスク(IOPS:1秒あたりの入出力操作数で測定)と比較して、書き込み性能が最大20倍高速になり、書き込みIOPSは10倍に達する可能性があるとしています。

セルの属性flashCacheModeがキャッシュモードを決定します。指定できる値は「WriteThrough」と「WriteBack」の2種類です。

現在のキャッシュモードを確認するには、cellcliツールでlist cellコマンドを実行します。実行例は以下の通りです。

CELLCLI> list cell attributes flashcachemode
Oracle Exadataスマート・フラッシュ・キャッシュ徹底解説|ライトバックモードの設定手順も紹介

list cellコマンドの実行結果

詳細情報を表示するには、list cell detailコマンドを使用します。

CELLCLI> list cell detail
Oracle Exadataスマート・フラッシュ・キャッシュ徹底解説|ライトバックモードの設定手順も紹介

list cell detailコマンドの実行結果

ライトバック・フラッシュ・キャッシュのメリット

ライトバック・フラッシュ・キャッシュは、ハードディスクへの書き込みよりフラッシュ・キャッシュへの書き込みがはるかに速いため、書き込み負荷の高い処理を大幅に改善します。また、すべてのワークロードに対して読み書きを透過的に加速します。具体的には、オンライン・トランザクション処理(OLTP)ではランダム読み書きが高速化され、データウェアハウス(DW)ではシーケンシャルなスマートスキャンが高速化されます。

さらに、データとredoログが同じディスクを共有している場合、redoログ書き込みのレイテンシも低減できます。cellsrv restart後もフラッシュ・キャッシュからデータを復元可能です。

以下のいずれかの状況に気づいた場合は、ライトバック・フラッシュ・キャッシュの利用を検討してください。

  1. 「free buffer waits」の待機時間が顕著に長い場合
  2. 自動ワークロード・リポジトリ(AWR)レポートで書き込みボトルネックを確認した際にI/O時間が長い場合

次の表は、各種Exadata X4構成において、Exadata Smart Flash Cacheがデータベースレベルでもたらす性能を示したものです。

Oracle Exadataスマート・フラッシュ・キャッシュ徹底解説|ライトバックモードの設定手順も紹介

Exadataパフォーマンス比較表

出典:https://www.oracle.com/technetwork/database/exadata/exadata-smart-flash-cache-366203.pdf(7ページ)

インテリジェント・キャッシング

Smart Flash Cacheには、以下のようなインテリジェント・キャッシングのメリットがあります。

  • さまざまな種類のデータベースI/Oを識別できる
  • アクセス頻度の高いデータブロックや索引ブロックがキャッシュされる
  • 制御ファイルの読み書きがキャッシュされる
  • ファイルヘッダーの読み書きがキャッシュされる
  • データベース管理者がキャッシュの優先度に影響を与えられる

残念ながら、キャッシュの中身を簡単に監視する手段はありません。Oracleはcellcliツールにlist flashcachecontentコマンドを用意していますが、集計オプションがなく、オブジェクト番号しか表示されません。

Exadata Smart Flash Cacheの仕組み

Exadata Smart Flash Cacheは、セル(ストレージ)サーバー上に存在するキャッシュで、redoデータをディスクに安全に書き込めるようになるまで一時的に保管します。Exadataストレージ・サーバーには大容量のフラッシュストレージが搭載されており、その一部はデータベース・ロギングに割り当てられ、残りはユーザーデータのキャッシュに使用されます。

フルラック構成のExadataサーバーでは、5TBのフラッシュ・キャッシュが大量のデータを格納できます。

フラッシュ・キャッシュは、最大効率を得るために自動的に管理できます。以下のようなユースケースがあります。

  • ユーザーはオプションのヒントを指定して、キャッシュの優先度に影響を与えることができる
  • 管理者は特定のデータベースに対してSmart Flash Cacheを無効化できる

Exadata Storage Serverソフトウェア

Exadata Storage Serverソフトウェアには、Exadataフラッシュハードウェアを活かし、Oracle Databaseのデプロイ先としてExadataデータベース・マシンを非常に高速なシステムにする重要な機能が2つあります。1つ目は、アクティブなデータベース・オブジェクトをフラッシュ上にステージングできるExadata Smart Flash Cacheです。2つ目は、データベース・ロギングという重要な機能を高速化するExadata Smart Flash Loggingです。

Oracle Databaseのデプロイにはミッションクリティカルな耐障害性が求められます。Oracle Databaseと組み合わせてExadata Storage Serverソフトウェアを使用することで、その耐障害性を実現できます。

FlashDiskベースのグリッドディスクの作成

Flash Cacheの全容量をグリッドディスクに使用すべきではありません。Flash Cacheを作成する際は、sizeパラメーターを使って、グリッドディスク用に一部の領域を確保しておきます。以下はcellcliツールのcreate flashcacheコマンドの例です。

CellCLI> create flashcache all size=300g;

続いて、Flash Diskの残りの空き領域を使ってグリッドディスクを作成します。以下のcreate griddiskコマンドを使用します。

CellCLI> create griddisk all flashdisk prefix='RAMDISK';

グリッドディスクの詳細を一覧表示するには、list griddiskコマンドを使用します。以下は実行例です。

CellCLI> list griddisk attributes name, diskType, size where disktype='FlashDisk';

Flash Cache構成の最大の利点は、システムをオンラインのままI/O要求に応答させながら構成作業を行える点です。

ライトバック・フラッシュ・キャッシュの有効化方法

ライトバック・フラッシュ・キャッシュ機能を有効にするには、以下のいずれかの方法を使用します。

  • ローリング方式:RDBMS(リレーショナル・データベース管理システム)およびASM(自動ストレージ管理)インスタンスが稼働中の状態で、一度に1つのセル・サーバーずつライトバック・フラッシュ・キャッシュを有効化します。
  • 非ローリング方式:RDBMSおよびASMインスタンスを停止した状態でライトバック・フラッシュ・キャッシュを有効化します。

ライトバック・フラッシュ・キャッシュを有効にする前に、以下のコマンドを実行して、グリッドディスクの「asmdeactivationoutcome」および「asmmodestatus」プロパティを確認してください。すべてのセル上のすべてのグリッドディスクがそれぞれ「Yes」「ONLINE」になっていること、フラッシュ・キャッシュ全体が正常な状態であること、劣化(degraded)またはクリティカル(critical)状態のフラッシュディスクがないことを確認します。

# dcli -g cell_group -l root cellcli -e list griddisk attributes asmdeactivationoutcome, asmmodestatus

セルの一覧を表示するには、以下のコマンドを実行します。

# dcli -g cell_group -l root cellcli -e list flashcache detail

exadata01cell01: WriteThrough
exadata01cell02: WriteThrough
exadata01cell03: WriteThrough

ライトバック・フラッシュ・キャッシュを有効にするには、各セルで以下の手順を実行します。

-> キャッシュの削除

CellCLI> drop flashcache;

Flash cache exadata01cell01 successfully dropped.

-> Cellサービスの停止

CellCLI> alter cell shutdown services cellsrv;

Stopping CELLSRV services... The SHUTDOWN of CELLSRV services was successful.

-> CellのFlash CacheモードをWrite Backに変更

CellCLI> alter cell flashCacheMode=writeback;

Cell cel04 successfully altered 

-> Cellサービスの再起動

CellCLI> alter cell startup services cellsrv;

Starting CELLSRV services...
The STARTUP of CELLSRV services was successful.

-> Flash Cacheの再作成

CellCLI> create flashcache all;

Flash cache cel04_FLASHCACHE successfully created

-> 全セル・サーバーの状態確認

# dcli -g cell_group -l root "cellcli -e list cell attributes flashcachemode"

exadata01cell01: WriteBack
exadata01cell02: WriteBack
exadata01cell03: WriteBack

まとめ

ライトバック・フラッシュ・キャッシュ機能を活用することで、Exadataフラッシュハードウェアの性能を最大限に引き出し、Oracle Databaseのデプロイ先としてExadataデータベース・マシンをより高速なシステムにできます。デフォルトでは、Oracle Exadataデータベース・マシン内のフラッシュストレージはすべてフラッシュ・キャッシュとして使用されます。これにより、データベース・バッファ・キャッシュの拡張として効果的に機能し、非常に高いIOPSレートを含む高速アクセスを実現します。これは特にOLTPにとって重要です。さらに、フラッシュストレージの一部を使ってASMディスクグループを構築することも可能です。これらのディスクグループに配置されたファイルは、キャッシュなしでフラッシュストレージに永続的に保存されます。

本トピックに関するご質問があれば、下記のコメント欄からお気軽にお寄せください。

  1. Oracle繰延売上原価(DCOGS)会計の仕組みと設定方法

    本記事では、Oracle® Cost Management リリース12.0.0以降で利用できる「繰延売上原価(Deferred Cost of Goods Sold:DCOGS)」勘定機能について解説します。この拡張機能により、売上原価(COGS)を収益に直接対応させることが可能となり、従来は実現できなかった収益と費用の正確なマッチングが実現します。 はじめに 以前のバージョンでは、在庫から出荷された商品の価値は、その出荷がまだ収益を計上していなくても、売上原価(COGS)として即時に費用処理されていました。この拡張機能の導入により、在庫から出荷された商品の価値は、まずDCOGS勘定に一時的

  2. Oracle Autonomous Database DedicatedとExadataクラウドインフラストラクチャの徹底解説

    本記事では、Oracle® Autonomous Database DedicatedおよびExadata®クラウドインフラストラクチャに関する情報を、複数の公式資料をもとにわかりやすく解説します。 はじめに Oracle Autonomous Database Technical Overviewによると、「Oracle Autonomous Databaseは、クラウドの柔軟性と機械学習の力を組み合わせ、データ管理をサービスとして提供します」とされています。さらに同ドキュメントには、「Oracle Autonomous Databaseには、Oracle ExadataおよびExadata