Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー データベース管理 » データベースのメンテナンス » バックアップとデータリカバリ

 

バックアップの検証

データベースファイルの破損は、データベースサーバーがデータベース内の破損部分にアクセスするまで判明しないことがあります。バックアップとリカバリのプランの一環として、Sybase Central のデータベース検証ウィザードや、検証ユーティリティ (dbvalid) などのツールを使用して、データベースが有効であることを定期的に確認するようにしてください。データベースの検証は、バックアップの前後両方に実行してください。検証を実行するには、VALIDATE 権限が必要です。 VALIDATE 権限を参照してください。

検証のためにデータベースのバックアップコピーを起動するときは、-ds データベースオプションを使用して、DB 領域ファイルとトランザクションログのロケーションを指定できます。そうすることで、元のデータベースを稼働させたままで、データベースのバックアップコピーを元のデータベースと同じコンピューター上で起動できます。 -ds dbeng12/dbsrv12 データベースオプションを参照してください。

オプションの指定によって、チェックサム、インデックスデータの正当性、すべてのテーブルページがデータベース内のオブジェクトに属するかどうかを検証できます。データベースのエクスプレス検証 (-fx オプション) では、データ、連続したローの構造、外部キー関係は検証されません。

警告

データベースとトランザクションログのバックアップコピーには、どのような変更でも加えるべきではありません。バックアップ中に処理中のトランザクションがなかった場合、または BACKUP DATABASE WITH CHECKPOINT LOG RECOVER か WITH CHECKPOINT LOG NO COPY を指定した場合は、読み込み専用モードを使用するか、バックアップデータベースのコピーを検証して、バックアップデータベースの妥当性をチェックできます。

一方、トランザクションの処理中だった場合、または BACKUP DATABASE WITH CHECKPOINT LOG COPY を指定した場合は、検証の開始時にデータベースサーバーがデータベースのリカバリを実行する必要が生じます。リカバリを実行するとバックアップコピーに変更が加えられますが、これは望ましいことではありません。

バックアップが作成されているときに実行中のトランザクションがなかったという確信が持てる場合は、データベースサーバーによるリカバリの手順を実行する必要はありません。代わりに、読み込み専用のデータベースオプションを使用して、バックアップしたデータベースに妥当性検査を実行できます。-r dbeng12/dbsrv12 サーバーオプションを参照してください。

ヒント

WAIT BEFORE START 句を使用して BACKUP 文を実行すると、トランザクションの処理中にはバックアップが開始されません。

検証を実行するには、検証するオブジェクトに対する排他的なアクセスが必要です。このことを考慮すれば、データベース上に他のアクティビティがない場合に、データベースの検証を行うのが最適です。

データベースファイル内のベーステーブルが破損している場合は、メディア障害として対処し、前のバックアップからリカバリしてください。インデックスが破損している場合は、インデックスなしでデータベースをアンロードして、再ロードします。

 参照