チェックポイントは、データベースのスナップショットを保持するために使用されます。システム障害が発生した場合、TimesTenでは、ログ・ファイルとともにチェックポイント・ファイルを使用して、データベースをトランザクションの一貫性を保つ最後の状態にリストアできます。
最後のチェックポイント処理以降に変更されたデータのみが、チェックポイント・ファイルに書き込まれます。チェックポイント処理では、最後のチェックポイント以降に変更されたブロックのデータベースをスキャンします。次に、それらの変更についてチェックポイント・ファイルを更新し、不要なログ・ファイルを削除します。
TimesTenでは、次の2種類のチェックポイントが提供されます。
TimesTenでは、非ブロッキング・チェックポイントが自動的に作成されます。
TimesTenでは、非ブロッキング・チェックポイントがバックグラウンドで自動的に開始されます。非ブロッキング・チェックポイントはファジー・チェックポイントと呼ばれることもあります。このチェックポイントの頻度はアプリケーションで調整できます。非ブロッキング・チェックポイントでは、データベースのロックが必要ないため、チェックポイントの処理中に、複数のアプリケーションが同じデータベースでトランザクションを非同期にコミットまたはロールバックできます。
トランザクション一貫性チェックポイントを構成するために、アプリケーションでttCkptBlocking()プロシージャをコールして、ブロッキング・チェックポイントを開始できます。ブロッキング・チェックポイントの処理中、他の新しいトランザクションはチェックポイント・トランザクションの後のキューに入れられます。長時間実行するトランザクションがあると、他の多数のトランザクションを待機させることとなります。チェックポイントの記録にはリカバリに必要な情報が含まれているため、ブロッキング・チェックポイントからのリカバリにログは必要ありません。
システム障害やプロセス障害によって、データベースが無効になったり破損したりすると、データベースへのすべての接続が無効になります。アプリケーションが障害のあったデータベースに再接続すると、サブデーモンがデータベースに新しいメモリー・セグメントを割り当て、チェックポイント・ファイルおよびログ・ファイルからそのデータをリカバリします。
リカバリ中、最新のチェックポイントがメモリーに読み込まれ、永続的にコミットされたすべてのトランザクションが適切なログ・ファイルからロールフォワードされます。コミットされていないトランザクション、またはロールバックされたトランザクションはリカバリされません。
障害発生時も絶えずTimesTenデータにアクセスする必要のあるアプリケーションについては、「レプリケーション」を参照してください。