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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの保守 » データベースの検証

 

チェックサムを使用した破損の検出

「チェックサム」は、データベース・ページがディスク上で変更されたかどうかを判断するために使用します。チェックサムを有効にしてデータベースを作成した場合、チェックサムはページがディスクに書き込まれる直前に計算されます。そのページが次にディスクから読み出されるときに、ページのチェックサムが再計算されて、ページに保存されているチェックサムと比較されます。チェックサムが異なる場合は、ディスク上でページが変更されており、エラーが発生します。

次の文を実行することによって、データベースがチェックサムを有効にして作成されたかどうかをチェックできます。

SELECT DB_PROPERTY ( 'Checksum' );

チェックサムがオンの場合、このクエリは ON を返します。それ以外の場合は OFF を返します。

チェックサムの検証

チェックサムを有効にしてデータベースを作成した場合、ディスク・ページの妥当性を確認できます。チェックサムの検証には、DBA または VALIDATE 権限が必要です。

チェックサムを有効にしたデータベースの場合、チェックサムは各データベース・ページで計算され、ページがディスクに書き込まれる際にその値が格納されます。検証ユーティリティ (dbvalid) または Sybase Central のデータベース検証ウィザードを使用してチェックサムの検証を実行できます。この検証では、ディスクからのデータベース・ページの読み込みとそのページに対するチェックサムの計算が行われます。計算されたチェックサムが格納されているページのチェックサムと一致しない場合、ディスク上で、または書き込み中に、そのページが変更または破壊されています。1 つまたは複数のページが破壊されている場合、エラーが返されて無効なページに関する情報がデータベース・サーバ・メッセージ・ウィンドウに表示されます。

チェックサム検証の詳細については、VALIDATE 文検証ユーティリティ (dbvalid)を参照してください。

チェックサムの自動作成

次のような場合には、データベース作成時に指定したチェックサム設定に関係なく、データベースのチェックサムが有効になります。

  • 重要なページ   チェックサムが有効かどうかに関係なく、データベース・サーバはすべてのデータベース内の重要なデータベース・ページのチェックサムを計算します。計算されたチェックサムは、オフラインの破損を検出するために使用します。チェックサムによって、重要なページの破損が原因で他のデータが破損するのを防ぐことができます。データベース・サーバがチェックサムを計算するので、チェックサムが有効に指定されていないデータベースが壊れた場合、データベース・サーバは致命的なエラーとともに停止します。

    また、チェックサムが有効に指定されていないデータベースを検証した場合でも、そのデータベースに重要なページの破損があると、dbvalid はチェックサム検証に関する警告を返します。

  • Windows Mobile データベース   Windows Mobile 上で動作しているデータベースに対しては、データベース・ファイルの破損を早期に検出するために、チェックサムが自動的に有効になります。

  • 一部のストレージ・メディアで動作しているデータベース   信頼性の低いストレージ・メディア (ネットワーク・ドライブやリムーバブル・ドライブなど) 上でデータベースが実行されている場合、そのデータベースに対するチェックサムが自動的に有効になります。データベースがそのようなデバイス上にある間はチェックサムが有効なままになり、ページが書き込まれるたびに、ページにチェックサムが追加されます。信頼性の高いストレージ・デバイスにデータベースを移動すると、チェックサムが追加されたページがデータベース・サーバのキャッシュに入ったときに、そのページに対してチェックサムの検証が実行されます。


データベースの検証
テーブルの検証