15.2.5. コマンドラインからのコンシューマーオンラインの初期化
nsds5replicarefresh
属性をレプリカ合意エントリーに追加することで、コマンドラインからオンライン初期化を開始できます。レプリカ合意の作成時に属性が含まれる場合、初期化が開始されます。後で追加して、コンシューマーをいつでも初期化できます。この属性はデフォルトでは存在しないため、コンシューマーの初期化が完了すると自動的に削除されます。
- コンシューマーを初期化するサプライヤーサーバーでレプリカ合意の DN を検索します。以下に例を示します。
# ldapsearch -x -h supplier1.example.com -p 389 -D "cn=Directory Manager" -W -s sub -b cn=config "(objectclass=nsds5ReplicationAgreement)"
このコマンドは、サプライヤーに設定されたすべてのレプリカ合意を LDIF 形式で返します。初期化されるコンシューマーとのレプリカ合意の DN を取得します。これは、編集されるレプリカ合意です。 - レプリカ合意を編集し、
nsds5BeginReplicaRefresh
属性を追加します。# ldapmodify -D "cn=Directory Manager" -W -x -h supplier1.example.com dn: cn=ExampleAgreement,cn=replica,cn=dc\=example\,dc\=com,cn=mapping tree,cn=config changetype: modify replace: nsds5BeginReplicaRefresh nsds5BeginReplicaRefresh: start
ldapmodify は入力を要求しません。LDIF ステートメントに入力するだけで、LDIF ステートメントが完了すると 2 回到達されます。Ctrl+C を押して ldapmodify ユーティリティーを閉じます。
初期化が完了すると、
nsds5BeginReplicaRefresh
属性はレプリカ合意エントリーから自動的に削除されます。
重要
マルチマスターレプリケーションの場合は、コンシューマーが 1 つのサプライヤーによって 1 度だけ 初期化されていることを確認します。レプリケーションのステータスを確認する際には、コンシューマーの初期化に使用された適切なサプライヤーでレプリカ合意のエントリーを確認してください。
コマンドラインからのコンシューマーの初期化についても、「コマンドラインを使用したコンシューマーオンラインの初期化」 で説明されています。コンシューマーを手動で初期化する場合は、「コマンドラインを使用した手動コンシューマーの初期化」 で説明されています。レプリケーションの監視属性は、『Red Hat Directory Server の設定、コマンド、およびファイルリファレンス を参照してください』。
注記
大規模なデータベースでは、
nsslapd-idletimeout
設定を十分な期間(または無制限の時間)に設定する必要があります。これにより、操作がタイムアウトする前にデータベース全体を初期化できるようにする必要があります。または、サプライヤーバインド DN エントリーの nsIdleTimeout
設定は、グローバル設定を変更しなくても、オンライン初期化操作を完了できるように設定することも可能です。
データの整合性を保持するには、適切なサプライヤーからコンシューマーデータベースを初期化します。正しいサプライヤーを決定することは、レプリケーション環境の組み合わせにおいてより困難になる場合がありますが、コンシューマーを手動で初期化した場合でも、以下の 4 つの点を考慮してください。
- コンシューマーを初期化するソースとして、1 つのサプライヤー( データマスター )を使用します。
- レプリカ合意の作成時にデータマスター を再初期化 しないでください。たとえば、server2 が server1 からすでに初期化されている場合は、server2 から server1 を初期化しないでください。
- マルチマスターシナリオでは、1 つのマスターからの設定内の他のすべてのマスターサーバーを初期化します。
- カスケードレプリケーションの場合は、サプライヤーからすべてのハブを初期化し、ハブからコンシューマーを初期化します。