16.3. 部分レプリケーションにおける空の更新の防止
部分レプリケーションでは、レプリケーション更新から属性が除外されます (nsDS5ReplicatedAttributeList
、nsDS5ReplicatedAttributeListTotal
)。しかし、除外された属性への変更があっても、修正イベントが発生し、空のレプリケーション更新が生成されます。
空の更新を防ぐには、Directory Server が空のレプリケーションイベントで送信せず、更新シーケンスから削除する属性のリストを追加する nsds5ReplicaStripAttrs
パラメーターを使用します。これには論理的に、modifiersName
のような操作属性が含まれる必要があります。レプリケーションイベントが空でない場合、Directory Server は削除された属性を他の変更とともに複製します。
たとえば、accountUnlockTime
属性をレプリケーションから除外しました。ロックされたユーザーの場合、accountUnlockTime
で設定された期間が経過すると、Directory Server は自動的にユーザーのロックを解除します。accountUnlockTime
属性のみが変更され、その属性はレプリケーションから除外されます。ただし、このロック解除イベントは、操作属性 internalmodifytimestamp
も変更します。これにより、ユーザーアカウントが変更されたため、レプリケーションイベントがトリガーされます。ただし、複製されるデータは新しい変更タイムスタンプのみであり、それ以外の場合は更新は空になります。ログイン時間やパスワードの有効期限に関連する属性が多数ある場合、空のレプリケーション更新が多数作成され、サーバーのパフォーマンスに悪影響を与えたり、関連するアプリケーションに干渉したりする可能性があります。
次の手順では、空の更新を防ぐために不要な属性を削除します。
前提条件
-
dc=example,dc=com
接尾辞を複製し、レプリカ合意example_agreement
が存在する。
手順
dsconf
ユーティリティーを使用して部分レプリケーションを調整します。dsconf <instance_name> repl-agmt set example_agreement \ --suffix="dc=example,dc=com" --strip-list="modifiersname \ modifytimestamp internalmodifiersname"
# dsconf <instance_name> repl-agmt set example_agreement \ --suffix="dc=example,dc=com" --strip-list="modifiersname \ modifytimestamp internalmodifiersname" Successfully updated agreement
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
レプリカ合意設定を表示します。
dsconf <instance_name> repl-agmt list --suffix=dc=example,dc=com | grep -i nsds5ReplicaStripAttrs
# dsconf <instance_name> repl-agmt list --suffix=dc=example,dc=com | grep -i nsds5ReplicaStripAttrs nsds5ReplicaStripAttrs: modifiersname modifytimestamp internalmodifiersname
Copy to Clipboard Copied! Toggle word wrap Toggle overflow