破損の予防、検出および修復

データ・ブロックの破損は、非常に破壊的で修復が困難な場合があります。破損は、発生した場合に重大なアプリケーションやデータベースの停止時間およびデータ損失が発生することがあり、さらに数時間、数日および数週間検出されなかった場合は、検出時にアプリケーションの停止時間がより長くなります。残念ながら、データベース内のデータ破損を包括的に回避、検出および修復する1つの方法はありません。破損の発生源および原因は、メモリー、ハードウェア、ファームウェア、ストレージ、オペレーティング・システム、ソフトウェア、ユーザー・エラーなどの多岐に渡るからです。さらに悪いことには、Oracleデータ・ブロックのセマンティクスやOracleのデータ・ブロックの変更方法を理解していないサード・パーティのソリューションでは、データ・ブロック破損の防止および検出ができません。サード・パーティのリモート・ミラーリング・テクノロジは、データ破損をデータベース・レプリカ(スタンバイ)に伝播する可能性があり、これは二重障害、データ損失および停止時間の長期化につながります。サード・パーティのバックアップおよびリストア・ソリューションでは、リストアまたは検証操作が実行されるまで破損したバックアップまたは無効なセクターを検出できないため、リストア時間が長くなり、データが失われる可能性があります。

Oracle MAAには、物理ブロック破損、論理ブロック破損、逸脱した書込みおよび書込みの欠落を含む、あらゆる形のデータ・ブロック破損を防止、検出および修復する包括的な計画があります。これらの追加の保護手段は、最も包括的なOracleデータ・ブロック破損の防止、検出および修復ソリューションを提供します。この計画の詳細は、My Oracle Supportのノート「Data Guard構成における破損の検出、防止および自動修復のベスト・プラクティス」(Doc ID 1302539.1)に記載されています。

様々な手動操作チェック、およびランタイムやバックグラウンドの破損チェックに対するブロック破損チェックを次にまとめます。データベース管理者と作業チームは、Oracle Recovery Manager (RMAN)バックアップの実行、RMANのCHECK LOGICAL検証、または重要なオブジェクトに対するANALYZE VALIDATE STRUCTUREコマンドの実行など、手動チェックを組み込むことができます。手動チェックは、更新や問合せがあまり行われないデータを検証する際に、特に重要です。

ランタイム・チェックは、問合せや更新が頻繁に行われるデータの破損を、即座にまたはランタイムに検出する点で非常に優れています。ランタイム・チェックにより、破損が回避されたり、自動的に修正されたりするため、より強力にデータを保護し、アプリケーションの可用性をさらに高めることが可能です。Exadataに新しいバックグラウンド・チェックが導入され、アプリケーション・オーバーヘッドなしで、ディスクのスキャンとスクラブが自動的かつインテリジェントに行われ、物理的に破損したブロックは自動的に修正されます。

表3-1 ブロック破損チェックの概要

チェック 機能 物理ブロック破損 論理ブロック破損

手動チェック

Dbverify、Analyze

物理的ブロック・チェック

ブロック内およびオブジェクト間の論理的な一貫性チェック

手動チェック

RMAN

バックアップおよびリストア操作中の物理的ブロック・チェック

ブロック内論理チェック

手動チェック

ASMスクラブ

物理的ブロック・チェック

ブロック内の複数の論理チェック

ランタイム・チェック

Oracle Active Data Guard

1. 転送および適用中に、物理的ブロック・チェックをスタンバイにおいて継続的に実行

2. 強力なデータベース分離により、データベースの単一点障害を排除

3. Oracle Database 12cリリース2のファイル・ブロック・ヘッダーを含む、ブロック破損の自動修正

4. データベースの自動フェイルオーバー

1. DB_LOST_WRITE_PROTECTが有効化されている場合、書込み欠落を検出(11.2以降)。11.2.0.4およびData Guard Brokerでは、プライマリ・データベースで書込み欠落が検出された場合に、プライマリを停止可能。

2. スタンバイでDB_BLOCK_CHECKINGが有効化されている場合、ブロック内の追加の論理チェックが可能

ランタイム・チェック

データベース

DB_BLOCK_CHECKSUMにより、インメモリー・データ・ブロックおよびREDOチェックサムを検証

DB_BLOCK_CHECKINGにより、インメモリーのブロック内チェックを検証

Oracle Database 18c以降では、シャドウ消失書込み保護を有効にすると、追跡対象のデータ・ファイルのシステム変更番号(SCN)がOracleで追跡され、書込み欠落が早期に検出されます。書込み欠落が検出されると、エラーが即時に返されます。

この表の後にあるシャドウ消失書込み保護についての説明を参照してください。

ランタイム・チェック

ASMおよびASMソフトウェアのミラー化

(Exadata、SuperclusterおよびZero Data Loss Recovery Applianceに固有)

書込み中に、正常なASMエクステント・ブロックのペアが存在する場合、読取りおよび書込みの暗黙的なデータ破損検出と自動修復を実行

.

ランタイム・チェック

DIX + T10 DIF

オペレーティング・システムからHBAコントローラ、ディスク(ファームウェア)に至るまでのチェックサム検証。認定済のLinux、HBAおよびディスクに対する読取りと書込みを検証。

.

ランタイム・チェック

ハードウェアおよびストレージ

Oracle統合が行われていないため、限定的なチェック。チェックサムが最も一般的。

Oracle統合が行われていないため、限定的なチェック。チェックサムが最も一般的

ランタイム・チェック

Exadata

書込みに対する包括的なHARDチェック

書込みに対するHARDチェック

バックグラウンド・チェック

Exadata

自動ハード・ディスク・スクラブおよび修復。不良セクターの検出および修正。

.

シャドウ消失書込み保護

Oracle Database 18cの新機能のシャドウ消失書込み保護では、データが大きく破損する前に書込みが失われたことを検出します。Oracle Data Guardスタンバイ・データベースを必要とせずに、データベース、表領域またはデータファイルのシャドウ消失書込み保護を有効化できます。シャドウ消失書込み保護は、消失書込みを迅速に検出して即時に対応し、データベースでデータ破損が原因で発生する可能性のあるデータ損失を最小限に抑えます。

関連項目:

これらのビューと初期化パラメータの詳細は、Oracle AI Databaseリファレンス

My Oracle Supportノート1302539.1