PR

メリット2
データの保護機能を高める

 Oracleのデータ保護機能は,データ・ブロックに付けた「チェック・サム」と呼ばれる情報に基づいている。データにアクセスする時,チェック・サムの情報を確認することでデータが損傷していないかどうかを知ることができる。

 ただ,OracleはOSの上で稼働するアプリケーションに過ぎないため,OS以下の層で起きたデータの損傷を検知できない。確率は低いものの,例えばデバイス・ドライバなどでデータのエラーが起きた場合,甚大な被害を引き起こすことがある。

ストレージ装置内でチェック

図3●Oracleだけでは書き込みエラーが検知できない
Oracleはメモリー中のデータ・ブロックをディスクに書き込む際,データ・ブロックに付けている「チェック・サム」でエラー・チェックを行う。しかし,デバイス・ドライバやホスト・バス・アダプタで発生したエラーは検知できない。データ・ブロックはエラー状態のままディスクに保存されてしまう。エラー・ブロックを読み込むまでエラーが検知されないため,そのリカバリは困難になることが多い。「EMC Double Checksum」はディスク装置内でエラー・チェックを行うため,デバイス・ドライバやホスト・バス・アダプタで発生したエラーをデータの書き込み時に検知できる
図4●Oracle9i DatabaseのディスクI/Oの種類
標準で用意されているディスクI/Oは,「OSの提供するファイル・システム」か「rawデバイス」の2つの方法しかない。この2つの方法には,それぞれ短所がある。Oracle9i DatabaseのディスクI/Oの仕様「Oracle Disk Manager」に対応する「VERITAS Database Edition for Oracle」のファイル・システムは,OSの提供するファイル・システムとrawデバイスのいいとこ取りになっている

 デバイス・ドライバでデータが損傷したにもかかわらず,データの書き込み関数が正常終了した場合,損傷を受けたままの状態でデータはディスクに格納される。このような場合,データが損傷しているにもかかわらず,エラーと検知できずディスク中に存在し続ける。データの損傷をOracleが知るのは,再度同じデータを読み込んだ時だ。損傷したデータが読み込み対象にならない限り,データの損傷を検知できない(図3左)。

 Oracleはデータの損傷を検知した時点でリストアを要求するため,長い期間損傷を受けたままディスクに格納されていると,その復旧は困難を極める。データが損傷する前のバックアップ・ファイルを戻し,順にログ・ファイルを当てていく処理が必要になる。リストア処理の間はもちろんシステムは利用できないため,大きな被害を被ることになる。

 米EMCのストレージ・ソフト「EMC Double Checksum」は,Oracleが行うエラー・チェックと同じチェックを,ストレージ装置内で行うソフトウエアである。OSのファイル・システムやデバイス・ドライバ,ホスト・バス・アダプタなどを通過した後で,再度データをチェックするためデータ書き込み時に起きたデータの損傷を検知できる(図3右)。データの保護機能を高めることが可能だ。

メリット3
I/O性能と管理性を両立

 Oracleを利用する際,ディスクI/Oの設定に悩むことが多い。OracleのディスクI/Oには2通りの方法があり,システムの特性に合わせて設定する必要がある。

 管理のしやすさを優先する場合は,OSのファイル・システムを介したディスクI/Oを選ぶ。I/O性能を優先する場合は,OSのファイル・システムを介さない「rawデバイス」を選ぶ。この2つの方法は長所と短所が裏返しの関係にあり,どちらかを選ぶと一方の長所は失われる。

米Oracleが定めたI/O仕様に準拠

 OSのファイル・システムを使う場合,ファイルの管理は容易に行えるが,I/O性能はrawデバイスよりも一般的に低い。ファイル・システム内にはバッファがあり,データの読み書きはすべてこのバッファを介して行われる。しかしRDBMS自身がバッファを持っているため,ファイル・システムのバッファはあまり役に立たない。それどころか,バッファ中のデータはOSがダウンすると消えてしまうため,OracleはSyncコマンドなどを発行してバッファ中のデータがディスクに書き込まれた時点で書き込み完了とみなす。その分,I/O性能が低下する。

 一方のrawデバイスは,バッファを介さないためI/O性能が低下しない。しかしOSのコピー・コマンドなどが使えないため,管理性が失われる。

 「VERITAS Database Edition」は,OSのファイル・システムとrawデバイスのいいとこ取りが可能なファイル・システムを提供する(図4[拡大表示])。米OracleがOracle9i Databaseで新しく決めたディスクI/Oの仕様「Oracle Disk Manager」に基づいたディスクI/Oを実装しており,バッファを介さない実装になっている。rawデバイスと同等のI/O性能が確保できると同時に,ファイル・システムであるため管理のしやすさは失われない。

(松山 貴之=matsuyam@nikkeibp.co.jp)