データベースファイルの破損は、データベースサーバがデータベース内の破損部分にアクセスするまで判明しないことがあります。Sybase Central の[データベース検証ウィザード] や、検証ユーティリティ (dbvalid)、sa_validate システムプロシージャ、VALIDATE 文などのツールを使用して、データベースが有効であることを定期的に確認するようにしてください。
オプションの指定によって、チェックサム、インデックスデータの正当性、すべてのテーブルページがデータベース内のオブジェクトに属するかどうかを検証できます。データベースのエクスプレス検証 (-fx オプション) では、データ、連続したローの構造、外部キー関係は検証されません。また、VALIDATE 文に WITH EXPRESS CHECK 句を指定することでも、参照整合性チェックを無効にできます。
検証は、検証対象のテーブルに対する排他アクセスを取得せず、検証中にテーブルが変更された場合には、破損をレポートします。このことを考慮すれば、データベース上に他のアクティビティがない場合に、データベースの検証を行うのが最適です。データベースファイル内のベーステーブルが破損している場合は、メディア障害として対処し、前のバックアップからリカバリしてください。インデックスが破損している場合は、インデックスなしでデータベースをアンロードしてから、再ロードします。また、ALTER INDEX 文の REBUILD 句を使用してインデックス破損を修正することもできます。
WAIT BEFORE START 句を使用して BACKUP 文を実行すると、トランザクションの処理中にはバックアップが開始されません。バックアップ中に処理中のトランザクションがなかった場合、または BACKUP DATABASE WITH CHECKPOINT LOG RECOVER か WITH CHECKPOINT LOG NO COPY を指定した場合は、読み込み専用モードを使用するか、バックアップデータベースのコピーを検証して、バックアップデータベースの妥当性をチェックできます。
データベースの検証 (Sybase Central の場合)
データベースの検証 (SQL の場合)
データベースの検証 (コマンドラインの場合)
チェックサムを使用した破損の検出
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |