レコードの削除/更新、問題の追跡、検出、トラブルシューティングの方法について説明します。Issue <!-- div.margin { padding: 10px 40px 40px 30px; } table.tocTable { border: 1px solid; border-color: #e0e0e0; background-color: #fff; } .title { color: #d1232b; font-weight: normal; font-size: 28px; } h1 { color: #d1232b; font-weight: normal; font-size: 21px; margin-bottom: 5px; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: #cccccc; } h2 { color: #646464; font-weight: bold; font-size: 18px; } h3 { color: #000000; font-weight: bold; font-size: 16px; } h4 { color: #666666; font-weight: bold; font-size: 15px; } h5 { color: #000000; font-weight: bold; font-size: 13px; } h6 { color: #000000; font-weight: bold; font-size:14px; } ul, ol { margin-left: 0; list-style-position: outside; } --> 説明 何かが削除されたと思っていても、レコードの行き先や削除の仕方がわからないという問題はありませんか?London リリースの時点で、インスタンスでの削除をキャプチャするための削除復旧ツールが実装されています。削除によってレコードの更新も発生した場合は、インスタンスの削除もキャプチャする必要があります。また、スクリプト - バックグラウンドで実行されたすべてのスクリプトと、ロールバックオプションがオンになっている場合はそのスクリプトの影響を受けるすべてのレコードもログに記録されます。 したがって、これらのケースのいずれかが発生した場合、この記事では、削除がいつ発生したかを見つけるのに役立つ可能性のあるいくつかのテーブルとモジュールについて説明します。時間内にキャプチャされていれば、ロールバックコンテキストを介してデータを回復できるはずです。 手順 影響を受けるレコードを検索して検出する方法はいくつかあります。 シャドー・テーブルのチェック (sh$<tableName>) シャドーテーブルは、データベースに情報を格納する物理テーブルであり、これはさまざまなテーブル構造によって定義できます。 https://support.servicenow.com/kb_view.do?sysparm_article=KB0723580 TPC:テーブルは UI の実際のテーブルになります。TPH:テーブルがベース親テーブルになります。TPP: テーブルは、CMDB またはパーティション CMDB$ParX の 1 つになります (X はパーティション)。 不明な場合は、テーブルを表示するときに SQL デバッグをオンにすると、そのデータの取得元のテーブルを見つけることができます。この例では、インシデントは TPH であるため sh$task になります。このシャドウテーブルには、そのテーブルのすべての削除されたレコードが表示されます。重要なフィールド: sh$context - これは、この削除が記録されているロールバックコンテキストを示します。Sh$first_recorded - このレコードが削除された時刻が表示されます。 削除されたレコードの確認モジュール (sys_audit_delete) ここでは、監査対象のすべての削除済みレコードを見つけることができます。いくつかの重要なフィールドがあります。 トランザクション - このレコードを削除するために実行されたトランザクションを示します。sys_created_by - このレコードを削除したユーザーが表示されます。sys_created_on - レコードが削除された時刻が表示されます。 ロールバックシーケンスを確認 (sys_rollback_sequence) このテーブルには、ロールバック機能の一部としてトリガーされたすべての更新/削除が記録されます。 レコードのsys_idがある場合にこのテーブルを検索するには、ドキュメント ID 列で検索します。シャドーテーブルまたは別の方法からコンテキストを見つけた場合は、それを使用してコンテキスト列で検索できます。コンテキストを使用すると、そのコンテキストを介して削除および更新されたすべてのレコードを表示できます。 [増分変更をロールバック (sys_rollback_incremental)] をオンにします。 このテーブルは、特定のレコードの要素の更新を記録します レコードのsys_idがある場合にこのテーブルを検索するには、ドキュメント ID 列で検索します。シャドーテーブルまたは別の方法からコンテキストを見つけた場合は、それを使用してコンテキスト列で検索できます。これにより、更新のsys_rollback_sequenceとともにより多くの情報が提供され、どの列が更新されたかが具体的にわかります (インシデントのshort_descriptionなど)。重要なフィールド: 要素名 - 調整された列title="">アップグレードされた値 - その要素の新しい値が表示されます。Txn ID:この変更を行ったトランザクションタイミング:このレコードがいつ更新されたかが表示されます(注: PRB1343251 - sys_rollback_incrementalの「時期」フィールドはUTCではなくPSTとして挿入されるため、このフィールドでは夏時間に応じて6時間または7時間を追加する必要があります) スクリプト実行履歴を確認 (sys_script_execution_history) 実行履歴には、スクリプトを介して実行されたすべてのスクリプトが表示されます - バックグラウンド各履歴は、影響を受けるレコードの概要を提供します詳しくは sys_auditで newvalue = 'DELETED' を探します。 これにより、誰がいつ削除したかを確認できます。 これらのテーブルを見れば、探していたレコードの削除が見つかるはずです。 詳細については、次のドキュメントを参照してください: ロールバックと削除の回復 それでも削除されたレコードを見つけることができない場合は、いつでもサポートにご連絡いただければ、削除されたレコードを見つけるためにできる限りのお手伝いをさせていただきます。 また、削除のタイミングがすべてであるため、削除をサポートに知らせるのが早ければ早いほど、削除を追跡する可能性が高くなり、上記の手順を使用すると、削除をより迅速に追跡できるように調査結果をサポートできます。