スナップショットに関する重要な考慮事項
スナップショットを使用して履歴を取得する場合は、以下の点を考慮する必要があります。
ストレージ要件
スナップショット機能を使用する場合は、テーブル内のスナップショットを保管するための追加のデータベースストレージ容量が必要になります。ストレージ要件は、スナップショットの生成頻度、システム上に存在するフィールドの数、フィールドのデータ型によって異なります。たとえば、システム上に大量のテキストフィールドが存在し、スナップショットの生成頻度が高い場合、ストレージ要件が厳しくなります。スナップショットの生成頻度が低い場合は、ストレージ要件が緩やかになります。
そのため、スナップショット機能を使用する前に、データベース用の十分な空き容量を確保する必要があります。
システム上にスナップショットが生成されていない状態でスナップショットの生成を有効にする
アイテムの編集回数がスナップショットの生成頻度の値を超えている状態で、管理者がスナップショットの生成を有効にした場合、編集回数が生成頻度の値に一致したときに、これまでに生成されなかったスナップショットとともに、システムによってスナップショットが生成されます。
たとえば、編集回数が 4900 回のアイテムについて考えてみます。スナップショットの生成頻度の値が 1000 に設定されている場合、5000 回目の編集操作が発生すると、システムによって合計 5 つのスナップショットが生成されます。この場合、1000 回目までの編集が最初のスナップショット、1001 回目から 2000 回目までの編集が 2 番目のスナップショット、2001 回目から 3000 回目までの編集が 3 番目のスナップショット、3001 回目から 4000 回目までの編集が 4 番目のスナップショット、4001 回目から 5000 回目までの編集が 5 番目のスナップショットとしてそれぞれ生成されることになります。
スナップショットの生成頻度を変更する
|
|
スナップショットの生成頻度を変更する前に、テスト用のセットアップ環境を使用して、目的とする頻度でのスナップショットの生成が正常に実行されるかどうかをテストしてください。テストの結果に問題がなければ、テスト時と同じ生成頻度の値を使用して、運用環境のマシンでスナップショットを生成してください。
|
スナップショットの生成頻度を変更すると、それ以降のスナップショットの生成処理が影響を受けます。生成頻度の変更前に作成されたスナップショットについては、影響を受けることはありません。生成頻度の変更前に作成されたスナップショットが存在する場合、アイテムの編集回数が変更後の生成頻度の値に一致したときに、生成頻度の変更前にさかのぼってスナップショットが生成されることはありません。
たとえば、編集回数が 5400 回のアイテムがあり、生成頻度の値として「1000」を使用して生成されたスナップショットが 5 つ存在する場合を考えてみます。この場合、以下のケースにおけるスナップショットの生成に注意する必要があります。
• ケース 1: 生成頻度の値を 1500 に変更した場合
管理者が生成頻度の値を 1500 に変更すると、編集回数が 1500 の倍数である 6000 回に達したときに、次のスナップショットが生成されます。その次のスナップショットは、編集回数が 1500 の次の倍数である 7500 回に達したときに生成されます。
• ケース 2: 生成頻度の値を 500 に変更した場合
管理者が生成頻度の値を 500 に変更すると、編集回数が 500 の倍数である 5500 回に達したときに、次のスナップショットが生成されます。その次のスナップショットは、編集回数が 500 の次の倍数である 6000 回に達したときに生成されます。
|
|
スナップショットの生成頻度を変更しても、既存のスナップショットが削除されることはありません。
|
スナップショットを強制的に生成する
診断コマンドを使用すると、指定の日付に最も近い編集でスナップショットを生成することも、特定のアイテムに対してスナップショットを再生成することもできます。
このコマンドは、以下のように指定します。
diag --diag=generatesnapshot --param=itemid=<itemid> [--param=regenerate] [--param=date=<edit-date>]
次に例を示します。
• プロパティで設定されている頻度ですべてのスナップショットを生成する場合は、以下のようにコマンドを指定します。
diag --diag=generatesnapshot --param=itemid=<itemid> --param=regenerate
• 指定の日付に最も近い編集でスナップショットを生成する場合は、以下のようにコマンドを指定します。
diag --diag=generatesnapshot --param=date='<edit-date>