Red Hat Training

A Red Hat training course is available for Red Hat Directory Server

15.12. レプリケーショントポロジーからのサプライヤーの削除

レプリケーショントポロジーからサプライヤーを完全に削除することは、単にサプライヤーエントリーを削除するよりも複雑です。これは、トポロジー内のすべてのサプライヤーが他のサプライヤーに関する情報を保存し、サプライヤーが利用できない状態になった場合でも、その情報を保持するためです。
レプリケーショントポロジーに関する情報、つまり、相互に、および同じレプリケーショングループ内の他のレプリカに更新を提供するすべてのサプライヤーは、レプリカ更新ベクトル (RUV) と呼ばれるメタデータのセットに含まれています。RUV には、ID と URL、ローカルサーバー上の最新の変更状態番号 (CSN)、最初の変更の CSN などのサプライヤーに関する情報が含まれています。サプライヤーとコンシューマーはいずれも RUV 情報を保存し、これを使用してレプリケーションの更新を制御します。
サプライヤーを正常に削除するには、そのメタデータを設定エントリーとともに削除する必要があります。
  1. 削除するレプリカで、 更新を防ぐためにデータベースを読み取り専用モードにします。
    # ldapmodify -D "cn=Directory Manager" -W -x -p 389 -h dead-replica.example.com
    
    dn: cn=userRoot,cn=ldbm database,cn=plugins,cn=config
    changetype: modify
    replace: nsslapd-readonly
    nsslapd-readonly: on
    レプリカが保留中の変更をすべてフラッシュするまで数分待機します。
  2. トポロジー内の他のすべてのサプライヤーで、削除するレプリカとのレプリカ合意を削除します。
    # ldapmodify -D "cn=Directory Manager" -W -x -p 389 -h replica1.example.com
    
    dn: cn=Agmt_with_dead-replica,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
    changetype: delete
  3. 削除するレプリカで、削除する レプリカのレプリカ ID を取得します。これは設定エントリーの nsds5replicaid 属性にあります。
    # ldapsearch -xLLL -D "cn=Directory Manager" -W -s sub -b cn=config objectclass=nsds5replica nsds5replicaid
    
    dn: cn=dead-replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
    nsds5replicaid: 55
    ...
  4. 削除するレプリカで、 すべてのレプリカ合意エントリーとその独自の設定エントリーを削除します。
    # ldapmodify -D "cn=Directory Manager" -W -x -p 389 -h dead-replica.example.com
    
    dn: cn=to_replica1,cn=dead-replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
    changetype: delete
    ...
    
    dn: cn=to_replica2,cn=dead-replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
    changetype: delete
    
    dn: cn=dead-replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
    changetype: delete
  5. トポロジー内の他のマスターサーバーの 1 つで、 レプリカ ID で クリーン コマンドを実行します。
    # ldapmodify -a -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
    
    dn: cn=clean 55, cn=cleanallruv, cn=tasks, cn=config
    objectclass: extensibleObject
    replica-base-dn: dc=example,dc=com
    replica-id: 55
    cn: clean 55
    各レプリカの tombstone エントリーを検索して、他のレプリカでタスクの進捗を監視できます。
    # ldapsearch -xLLL -D "cn=Directory Manager" -W -h remaining-replica.example.com -b "dc=example,dc=com" '(&(nsuniqueid=ffffffff-ffffffff-ffffffff-ffffffff)(objectclass=nstombstone))' nsds50ruv