Active Directory レプリケーション エラー 8451: "レプリケーション操作でデータベース エラーが発生しました"

この記事では、Active Directory レプリケーション エラー 8451 "レプリケーション操作でデータベース エラーが発生しました" の解決策を示します。

適用対象: サポートされているすべてのバージョンの Windows Server
元の KB 番号: 2645996

注:

ホーム ユーザー: この記事は、テクニカル サポート エージェントと IT プロフェッショナルのみを対象としています。 問題を解決するためのヘルプをお探しの場合は、 Microsoft コミュニティにお問い合わせください

現象

この記事では、Active Directory Domain Services (AD DS) 操作が失敗し、エラー 8451 "レプリケーション操作でデータベース エラーが発生しました" という状況の症状と原因について説明します。この記事では、この問題の解決策についても説明します。
次のいずれかの現象が発生する可能性があります。

  • データベース エラーを識別する 1 つ以上の画面上のエラー メッセージ、ログに記録されたイベント、または診断出力が表示されます。 そのエラーの可能な形式は次のとおりです。

    10 進コード 16 進コード テキスト コード エラー メッセージ
    8451 0x2103 ERROR_DS_DRA_DB_ERROR レプリケーション操作でデータベース エラーが発生しました。
    -1018 0xfffffc06 JET_errReadVerifyFailure データベース ページのチェックサム エラー。
    -1047 0xfffffbe9 JET_errInvalidBufferSize データ バッファーが列サイズと一致しません。
    -1075 0xfffffbc JET_errOutOfLongValueID 長値 ID カウンターが最大値に達しました (オフラインの最適化を行って、空き時間と未使用の LongValueID を解放します)。
    -1206 0xfffffb4a JET_errDatabaseCorrupted データベース ファイル以外または破損している db。
    -1414 0xfffffa7a JET_errSecondaryIndexCorrupted セカンダリ インデックスが破損しています。 データベースを最適化する必要があります。
    -1526 0xfffffa0a JET_errLVCorrupted 長い値のツリーで破損が発生しました。
    -1601 0xfffff9bf JET_errRecordNotFound キーが見つかりませんでした。
    -1603 0xfffff9b JET_errNoCurrentRecord レコード上にない通貨。
  • Dcpromo.exe 失敗し、エラー 8451 が生成されます。
    ユーザー インターフェイスには、次のメッセージが表示されます。

    操作は次の理由で失敗しました。

    ディレクトリ パーティション<をレプリケートできなかったActive Directory Domain Servicesリモート Active Directory ドメイン コントローラー <ヘルパー DC> からの障害が発生したパーティション>の DN パス。<dns ドメイン名>。<最上位レベルのドメイン>。

    レプリケーション操作でデータベース エラーが発生しました。

    Dcpromo.log ファイルには、次の情報が含まれています。

    <date><time> [INFO] NstdInstall for contoso.com returned 8451
    <date><time> [INFO] DsRolepInstallDs returned 8451
    <date><time> [ERROR] Directory Service へのインストールに失敗しました (8451)
    <date><time> [INFO] Starting Service NETLOGON

  • Repadmin.exe は、レプリケーション試行が状態 8451 で失敗したことを報告します。 一般的に 8451 状態を引用する Repadmin.exe コマンドには、次のものが含まれますが、これらに限定されません。

    • Repadmin /kcc

    • Repadmin /rehost

    • Repadmin /replicate

    • Repadmin /replsum

    • Repadmin /showrepl

    • Repadmin /showreps

    • Repadmin /showutdvec

    • Repadmin /syncall

      Repadmin を使用してレプリケーションの問題をトラブルシューティングする方法の詳細については、「 Repadmin を使用した Active Directory レプリケーションの監視とトラブルシューティング」を参照してください。

      次の例は、CONTOSO-DC2 から CONTOSO-DC1 への受信レプリケーションが失敗し、"レプリケーション アクセスが拒否されました" というメッセージが生成されたことを示すコマンドからの repadmin /showreps 出力を示しています。

      Default-First-Site-Name\CONTOSO-DC1
      DSA オプション: IS_GC
      サイト オプション: (なし)
      DSA オブジェクト GUID: b6dc8589-7e00-4a5d-b688-045aef63ec01
      DSA invocationID: b6dc8589-7e00-4a5d-b688-045aef63ec01
      ==== 受信ネイバー ======================================
      DC=contoso,DC=com
      RPC 経由の Default-First-Site-Name\CONTOSO-DC2
      DSA オブジェクト GUID: 74fbe06c-932c-46b5-831b-af9e31f496b2
      最後の試行 @ <日付><時刻> が失敗しました。結果は 8451 (0x2103):
      レプリケーション操作でデータベース エラーが発生しました。
      連続するエラー。
      最後の成功 @ <日付><時刻>。

  • イベント ビューアーは、8451 エラーを引用する 1 つ以上のイベントを一覧表示します。 次の表に、8451 エラーを引用する一般的なイベントのイベント ソースとイベント ID を示します (イベント ソースとイベント ID の順序)。

    イベント ソース イベント ID イベント メッセージ
    Microsoft-Windows-ActiveDirectory_DomainService 1039 拡張エラー 8451 内部イベント: Active Directory Domain Services次のオブジェクトを処理できませんでした。
    Microsoft-Windows-ActiveDirectory_DomainService 1084 拡張エラー 8451 内部イベント: Active Directory では、次のソース ドメイン コントローラーから受け取った変更で、次のオブジェクトを更新できませんでした。 これは、ドメイン コントローラー上の Active Directory への変更の適用中にエラーが発生したためです。
    Microsoft-Windows-ActiveDirectory_DomainService 1308 拡張エラー 8451 ナレッジ整合性チェッカー (KCC) では、次のディレクトリ サービスを使用したレプリケートの試行が失敗したことが検出されました。
    Microsoft-Windows-ActiveDirectory_DomainService 1699 拡張エラー 8451 ローカル ドメイン コントローラーは、次のディレクトリ パーティションに対して要求された変更を取得できませんでした。 その結果、次のネットワーク アドレスでドメイン コントローラーに変更要求を送信できませんでした。
    NTDS レプリケーション 2108 拡張エラー 8451 とセカンダリ エラー値 1075 このイベントには、以前にログに記録された 1084 イベントの REPAIR PROCEDURES が含まれています。 このメッセージは、このレプリケーション先での Active Directory データベースの整合性に関する特定の問題を示します。 レプリケートされた変更を次のオブジェクトに適用しているときに、データベース エラーが発生しました。 データベースに予期しない内容があり、変更が行われないようにしました。 オブジェクト: CN=justintu@contoso.com,OU=marketing,OU=5thWard,OU=Houston,DC=Contoso,DC=com オブジェクト GUID: 2843919c-345c-4f57-bc1a-4ed5acbcf9e2 Source domain controller: 173ee10f-4c28-4acd-a2d7-61af8d4d3010._msdcs。Contoso.com ユーザー アクション これらのアクションがいずれも成功しない場合、レプリケーション エラーが続く場合は、このドメイン コントローラーを降格して、もう一度昇格する必要があります。 追加のデータ プライマリ エラー値: 8451 レプリケーション操作でデータベース エラーが発生しました。 セカンダリ エラー値: -1075
    NTDS レプリケーション 2108 拡張エラー 8451 とセカンダリ エラー値-1526 このイベントには、以前にログに記録された 1084 イベントの REPAIR PROCEDURES が含まれています。 このメッセージは、このレプリケーション先での Active Directory データベースの整合性に関する特定の問題を示します。 レプリケートされた変更を次のオブジェクトに適用しているときに、データベース エラーが発生しました。 データベースに予期しない内容があり、変更が行われないようにしました。 オブジェクト: CN=justintu@contoso.com,OU=marketing,OU=5thWard,OU=Houston,DC=Contoso,DC=com オブジェクト GUID: 2843919c-345c-4f57-bc1a-4ed5acbcf9e2 Source domain controller: 173ee10f-4c28-4acd-a2d7-61af8d4d3010._msdcs。Contoso.com ユーザー アクション これらのアクションがいずれも成功しない場合、レプリケーション エラーが続く場合は、このドメイン コントローラーを降格して、もう一度昇格する必要があります。 追加のデータ プライマリ エラー値: 8451 レプリケーション操作でデータベース エラーが発生しました。 セカンダリ エラー値: -1526
    NTDS レプリケーション 2108 拡張エラー 8451 とセカンダリ エラー値 -1414 このイベントには、以前にログに記録された 1084 イベントの REPAIR PROCEDURES が含まれています。 このメッセージは、このレプリケーション先での Active Directory データベースの整合性に関する特定の問題を示します。 レプリケートされた変更を次のオブジェクトに適用しているときに、データベース エラーが発生しました。 データベースに予期しない内容があり、変更が行われないようにしました。 オブジェクト: CN=justintu@contoso.com,OU=marketing,OU=5thWard,OU=Houston,DC=Contoso,DC=com オブジェクト GUID: 2843919c-345c-4f57-bc1a-4ed5acbcf9e2 Source domain controller: 173ee10f-4c28-4acd-a2d7-61af8d4d3010._msdcs。Contoso.com ユーザー アクション これらのアクションがいずれも成功しない場合、レプリケーション エラーが続く場合は、このドメイン コントローラーを降格して、もう一度昇格する必要があります。 追加のデータ プライマリ エラー値: 8451 レプリケーション操作でデータベース エラーが発生しました。 セカンダリ エラー値: -1414
    NTDS 全般 1039 拡張エラー 8451。 内部イベント: Active Directory で次のオブジェクトを処理できませんでした。
    NTDS KCC 1925 拡張エラー 8451 次の書き込み可能なディレクトリ パーティションのレプリケーション リンクを確立できませんでした。
    NTDS レプリケーション 1084 拡張エラー 8451 内部イベント: Active Directory では、次のソース ドメイン コントローラーから受け取った変更で、次のオブジェクトを更新できませんでした。 これは、ドメイン コントローラー上の Active Directory への変更の適用中にエラーが発生したためです。
    NTDS レプリケーション 1699 拡張エラー 8451 ローカル ドメイン コントローラーは、次のディレクトリ パーティションに対して要求された変更を取得できませんでした。 その結果、次のネットワーク アドレスでドメイン コントローラーに変更要求を送信できませんでした。
  • ドメイン コントローラーで NTDS 診断ログ レベルを上げると、イベント ビューアー 8451 エラーに関連する追加のイベントが一覧表示されます。 次の表に、8451 エラーを含む他のイベントに頻繁に付随するイベントのイベント ソースとイベント ID を示します。

    イベント ソース イベント ID イベント メッセージ
    内部処理 エラー 1601 の 1481 内部エラー: オブジェクトに対する操作が失敗しました。 追加データ: エラー値: 2 000020EF: NameErr: DSID-032500E8, 問題 2001 (NO_OBJECT), data -1601, best match of: "
    内部処理 1173 とエラー 1075 内部イベント: Active Directory で次の例外と関連パラメーターが検出されました。 例外: e0010004 パラメーター: 0 追加データ エラー値: -1075 内部 ID: 205086d
    内部処理 エラー 1526 の 1173 内部イベント: Active Directory で次の例外と関連パラメーターが検出されました。 例外: e0010004 パラメーター: 0 追加データ エラー値: -1526 内部 ID: 205036b
    内部処理 エラー 1603 の 1173 内部イベント: Active Directory で次の例外と関連パラメーターが検出されました。 例外: e0010004 パラメーター: 0 追加データ エラー値: -1603 内部 ID: 2050344
    NTDS ISAM エラー 1018 の 474 8192 (0x00002000) バイトのオフセット 3846455296 (0x00000000e5444000) のファイル 'E:\NTDS\Data\ntds.dit' から読み取られたデータベース ページは、ページ チェックサムの不一致により検証に失敗しました。 予想されるチェックサムが323677604 (0x134aeda4) され、実際のチェックサムが2081515684されました (0x7c1168a4)。 読み取り操作はエラー -1018 (0xfffffc06) で失敗します。 この状態が続く場合は、以前のバックアップからデータベースを復元します。 この問題は、ハードウェアの障害が原因である可能性があります。 問題の診断に関する詳細については、ハードウェア ベンダーにお問い合わせください。
    NTDS ISAM 488 NTDS (396) NTDSA: データベース C:\WINDOWS\NTDS\ntds.dit (4621,7905) のテーブル データテーブルでデータの不整合が検出されました。
  • Dcdiag.exe ユーティリティを実行すると、次のような出力が生成されます。

    テストの開始: レプリケーション

    * レプリケーションの確認
    [レプリケーションチェック,<[DC 名>] 最近のレプリケーション試行が失敗しました。
    ソース DC から<宛先 DC> へ<>
    名前付けコンテキスト: <失敗した名前付けコンテキストの DN パス>
    レプリケーションでエラーが生成されました (8451)。
    レプリケーション操作でデータベース エラーが発生しました

  • Active Directory サイトとサービスで、ソース DC の接続オブジェクトを右クリックし、[ 今すぐレプリケート] を選択すると、コマンドは失敗し、次のようなメッセージが生成されます。

    ドメイン コントローラー ソース DC からドメイン コントローラー宛先 DC に名前付けコンテキスト <%directory パーティション名%> を<同期しようとしたときに、次のエラーが発生しました。>><
    "レプリケーション操作でデータベース エラーが発生しました。
    操作は続行されません。

エラー コードをデコードする方法

Microsoft エラー検索ツールを使用して、この記事で説明されているエラー コードをデコードできます。 8451 エラーとそれに伴うエラーに関連するエラー コードをデコードすると、次の情報が生成されます。

C:>err 8451
10 進数 8451 / 16 進0x2103の場合:
ERROR_DS_DRA_DB_ERROR winerror.h
レプリケーション操作でデータベース エラーが発生しました。
"8451" に対して 2 つの一致が見つかりました

C:>err -1414
10 進数 -1414 / 16 進0xfffffa7aの場合:
JET_errSecondaryIndexCorrupted esent98.h
/セカンダリ インデックスが破損しています。データベースを最適化する必要がある/
"-1414" に 1 つの一致が見つかりました

C:>err -1526
10 進数 -1526 / 16 進0xfffffa0aの場合:
JET_errLVCorrupted esent98.h
/長い値のツリーで破損が発生しました/
"-1526" に 1 つの一致が見つかりました

C:>err -1603
10 進数 -1603 / 16 進0xfffff9bdの場合:
JET_errNoCurrentRecord esent98.h
/レコードにない通貨/
"-1603" に 1 つの一致が見つかりました

C:>err -1075
10 進数 -1075 / 16 進0xfffffbcdの場合:
JET_errOutOfLongValueIDs esent98.h
/長値 ID カウンターが最大値に達しました。 (オフラインデフラグを実行して空き/未使用を解放する
LongValueIDs)
/
"-1075" に 1 つの一致が見つかりました

C:>err -1601
10 進数 -1601 / 16 進0xfffff9bfの場合:
JET_errRecordNotFound esent98.h
/キーが見つかりませんでした/
"-1601" に 1 つの一致が見つかりました

C:>err -1047
10 進数 -1047 / 16 進0xfffffbe9の場合:
JET_errInvalidBufferSize esent98.h
/データ バッファーが列サイズと一致しない/
"-1047" に 1 つの一致が見つかりました

C:>err -1018
10 進数 -1018 / 16 進0xfffffc06の場合:
ese.h JET_errReadVerifyFailure
/データベース ページのチェックサム エラー/
JET_errReadVerifyFailure esent98.h
/* データベース ページのチェックサム エラー */
"-1018" に 2 つの一致が見つかりました

C:>err -1206
10 進数 -1206 / 16 進0xfffffb4aの場合:
JET_errDatabaseCorrupted esent98.h
/データベースファイルまたは破損していないdb/
"-1206" に 1 つの一致が見つかりました

原因

状態 8451: "レプリケーション操作でデータベース エラーが発生しました" には、次のような複数の根本原因があります。

  • Active Directory データベースまたは Active Directory データベース インデックスが破損している可能性があります。 これは、次の理由によって発生する可能性があります。
    • ハードウェアの障害:
      • ディスク
      • コントローラー
      • コントローラー キャッシュ
    • 古いドライバー:
      • コントローラー
    • 古いファームウェア:
      • コンピューター BIOS
      • コントローラー
      • ディスク
    • 突然の電力損失。
    • 残留オブジェクト。
    • 長い値の ID カウンターが最大値に達しました。
      • ESE 列型 JET_coltypLongTextJET_coltypLongBinary は、長い値の列型と呼ばれます。 これらの列は、大きな文字列と大きなバイナリ オブジェクトであり、プライマリ インデックスから離れた別の B+ ツリーに格納できます。 長い値がプライマリ レコードとは別に格納されると、長い値 ID (LID) で内部的にキーが設定されます。
    • msExchSecurityDescriptor 属性のセキュリティ記述子が無効です。

解決方法

重要

このセクションの手順の実行には注意が必要です。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 変更する前に、問題の発生に備えて復元用にレジストリのバックアップを作成してください。

問題の 1 回の発生を解決する方法

エラーが 1 つのドメイン コントローラーでのみ発生し、分離された問題と思われる場合は、影響を受けるサーバーでデータベースのオフラインデフラグを実行するのが最善かつ迅速な解決策です。 その方法については、「 Active Directory データベースのオフライン最適化を実行する方法」を参照してください。

オフラインの最適化で問題が解決しない場合は、影響を受けるドメイン コントローラーを降格してから、再プロモートします。 その方法については、「 ドメイン コントローラーとドメインの降格」を参照してください。

定期的な問題を解決する方法

問題が再発した場合は、診断データを収集します。

  1. レプリケーション イベントと内部処理の NTDS 診断ログを 5 レベルで有効にします。

    NTDS 診断ログを増やすには、次のレジストリ サブキーの下にある移行先ドメイン コントローラーのレジストリで次のREG_DWORD値を変更します。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics

    次のエントリの値を 5 に設定します。

    • レプリケーション イベント
    • 内部処理

    注:

    レベル 5 のログ記録は非常に詳細です。 問題が解決された後、両方のキーの値を既定値の 0 に復元する必要があります。 これらのイベントを分離して識別するには、Directory Services イベント ログのフィルター処理を行う必要があります。

    Microsoft ソフトウェア更新プログラムの説明に使用される標準的な用語の詳細については、次のサポート技術情報の記事を参照してください。

  2. 増加したログから生成された新しいイベントのイベント ログで、元の 8451 エラーを明確に表示するエラー値を確認します。 たとえば、エラー値 が -1526 の内部処理イベント ID 1173 は、長い値のツリーに破損があることを示します。

  3. ログ記録の増加に関する追加情報に基づいて、潜在的な解決策については、次の表を参照してください。

    10 進コード 16 進コード テキスト コード エラー メッセージ 考えられる解決策
    -1018 0xfffffc06 JET_errReadVerifyFailure データベース ページのチェックサム エラー ハードウェア、ファームウェア、ドライバーを確認します。 バックアップからの復元。降格/昇格。
    -1047 0xfffffbe9 JET_errInvalidBufferSize データ バッファーが列サイズと一致しない 832851受信レプリケーションは、イベント ID が 1699、エラー 8451、または jet エラー -1601 のドメイン コントローラーで失敗します この修正プログラムは使用できなくなりました。
    -1075 0xfffffbcd JET_errOutOfLongValueIDs 長値 ID カウンターが最大値に達しました。 (オフラインデフラグを実行して、空きまたは未使用LongValueIDsを解放する) オフラインデフラグを実行します。
    -1206 0xfffffb4a JET_errDatabaseCorrupted データベース以外のファイルまたは破損した db ハードウェア、ファームウェア、ドライバーを確認します。 Esentutl/k コマンドを実行します。 Ntdsutil ファイルの整合性とセマンティック データベース分析 (SDA) コマンドを実行し、オフラインデフラグを実行します。それ以外の場合は、バックアップから復元するか、降格/昇格します。
    -1414 0xfffffa7a JET_errSecondaryIndexCorrupted セカンダリ インデックスが破損しています。 データベースを最適化する必要があります。 オフラインデフラグを実行します。
    -1526 0xfffffa0a JET_errLVCorrupted 長い値のツリーで破損が発生しました ハードウェア、ファームウェア、ドライバーを確認します。コマンドを Esentutl /k 実行します。 Ntdsutil** ファイルの整合性と SDA コマンドを実行し、オフラインデフラグを実行します。 それ以外の場合は、バックアップから復元するか、降格して昇格します。
    -1601 0xfffff9bf JET_errRecordNotFound キーが見つかりませんでした ハードウェア、ファームウェア、ドライバーを確認します。コマンドを Esentutl /k 実行します。 Ntdsutil ファイルの整合性と SDA コマンドを実行し、オフラインデフラグを実行します。それ以外の場合は、バックアップから復元するか、降格して昇格します。
    -1603 0xfffff9bd JET_errNoCurrentRecord レコードにない通貨 ハードウェア、ファームウェア、ドライバーを確認します。k コマンドを Esentutl /実行します。 Ntdsutil ファイルの整合性と SDA コマンドを実行し、オフラインデフラグを実行します。それ以外の場合は、バックアップから復元するか、降格して昇格します。
    8451 0x2103 ERROR_DS_DRA_DB_ERROR レプリケーション操作でデータベース エラーが発生しました ハードウェア、ファームウェア、ドライバーを確認します。コマンドを Esentutl /k 実行します。 Ntdsutil ファイルの整合性と SDA コマンドを実行し、オフラインデフラグを実行します。 それ以外の場合は、バックアップから復元するか、降格/昇格します。
  4. これらすべての方法が失敗した場合は、バックアップからドメイン コントローラーを復元するか、降格してから再プロモートします。

詳細

TCP の場合と同じように、垂直ジェット データベース スタックを一番下から確認します (基になるレイヤーが "良い" と評価された後にのみ次のレイヤーに進みます)。

Layer Ntdsutil コマンド Esentutl コマンド
(1) 物理的な整合性 同等の値はありません Esentutl /k
(2) 拡張可能記憶域エンジン (ESE) の論理整合性 Ntdsutilファイル整合性 Esentutl /g
(3) アプリケーションの論理整合性 Ntdsutilセマンティック データベース分析 + Ntdsutilcompact SDA + Esentutl /d に相当するものはありません

データ収集

Microsoft サポートからの支援が必要な場合は、「 Active Directory レプリケーションの問題に TSS を使用して情報を収集する」で説明されている手順に従って情報を収集することをお勧めします。