15.12. レプリケーショントポロジーからのサプライヤーの削除
レプリケーショントポロジーからサプライヤーを完全に削除することは、単にサプライヤーエントリーを削除するよりも複雑です。これは、トポロジー内のすべてのサプライヤーが他のサプライヤーに関する情報を保存し、サプライヤーが利用できない状態になった場合でも、その情報を保持するためです。
レプリケーショントポロジーに関する情報、つまり、相互に、および同じレプリケーショングループ内の他のレプリカに更新を提供するすべてのサプライヤーは、レプリカ更新ベクトル (RUV) と呼ばれるメタデータのセットに含まれています。RUV には、ID と URL、ローカルサーバー上の最新の変更状態番号 (CSN)、最初の変更の CSN などのサプライヤーに関する情報が含まれています。サプライヤーとコンシューマーはいずれも RUV 情報を保存し、これを使用してレプリケーションの更新を制御します。
サプライヤーを正常に削除するには、そのメタデータを設定エントリーとともに削除する必要があります。
- 削除するレプリカで、 更新を防ぐためにデータベースを読み取り専用モードにします。
# 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
レプリカが保留中の変更をすべてフラッシュするまで数分待機します。 - トポロジー内の他のすべてのサプライヤーで、削除するレプリカとのレプリカ合意を削除します。
# 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
- 削除するレプリカで、削除する レプリカのレプリカ 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 ...
- 削除するレプリカで、 すべてのレプリカ合意エントリーとその独自の設定エントリーを削除します。
# 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
- トポロジー内の他のマスターサーバーの 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