Sun Java System Directory Server Enterprise Edition 6.1 管理ガイド

LDIF からのレプリカの初期化

ProcedureLDIF からレプリケートされたサフィックスを初期化する

次の手順では、LDIF ファイルからレプリケートされたサフィックスを初期化するために使用する一般的な手順を説明します。

DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。

DSCC を使用したレプリケートされたサフィックスのオンライン初期化は、コンシューマを初期化または再初期化する簡単な方法です。ただし、大量のエントリを初期化する場合、この処理には時間がかかることがあります。この場合は、コマンド行によるコンシューマのオフライン初期化の方が効率的な場合があります。

  1. レプリケーションアグリーメントを設定していることを確認します。

    この操作は、レプリカを初期化するに実行する必要があります。

  2. マスターのレプリカサフィックスから、元のサフィックスデータのコピーを LDIF ファイルにエクスポートします。

    「レプリケートされたサフィックスを LDIF にエクスポートする」を参照してください。

    マルチマスターレプリケーション環境では、オリジナルマスターからエクスポートした LDIF ファイルを使用して他のマスターとコンシューマの両方を初期化できます。カスケード型のレプリケーションでは、同じファイルを使用してハブレプリカとそのコンシューマを初期化できます。

    どの場合にも、設定が完了しているマスターレプリカからエクスポートした LDIF ファイルから開始する必要があります。これ以外の任意の LDIF ファイルにはレプリケーションメタデータが含まれないため、これを使用してすべてのレプリカを初期化することはできません。

  3. 部分レプリカを初期化する場合、ファイルをフィルタして、レプリケートされる属性のみを維持し、そのファイルをすべてのコンシューマサーバーに転送します。

    「部分レプリケーションのための LDIF ファイルのフィルタリング」を参照してください。

  4. レプリカを初期化します。

    次のいずれかの操作を行います。

    • オフライン (停止している) サーバーで高速に初期化する場合、dsadm import コマンドを使用します。


      $ dsadm import instance-path LDIF_file suffix-DN
      
    • LDIF ファイルからレプリカをオンラインで初期化するには、 dsconf import コマンドを使用します。


      $ dsconf import -h host -p port LDIF_file suffix-DN
      

      dsconf import を使用すると、dsadm import を使用した場合よりも遅くなりますが、インポート操作中にサーバーを停止する必要がありません。

    サフィックスの初期化の詳細と例については、「サフィックスの初期化」を参照してください。コマンドの詳細な使い方については、dsadm(1M) および dsconf(1M) を参照してください。

  5. (省略可能) 各アグリーメントで、サフィックスが初期化済みとなっていることを確認します。


    $ dsconf show-repl-agmt-status -h host -p port suffix-DN destination-host:destination-port 
    

Procedureレプリケートされたサフィックスを LDIF にエクスポートする

DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。

  1. 次のいずれかのコマンドを使用して、レプリケートされたサフィックスの内容を LDIF ファイルにエクスポートします。

    • オフラインエクスポートの場合、次のように入力します。


      $ dsadm export instance-path suffix-DN LDIF_file
      
    • オンラインエクスポートの場合、次のように入力します。


      $ dsconf export -h host -p port suffix-DN LDIF_file
      

    次の例では、レプリケートされたサフィックス dc=example,dc=com 全体とレプリケーション情報をファイル example_replica_export.ldif にエクスポートします。


    $ dsconf export -h host2 -p 1389 dc=example,dc=com  \
     /local/ds/ldif/example_export_replica.ldif

    詳細については、「LDIF へのバックアップ」 および dsadm(1M) および dsconf(1M) のマニュアルページを参照してください。

部分レプリケーションのための LDIF ファイルのフィルタリング

DSCC を使った場合、部分レプリケーションが設定されたレプリカの初期化は透過的に行われます。初期化時に、選択されている属性だけがコンシューマに送られます。

部分レプリケーションを設定した場合、エクスポートされた LDIF ファイルをコンシューマサーバーにコピーする前に、未使用の属性をフィルタで除外します。Directory Server にはこの目的で fildif ツールがあります。このツールは、指定した LDIF ファイルをフィルタリングし、レプリケーションアグリーメントに定義されている属性セットが許可する属性だけを残します。

このツールはサーバーの設定を読み取り、属性セットの定義を決定します。設定ファイルを読み取るには、fildif ツールを root として実行するか、プロセスおよびファイルを所有するユーザー (nsslapd-localuser 属性によって指定) として実行する必要があります。たとえば、次のコマンドは、前の例で dc=example,dc=com サフィックスからエクスポートされたファイルをフィルタリングします。


$ fildif -i /local/ds1/ldif/example_master.ldif \
 -o /local/ds1/ldif/filtered.ldif -b "cn=host2.example.com:1389, \
 cn=replica,cn=\\"dc=example,dc=com\\",cn=mapping tree,cn=config" -p /local/ds1

fildif コマンドの場所については、「コマンドの場所」を参照してください。

-i オプションと -o オプションは、それぞれ入力ファイルと出力ファイルです。-b オプションは、部分レプリケーションが定義されているレプリケーションアグリーメントの DN です。次のコマンドを使用して、この DN を検索できます。


$ ldapsearch -h host -p port -D cn=admin,cn=Administrators,cn=config -w - \
 -b "cn=config" "(&(objectclass=nsds5replicationagreement) (nsDS5ReplicaPort=replica-port) \
 (nsDS5ReplicaHost=replica-host))" dn

次に例を示します。


$ ldapsearch -h host2 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - \
 -b "cn=config" "(&(objectclass=nsds5replicationagreement) \
 (nsDS5ReplicaPort=2090)(nsDS5ReplicaHost=host2))" dn
Enter bind password:
version: 1
dn: cn=host2:1389,cn=replica,cn=dc\=example\,dc\=com,cn=mapping tree,cn=config

fildif ツールのすべてのコマンド行構文については、fildif(1) のマニュアルページを参照してください。

fildif ツールを使用して作成した filtered.ldif ファイルを使用して、このレプリケーションアグリーメントの対象となるコンシューマを初期化できます。このファイルをコンシューマサーバーに転送し、「LDIF ファイルからのデータのインポート」で説明するとおりにインポートします。