Sun Java System Directory Server Enterprise Edition 6.3 トラブルシューティングガイド

トポロジの再初期化

この節では、トポロジを分析して、再初期化の必要なシステムを判別する方法について説明します。また、レプリケーショントポロジの再初期化に使用可能な方法についても説明します。


注 –

レプリカを再初期化する場合、すべてのコンシューマレプリカも再初期化する必要があります。


再初期化の対象の特定

トポロジを再初期化するときは、サプライヤからデータの適正なコピーを取得して、トポロジ内のコンシューマ上の不良データを上書きします。トポロジを再初期化する前に、同期されていない、再初期化の必要なシステムを特定してください。この重要な手順を実行することにより、同期済みのデータを上書きして時間を浪費することを防げます。

例として、次の図にハブ 1 でレプリケーションが停止しているトポロジを示します。

レプリケーショントポロジの図

ハブ 1 はデータをコンシューマ A と B に提供していたため、ハブ 1、コンシューマ A、およびコンシューマ B を再初期化する必要があります。

次の例では、コンシューマ A と B はハブ 2 からも更新を受信します。

ハブ 1 と2 がコンシューマ A と B の両方に更新を提供しているレプリケーション配備の図。

コンシューマ A と B は、両方のハブから更新を受信するため、再初期化されたレプリカのサプライヤと同期可能です。そのステータスは、トポロジを再初期化するために選択するレプリカによって変化します。RUV を使用して最新の変更を確実に保持するようにしている場合は、これらのレプリカが最新であるためにコンシューマ A と B を再初期化せずに済む可能性があります。

再初期化の手法の概要

次の手法を使ってトポロジを再初期化できます。

クリーンな再初期化の実行

どの再初期化手法でも不要なデータがコピーされます。たとえば、削除された値または状態情報を保持する値を含むデータや、その他の履歴データなどです。この不要なデータのために、ディスク上のエントリが大きくなります。また、エントリの状態情報の削除が必要になることもあります。レプリケーションの問題の根本原因が、この状態情報に関連している場合は、データが引き続きデータベース内に存在しているため、別のレプリケーションエラーの原因になる可能性があります。この不要で疑わしいデータをインポートすることを避けるために、トポロジのクリーンな再初期化を実行できます。

クリーンな再初期化を実行する際、より小さいデータベース、インデックス、および空の更新履歴ログを含むデータのクリーンなマスターコピーを作成します。クリーンな再初期化では、データベースファイルのバックアップコピーを作成しないため、ディスクスペースの消費が少なく、処理に要する時間も少なくなります。さらに、パフォーマンス低下の原因になり得るインデックスの断片化も減少します。ただし、データベースファイルを一貫した状態に保つため、クローン作成の対象となるサーバーを停止する必要があります。

ProcedureDirectory Server Version 6.3 でクリーンなマスターデータを作成する

  1. マスターサーバーを停止します。

  2. dsadm コマンドを使用して、データベースの内容をエクスポートします。

    -Q オプションを使用して、レプリケーション情報をエクスポートから除外します。


    # dsadm export -Q instance-path suffix-DN  /tmp/clean-export.ldif
  3. dsadm コマンドを使用して、エクスポートしたデータを同じマスターサーバーに再インポートします。


    # dsadm import instance-path /tmp/clean-export.ldif suffix-DN
    
  4. マスターサーバーを再起動します。

    これで、マスターサーバーに含まれるデータはクリーンになりました。つまり、より小さいデータベース、インデックス、および空の更新履歴ログがマスターサーバーに含まれています。

  5. クリーンなマスターデータを、システム内のほかのすべてのサーバーにインポートします。

    「再初期化の手法の概要」で説明した 3 つの手法のいずれかを使用します。

ProcedureDirectory Server Version 5.x でクリーンなデータを作成する

  1. マスターサーバーを停止します。

  2. db2ldif スクリプトを -r オプションを指定せずに実行して、データベースの内容をエクスポートします。


    # db2ldif -n database1 -a /tmp/clean-export.ldif
  3. ldif2db スクリプトを使用して、エクスポートしたデータを同じマスターサーバーに再インポートします。


    # ldif2db -n database1 -i /tmp/clean-export.ldif
  4. マスターサーバーを再起動します。

    これで、マスターサーバーに含まれるデータはクリーンになりました。つまり、より小さいデータベース、インデックス、および空の更新履歴ログがマスターサーバーに含まれています。

  5. クリーンなマスターデータを、システム内のほかのすべてのサーバーにインポートします。

    「再初期化の手法の概要」で説明した 3 つの手法のいずれかを使用します。

ProcedureDSCC を使用してサフィックスを再初期化する

この手法には、サプライヤとコンシューマサフィックス間のレプリケーションアグリーメントが必要です。この手法を使用して、1 つのサフィックスを再初期化するか、または小さいサフィックスを多数再初期化します。


注 –

以前のバージョンの Directory Server コンソールを使用している場合は、「設定」パネルを表示して「レプリケーション」ノードを選択します。コンシューマ内で初期化するサフィックスを選択します。コンシューマに対するレプリケーションアグリーメントを選択します。アグリーメントを選択して、コンシューマをすぐに初期化します。


  1. サプライヤサーバーで、DSCC にログインします。

  2. 「ディレクトリサーバー」タブをクリックしてから、「サフィックス」タブをクリックします。

  3. 「サフィックス」タブで、再初期化の必要なサフィックスを 1 つ以上選択します。

    ドロップダウンメニューから「データを用いたサフィックスの初期化」を選択します。

  4. 「手順 1」で、「既存のレプリケーションアグリーメントを使用して初期化する」を選択します。

  5. 「手順 2」で、データのコピー元のサプライヤサフィックスを指定します。

  6. コンシューマのエラーログをチェックして、インポートが完了したことを確認します。