23 DBVERIFY: オフライン・データベース検査ユーティリティ
DBVERIFYは外部コマンドライン・ユーティリティで、物理データ構造に対する整合性チェックを実行します。
DBVERIFYは、オフラインまたはオンライン・データベースおよびバックアップ・ファイル上で使用できます。DBVERIFYを使用するのは、バックアップ・データベース(またはデータ・ファイル)をリストアする前にそれが有効であることを確認する場合です。また、データ破損の問題が発生した場合に診断機能としても使用します。DBVERIFYはオフライン・データベースに対して実行できるため、整合性チェックが非常に高速に行えます。
DBVERIFYによるチェックは、キャッシュ管理(データ・ブロック)ブロックのみに制限されています。DBVERIFYは、データ・ファイルでのみ使用します。制御ファイルまたはREDOログに対しては機能しません。
DBVERIFYには、2つのコマンドライン・インタフェースがあります。最初のインタフェースでは、確認の対象として単一データ・ファイルのディスク・ブロックを指定します。次のインタフェースでは、確認の対象としてセグメントを指定します。いずれのインタフェースでも、最初にdbv
コマンドを記述します。次の項では、これらのインタフェースの記述について説明します。
- DBVERIFYを使用した単一データ・ファイルのディスク・ブロックの検査
このモードでは、DBVERIFYによって、単一データ・ファイルの1つ以上のディスク・ブロックがスキャンされ、ページのチェックが実行されます。 - DBVERIFYを使用したセグメントの検査
このモードでは、表セグメントまたは索引セグメントをDBVERIFYの検査対象に指定できます。
親トピック: その他のユーティリティ
23.1 DBVERIFYを使用した単一データ・ファイルのディスク・ブロックの検査
このモードでは、DBVERIFYによって、単一データ・ファイルの1つ以上のディスク・ブロックがスキャンされ、ページのチェックが実行されます。
検査するファイルが、Oracle Automatic Storage Management (Oracle ASM)ファイルである場合、USERID
を指定する必要があります。DBVERIFYでOracle ASMファイルにアクセスするには、Oracleインスタンスに接続する必要があるためです。
- 単一ファイルのブロックを検査する際のDBVERIFY構文
DBVERIFY
を使用して単一ファイルのブロックを検証するための構文を参照してください。 - 単一ファイルのブロックを検査する際のDBVERIFYパラメータ
単一ファイルのブロックを検査するために使用できるDBVERIFY
のパラメータを参照してください。 - 単一データ・ファイルのDBVERIFY出力例
単一データ・ファイルの検証例およびその説明を参照してください。
23.1.1 単一ファイルのブロックを検査する際のDBVERIFY構文
DBVERIFY
を使用して単一ファイルのブロックを検証するための構文を参照してください。
単一データ・ファイルのディスク・ブロックを検査するときに使用するDBVERIFY
の構文は次のとおりです。
23.1.2 単一ファイルのブロックを検査する際のDBVERIFYパラメータ
単一ファイルのブロックの検証に使用できるDBVERIFY
パラメータを参照してください。
パラメータ | 説明 |
---|---|
|
ユーザー名およびパスワードを指定します。 このパラメータは、検査するファイルがOracle ASMファイルである場合にのみ必要です。 このパラメータを指定する場合は、ユーザー名とパスワードの両方を入力する必要があります。入力しない場合、 |
|
検証するデータベース・ファイルの名前。 |
|
検証する開始ブロック・アドレス。ブロック・アドレスは、Oracleブロックで指定します(オペレーティング・システム・ブロックではありません)。 |
|
検証する終了ブロック・アドレス。 |
|
|
|
このパラメータは省略可能です。デフォルトはありません。 |
|
ログ情報を書き込むログ・ファイルの名前とパスを指定します。デフォルトでは、端末画面への出力となります。 |
|
|
|
オンライン・ヘルプを表示します。特定のバージョンの |
|
使用するパラメータ・ファイルの名前を指定します。 |
23.1.3 単一データ・ファイルに対するDBVERIFYの出力例
単一のデータファイルの検証例と、その説明を参照してください。
次に、ファイルt_db1.dbf
の検証例を示します。フィードバック・パラメータには値100が指定され、処理された100ページごとに1つのピリオド(.)が表示されます。
% dbv FILE=t_db1.dbf FEEDBACK=100
出力例
このコマンドの出力は次のようになります。
.
.
.
DBVERIFY - Verification starting : FILE = t_db1.f
DBVERIFY - Verification complete
Total Pages Examined : 120424
Total Pages Processed (Data) : 79507
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 15236
Total Pages Failing (Index): 0
Total Pages Processed (Other): 5626
Total Pages Processed (Seg) : 1
Total Pages Failing (Seg) : 0
Total Pages Empty : 20055
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 25565681 (0.25565681)
ノート
- Pages = ブロック
- Total Pages Examined =ファイルのブロック数。
- Total Pages Processed (Data) = 検査されたブロック数(フォーマットされたブロック)。
- Total Pages Processed (Other) = メタデータ・ブロック。これらのブロックは検証されていないため、Total Pages Failing (Other)の出力はありません。
- Total Pages Processed (Seg) = セグメント・ヘッダーのブロック数。
- Total Pages Failing (Data) = データ・ブロック・チェック・ルーチンで違反したブロック数。
- Total Pages Failing (Index) = 索引ブロック・チェック・ルーチンで違反したブロック数。
- Total Pages Marked Corrupt = キャッシュ・ヘッダーが無効で、
DBVERIFY
がブロック・タイプを識別できないブロック数。 - Total Pages Influx = 読取りおよび書込みが同時に行われるブロック数。
DBVERIFY
の実行時にデータベースがオープンされている場合は、一貫性を維持したイメージの取得のためにDBVERIFY
によってブロックが複数回読み込まれます。ただし、データベースがオープンされているため、読取りおよび書込みが同時に行われるブロックがある可能性があります(INFLUX
)。その場合、DBVERIFY
では、絶え間なく変化するページの一貫性のあるイメージは取得できません。 - Total Pages Encrypted = データまたは索引のみでなく、すべてのブロック(データ、索引、その他、セグメント)。Total Pages Encryptedがゼロ以外の場合は、DBVERIFYが「DBVerifyは暗号化ブロックに対して論理チェックを実行できません。RMANを使用する必要があります。」というメッセージを出力します。
23.2 DBVERIFYを使用したセグメントの検査
このモードでは、DBVERIFYを使用して表セグメントまたは索引セグメントの検査を指定できます。
確認中のセグメントに行連鎖ポインタがあることを確認します。
このモードでは、検査するセグメント(データ・セグメントまたは索引セグメント)を指定する必要があります。また、セグメントについての情報をデータベースから取得するため、SYSDBA
権限でデータベースにログインする必要があります。
このモードでは、セグメントはロックされます。1つの索引セグメントを指定する場合、親表はロックされます。IOTなど、一部の索引には親表はありません。
- セグメント検証時のDBVERIFY構文
DBVERIFY
を使用してセグメントを検証するための構文を参照してください。 - 単一のセグメントを検査する際のDBVERIFYパラメータ
単一のセグメントを検査するために使用できるDBVERIFY
パラメータを参照してください。 - 検査対象のセグメントに対するDBVERIFYの出力例
検査対象のセグメントの検証の例を参照してください。
23.2.1 セグメントを検査する際のDBVERIFY構文
DBVERIFY
を使用してセグメントを検証するための構文を参照してください。
セグメントを検査するときのDBVERIFY
の構文は次のとおりです。
親トピック: DBVERIFYを使用したセグメントの検査
23.2.2 単一のセグメントを検査する際のDBVERIFYパラメータ
単一セグメントの検証に使用できるDBVERIFY
パラメータを参照してください。
パラメータ | 説明 |
---|---|
|
ユーザー名およびパスワードを指定します。ユーザー名とパスワードのどちらも入力しない場合、エラー コンテナ・データベース(CDB)に接続する場合は、username@cdbname/passwordと入力します。 |
|
検証するセグメントを指定します。セグメント識別子は、表領域ID番号( たとえば、表領域番号( |
|
このパラメータは省略可能です。デフォルトはありません。 |
|
ログ情報を書き込むファイルを指定します。デフォルトでは、端末画面への出力となります。 |
|
|
|
オンライン・ヘルプを表示します。 |
|
使用するパラメータ・ファイルの名前を指定します。 |
親トピック: DBVERIFYを使用したセグメントの検査
23.2.3 検査対象のセグメントに対するDBVERIFYの出力例
検査対象のセグメントに対する検証の例を参照してください。
次に、表領域セグメントを指定してDBVERIFY
コマンドを使用する例、およびDBVERIFY
操作によって生成される出力を示します。
% dbv userid=system/ SEGMENT_ID=2.5.37767
このコマンドの出力は次のようになります。
DBVERIFY - Verification starting : SEGMENT_ID = 2.5.37767 DBVERIFY - Verification complete Total Pages Examined : 640 Total Pages Processed (Data) : 0 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 0 Total Pages Failing (Index): 0 Total Pages Processed (Other): 591 Total Pages Processed (Seg) : 8 Total Pages Failing (Seg) : 0 Total Pages Empty : 13 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Total Pages Encrypted : 28 Highest block SCN : 7877587 (0.7877587)