アーカイブ |一般的な概要Detailsアーカイブアプリケーションは、毎日不要になったデータをプライマリテーブルから一連のアーカイブテーブルに移動します。アーカイブテーブルはフラット化されたテーブルです。ベーステーブルと子テーブルは単一のテーブルにフラット化され、参照フィールドは文字列に変換されます。 プラグイン: データアーカイブプラグインは、OOTBインスタンス上にデフォルトでアクティブになっています。 プラグインの詳細: 名前:Data Archiving ID:com.glide.auxdb ドキュメントへのリンク: データアーカイブ アーカイブルール: 「アーカイブルール」を作成して、アーカイブするデータを絞り込めます。アプリケーションには、これを設定できる [アーカイブルール] モジュールがあり、ルールの名前とテーブル名は必須フィールドです。ルールに条件を追加することをお勧めします。ルールが作成される際に[非アクティブ] ステータスに設定されていますので、[アクティブ] を [true] に変更してください。 ナビゲーション: 「システムアーカイブ]」> 「アーカイブルール」 アクティブか非アクティブかにかかわらず、テーブルごとに設定できるアーカイブルールは 1 つだけです。 SYSテーブルに対してアーカイブルールを定義することはサポートしていませんが、例外はプロパティ glide.ui.permitted_tables にリストされています。 テーブルローテーションが有効になっているテーブルはアーカイブできません。 アーカイブルールの即時アクティブ化 スケジュール設定済みジョブによるアーカイブルールの実行を待機したくない場合は、アーカイブルールを手動で開始できます。 [システムアーカイブ] ➔ [アーカイブルール] に移動します。実行させたいアーカイブルールを選択します。[ Run Archive Now ] 関連リンクをクリックします。 アーカイバージョブ: アーカイブルールが設定され、アクティブなアーカイブルールがある場合、アーカイバージョブはこれらのルールを処理してレコードをアーカイブします。[アーカイブ] スケジュールジョブは、1 時間の繰り返し間隔ジョブとして設定されます。スレッドをglide.db.archiverというバックグラウンドスレッドに渡すクラスを呼び出します。 アーカイブプロセスがシステムリソースを消費しすぎないようにするために、以下のアーカイブプロパティを使用して、アーカイブルールが 1 回の間隔で処理するレコードの数を制御できます。ただし、これらのプロパティを変更することはお勧めしません。 上記のプロパティを変更することで、アーカイバージョブが 1 時間を超えることができ、複数のアーカイブジョブも実行できます。 アーカイブプロセスは次の順序で行われます: アーカイブルール基準を満たす N 件のレコードをロード (N はバッチサイズプロパティ)ar_* テーブルに挿入元のテーブルからレコードを削除するsys_archive_log エントリの作成 レコードがアーカイブされると、アーカイブログ (sys_archive_log) テーブルにエントリが作成され、レコードの xml がペイロードとして保存されます。デバッグに役立つ列がいくつかあります。[アーカイブ実行]、[アーカイブ]、[復元済み、ID]、[テーブルから] です。 アーカイブ実行:このレコードがアーカイブされた特定のアーカイブ実行の詳細が表示されます アーカイブ:条件を満たすアーカイブルール 復元済み:レコードが復元されていない場合、このフィールドは空白になります。レコードが復元された場合、このフィールドにはレコードが復元された日時が含まれます 移動元テーブル:レコードが削除されたテーブル アーカイブログは消去されていなく、且つこのテーブルからレコードを削除することはお勧めしません。アーカイブログエントリを削除すると、アーカイブされたレコードのデータを復元できなくなります。 アーカイブログにエントリが存在することだけで、レコードが一度アーカイブされたこと (復元されたかどうかにかかわらず)をシステムが把握する必要があります。その場合、関連のレコードはスキップされます。つまり、アーカイブエンジンは復元されたものを再アーカイブしません。 アーカイブルールでは、アーカイブする関連レコードを指定できるため、関連レコードと添付ファイルもアーカイブできます。元のレコードを復元する場合は、関連レコードも復元する必要があります (関連レコードテーブルはアーカイブ後に独立しているため、これは自動的には行われません)。 レコードの手動アーカイブ: 各フォームビューに移動し、「Archive Record」関連リンクをクリックすると、各レコードを手動でアーカイブできます。 リストアクション「Archive Record」を選択すると、リストビューから複数または単一のレコードを手動でアーカイブできます。 ドキュメントのリンク: Lists in the classic environment レコード見積もり: アーカイブルールごとに、ジョブの次回実行時にアーカイブされるレコードの数を決定できます。これを行うには、各アーカイブルールの UI アクション 「Record Estimate」をクリックします。 UI アクションをクリックすると、フォームに 2 つのフィールド「Record estimate」と「Estimate Date」が表示されます。 「Record estimate」:次回の実行でアーカイブされる推定レコードを表示する。 「Estimate Date」:実行された現在の日時で更新されます。 アーカイブ破棄ルール: アーカイブ破棄ルールは、指定された期間が経過するとアーカイブされたデータを削除します。アーカイブ破棄者バッチプロセスは、アーカイブされたデータに対してアーカイブ破棄ルールを実行します。バッチプロセスの一部のパラメーターを設定できます。 ナビゲーション:[システムアーカイブ] > [アーカイブ破棄ルール] [ 次のスクリプトを使用して、実行させたい破棄ルールごとにジョブスケジュールを作成します (注意:最初に準本番インスタンスでテストしてください)。new GlideArchiver().archiveDestroyByRule(xxxx); ここで、xxxx は破棄ルールの sys_id です。 ドキュメントへのリンク: 破棄ルールの作成 アーカイブ診断ページ: UI ページのリンク:https://<your-instance>.service-now.com/ui_page.do?sys_id=71681edc9f3120007aaa207c7f4bcc2b このページには、アクティブなアーカイブルールの数の詳細、アーカイブされた合計レコード、およびアーカイブジョブの前回の実行が表示されました。 Additional InformationData ArchivingBlog: Data Archival Walkthrough 既知の問題: PRB608048 - Archive threads can run in parallel on separate nodes for long running archive processes, degrading performance and adding noise errors to the log. PRB1296280/KB0695364 - It is not possible to archive all cmdb_rel_ci record when CI records are Archived, leading to CompactRelation errors when the CMDB Identification Engine fails to consider that a CI may be Archived and throws an error, causing major syslog table growth PRB1164902/KB0780321 - Archive Destroy rule does not work when archived record is from a scoped application PRB592993/KB0791832 - Archiving throughput impeded by too many restored records FAQ: 質問: ローテーションされたテーブルに対してアーカイブを有効にすることはできますか?いいえ、ローテーションされたテーブルに対してアーカイブを有効にすることはできません。 質問: 関連レコードをアーカイブできますか?はい。「Archive Related Records 」 関連リストを使用して、関連レコードをアーカイブルールに追加します。 質問: すべてのユーザーがアーカイブされたレコードをレビューできますか?デフォルトでは、アーカイブされていない同じ名前のテーブルの ACL が使用されます。たとえば、アーカイブされたインシデント [ar_incident] テーブルは、アーカイブされていないインシデント [incident] テーブルに対して定義された ACL を使用します。詳細については、 Data archiving を参照してください。 質問: 破棄ルールを使用してアーカイブログからレコードを削除できますか?破棄ルールは、アーカイブテーブル(ar*)からのみレコードを削除するために使用できる 質問: テーブルクリーナーを使用してアーカイブログから を削除できますか?まだ破棄されていないアーカイブ対象は関連のログからレコードを削除すると、復元できなくなります。