Active Directory データベースのオフライン最適化を実行する

この記事では、Active Directory データベースのオフラインデフラグを実行する方法について説明します。

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

概要

Active Directory では、ガベージ コレクション プロセスの一部として、データベースのオンライン最適化が一定の間隔で自動的に実行されます。 (既定では、これは 12 時間ごとに発生します)。オンライン最適化では、データベース ファイル (Ntds.dit) のサイズは縮小されず、代わりにデータベース内のデータ ストレージが最適化され、ディレクトリ内の新しいオブジェクトの領域が解放されます。

オフラインの最適化を実行すると、内部断片化なしで新しいバージョンのデータベース ファイルが作成されます。 また、すべてのインデックスも再作成されます。 元のデータベース ファイルの断片化に応じて、新しいファイルのサイズが大幅に小さくなります。

Active Directory データベースのオフライン最適化を実行する

Active Directory データベースのオフライン最適化を実行するには、次の手順に従います。

  1. Active Directory をバックアップします。 Windows Server Backup では、オンライン時の Active Directory のバックアップがネイティブにサポートされます。 これは、バックアップ ウィザードでコンピューター上のすべてのバックアップを行うオプションを選択した場合、またはウィザードで [システム状態 ] を選択して個別にバックアップする場合に自動的に発生します。

  2. 次のどちらかの手順を実行します。

    • Active Directory Domain Servicesまたは LDS インスタンスを停止します。
    • msconfig を起動し、ブート ウィンドウに移動します。 構成する OS インストールを選択します。 [ブート オプション] セクションで [セーフ ブート] を選択し、Active Directory 修復項目も選択します。 [OK] をクリックすると、再起動するように求められます。 コンピューターを再起動します。
  3. ディレクトリ サービス復元モード SAM のローカル管理者アカウントに対して定義されているパスワードを使用して、管理者アカウントにログオンします。

  4. コマンド プロンプト ウィンドウを開きます。

  5. NTDSUTIL は、最適化中に一時データベースを作成するために TEMP 環境変数と TMP 環境変数を使用します。 使用されている標準ボリュームの空き領域が、圧縮されたデータベースのサイズより小さい場合は、次のエラーが表示されます。

    ファイルのメンテナンス: d:\compactDB にコンパクト
    デフラグ モードの開始...
    ソース データベース: D:\windows\NTDS\ntds.dit
    ターゲット データベース: d:\compactDB\ntds.dit

    最適化の状態 (% 完了)

    0 10 20 30 40 50 60 70 80 90 100

    |----|----|----|----|----|----|----|----|----|----|

    ..........................操作がエラー -1808 ( JET_errDiskFull、ディスクに空き領域がありません) で終了しました。

    この場合、環境変数 TMP と TEMP を、タスクに十分な空き領域があるボリュームに設定します。 たとえば、次の設定を使用します。

    Md d:\temp
    Set tmp=d:\temp
    Set temp=d:\temp
    

    注:

    この問題は、データベースの整合性チェック中にも発生する可能性があります。

  6. NTDSUTIL を実行します。

  7. Active Directory データベース インスタンスを選択するには、「activate instance ntds」と入力します。 LDS データベースを圧縮する場合は、LDS インスタンス名を使用します。

  8. 「ファイル」と入力し、Enter キーを押します。

  9. 情報を入力し、Enter キーを押します。 Active Directory データベースとそのログ ファイルのパスとサイズに関する現在の情報が表示されます。 パスに注意してください。

  10. 圧縮されたデータベースを格納するための十分なドライブ領域を持つ場所を確立します。

  11. [compact to <drive>:\<directory>]と入力して、Enter キーを押します。 このコマンドでは、プレースホルダー <ドライブ> と <ディレクトリ> は、前の手順で確立した場所のパスを表します。

    注:

    ディレクトリ パスを指定する必要があります。 パスにスペースが含まれている場合は、パス全体を引用符で囲む必要があります。 たとえば、「 c:\new フォルダー」に「compact」と入力します

  12. Ntds.dit または AdamNtds.dit という名前の新しいデータベースが、指定したパスに作成されます。

  13. 「quit」と入力し、Enter キーを押します。 コマンド プロンプトに戻る場合は、「quit」と入力します。

  14. エラーなしで最適化が成功した場合は、画面の Ntdsutil.exe の指示に従います。 次のコマンド を入力して、ログ ディレクトリ内のすべてのログ ファイルを削除します del drive :\ pathToLogFiles \*.log

    手順 5 で説明した現在のデータベース パスの古いデータベース ファイルに新しい Ntds.dit または AdamNtds.dit ファイルをコピーします。

    注:

    Edb.chk ファイルは削除されていません。

  15. Active Directory Domain Servicesまたは LDS インスタンスを停止した場合は、ここで再起動できます。

  16. Active Directory 復元モードで作業している場合は、msconfig を起動し、ブート ウィンドウに移動します。 構成するオペレーティング システムのインストールを選択します。 [ブート オプション] セクションで [セーフ ブート] をオフにする場合にクリックします。 [OK] をクリックすると、再起動するように求められます。 コンピューターを再起動します。