Active Directory データベースのガベージ コレクション プロセスと、許可される間隔の計算

この記事では、Active Directory データベースのガベージ コレクション プロセスと、許可される間隔の計算について説明します。

適用対象: Windows Server 2012 R2、Windows Server 2016、Windows Server 2019
元の KB 番号: 198793

概要

Active Directory データベースには、エンタープライズ内の各ドメイン コントローラーで個別に実行されるガベージ コレクション プロセスが組み込まれています。

詳細

ガベージ コレクションは、Active Directory データベース内の空き領域を解放するように設計されたハウスキーピング プロセスです。 このプロセスは、エンタープライズ内のすべてのドメイン コントローラーで実行され、既定の有効期間は 12 時間です。 この間隔を変更するには、エンタープライズ全体の DS 構成オブジェクト (NTDS) で garbageCollPeriod 属性を変更します。

ドメイン内 Contoso.com のオブジェクトのパスは次のようになります。
CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=CONTOSO,DC=COM

Active Directory 編集ツールを使用して、garbageCollPeriod 属性を設定します。 サポートされているツールには、Adsiedit.msc、Ldp.exe、Active Directory サービス インターフェイス (ADSI) スクリプトが含まれます。

オブジェクトが削除されると、Active Directory データベースからは削除されません。 代わりに、オブジェクトは後日削除対象としてマークされます。 このマークは、他のドメイン コントローラーにレプリケートされます。 そのため、ガベージ コレクション プロセスは、以前に削除したオブジェクトの残りをデータベースから削除することから始まります。 これらのオブジェクトは 、廃棄石と呼ばれます。 次に、ガベージ コレクション プロセスによって不要なログ ファイルが削除されます。 最後に、プロセスによって最適化スレッドが開始され、追加の空き領域が要求されます。

さらに、Active Directory データベースを最適化するには、2 つの方法があります。 1 つの方法は、ガベージ コレクション プロセスの一部として実行されるオンライン最適化操作です。 この方法の利点は、操作を実行するためにサーバーをオフラインにする必要がないということです。 ただし、このメソッドは Active Directory データベース ファイル (Ntds.dit) のサイズを小さくしません。 もう 1 つの方法では、サーバーをオフラインにし、Ntdsutil.exe ユーティリティを使用してデータベースを最適化します。 この方法では、データベースを修復モードで開始する必要があります。 この方法の利点は、データベースのサイズが変更され、未使用の領域が削除される点です。 そのため、Ntds.dit ファイルのサイズが小さくなります。 このメソッドを使用するには、ドメイン コントローラーをオフラインにする必要があります。

garbageCollPeriod の制限:
最小値は 1、最大値は 1 週間は 168 です。 この値の既定値は 12 時間です。

トゥームストーンの有効期間の最小値:
Tombstone の有効期間の最小値は、KCC の実行期間の計算の目的で 2 日間です。

AD データベース レイヤーでは、追加のメトリックが適用されます。 TSL 日は、ガベージ コレクター間隔の 3 倍以下にすることはできません。 既定値の 12 時間に基づいて、TSL は 2 日以上です。 GC 間隔が 20 時間の場合、TSL の最小値は 3 日です (60 時間を超える必要があります)。 GC 間隔が 25 時間の場合、3 日 (75 時間) を超え、TSL の最小値は 4 日です。

DB レイヤーと KCC の両方で実行されるチェックのキャッチは、TSL が許可された最小値より低い場合、最小値が 2 日以上に戻らず、既定値の 60 日または 180 日に戻るということです。

重要

不一致のために TSL が既定値に修正された場合、ガベージ コレクション間隔の値も既定値の 12 時間に設定されます。

Tombstone の有効期間の既定値

履歴

Windows Server 2003 の既定の廃棄石の有効期間 (TSL) は 60 日間で、短すぎることが証明されました。 たとえば、事前設定されたドメイン コントローラーは、60 日を超える間転送中である可能性があります。 管理者は、TSL を超えるまで、レプリケーションエラーを解決したり、オフライン ドメイン コントローラーを操作に移したりすることはできません。 Windows Server 2003 Service Pack 1 (SP1) では、次のシナリオで TSL が 60 日から 180 日に増加しました。

  • Windows NT 4.0 ドメイン コントローラーは、Windows Server 2003 SP1 インストール メディアを使用して新しいフォレストを作成することで、Windows Server 2003 にアップグレードされます。
  • Windows Server 2003 SP1 コンピューターによって新しいフォレストが作成されます。

次のいずれかの条件に該当する場合、Windows Server 2003 SP1 は TSL の値を変更しません。

  • Windows 2000 ドメインは、WINDOWS Server 2003 と SP1 のインストール メディアを使用して Windows Server 2003 にアップグレードされます。
  • Windows Server 2003 SP1 は、Windows Server 2003 の元のリリース バージョンを実行しているドメイン コントローラーにインストールされます。

ドメインの TSL を 180 日に増やすには、次の利点があります。

  • データ復旧シナリオで使用されるバックアップの有効期間が長くなります。
  • メディア プロモーションからのインストールに使用されるシステム状態バックアップの有効期間が長くなります。
  • ドメイン コントローラーはオフラインになる可能性があります。 事前設定されたコンピューターでは、TSL の有効期限の頻度が低くなります。
  • ドメイン コントローラーは、オフライン時間が長い後にドメインに正常に戻ることができます。
  • 削除されたオブジェクトの知識は、元のドメイン コントローラーで長く保持されます。

フォレストの既定の設定は、フォレストの "誕生" 時の OS と、上記のようなそこからのアップグレード方法によって異なります。

フォレストで使用される TSL の値がわからない場合は、明示的に設定し、必要に応じて msDS-deletedObjectLifetime も設定することをお勧めします。
リファレンス: AD ごみ箱: 理解、実装、ベスト プラクティス、トラブルシューティング