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 サーバ - データベース管理 » データベースの起動とデータベースへの接続 » データベース・ファイルの処理 » トランザクション・ログ

 

チェックポイント・ログの概要

データベース・ファイルはページで構成されています。ページとは、ハード・ディスク内の決められたサイズの領域です。「チェックポイント・ログ」は、データベース・ファイルの末尾にあり、system DB 領域に保存されます。セッション中は必要に応じてチェックポイント・ログにページが追加され、セッションの最後にはチェックポイント・ログ全体が削除されます。

データベース・サーバでは、ページが更新される (「ダーティ」になる) 前に次の処理が実行されます。

  • ページがメモリに読み込まれ、データベース・キャッシュ内に格納されます。

  • 元のページのコピーが作成されます。これらのコピーされたページを「チェックポイント・ログ」と呼びます。

データベース・サーバは、キャッシュに保持されるメモリにページ A を読み込みます。ページ A はチェックポイント・ログに追加されます。

ページに加えた変更は、キャッシュ内のコピーに適用されます。パフォーマンス上の理由から、ページはすぐにはディスクのデータベース・ファイルに書き込まれません。

ページ A に行われた変更がキャッシュ内のコピーに適用されます。これをページ B と呼びます。ページ A への変更は、トランザクション・ログに記録されます。

キャッシュが満杯になると、変更されたページはディスクに書き込まれます。チェックポイント・ログのコピーは変更されません。

ページ B がデータベースに書き込まれますが、ページ A のコピーはチェックポイント・ログ内では変更されずそのままとなります。トランザクション・ログには、チェックポイント以降にページ A に行われた変更が含まれます。
チェックポイントの概要

「チェックポイント」とは、ダーティ・ページがすべてディスクに書き込まれる時点のことで、ディスク上にあるデータベースの既知の一貫性のある状態を示します。チェックポイントの後で、チェックポイント・ログの内容が削除されます。空のチェックポイント・ログ・ページは、同一セッション中はチェックポイント・ログに存在し、新しいチェックポイント・ログ・データに再利用できます。チェックポイント・ログのサイズが大きくなると、データベース・ファイルも大きくなります。

チェックポイント時には、データベースの全データがディスクのデータベース・ファイルに格納されます。データベース・ファイルの情報は、トランザクション・ログの情報と一致します。リカバリ時には、データベースはまず最新のチェックポイントでリカバリされ、次にチェックポイント以降の変更内容が適用されます。

空のチェックポイント・ログ・ページもすべて含むチェックポイント・ログ全体は、セッションが終了するたびに削除されます。チェックポイント・ログを削除すると、データベースのサイズが小さくなります。

データベース・サーバは、チェックポイントを開始し、その実行中に他の操作を実行できます。ただし、チェックポイントがすでに進行中だった場合、ALTER TABLE や CREATE INDEX など、新しいチェックポイントを開始する操作はすべて、現在のチェックポイントの完了を待ちます。

参照