1.2. コマンドラインを使用した、既存サーバーのコンシューマーに対するサプライヤーとしての設定
supplier.example.com
ホストを準備するには、次のことを行う必要があります。
- 接尾辞のレプリケーションを有効にします。
- コンシューマーへのレプリカ合意を作成します。
- コンシューマーを初期化します。
レプリケーショントポロジーの既存のサプライヤーでこの手順を実行します。
前提条件
-
コンシューマーで
dc=example,dc=com
接尾辞のレプリケーションを有効にしている。
手順
dc=example,dc=com
接尾辞のレプリケーションを有効にします。#
dsconf -D "cn=Directory Manager" ldap://supplier.example.com replication enable --suffix "dc=example,dc=com" --role "supplier" --replica-id 1
このコマンドは、
supplier.example.com
ホストをdc=example,dc=com
接尾辞のサプライヤーとして設定し、このエントリーのレプリカ ID を1
に設定します。重要トポロジー内のすべてのサプライヤーの接尾辞については、レプリカ ID は
1
から65534
の間の一意の整数である必要があります。レプリカ合意を追加し、コンシューマーを初期化します。
#
dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt create --suffix "dc=example,dc=com" --host "consumer.example.com" --port 389 --conn-protocol=LDAP --bind-dn "cn=replication manager,cn=config" --bind-passwd "password" --bind-method=SIMPLE --init example-agreement
このコマンドは、
example-agreement
という名前のレプリカ合意を作成します。レプリカ合意は、コンシューマーのホスト名、プロトコル、このコンシューマーへのデータの接続や複製時にサプライヤーが使用する認証情報などの設定を定義します。この合意の作成後、Directory Server は
consumer.example.com
を初期化します。複製するデータ量によっては、初期化に時間がかかる場合があります。
検証
レプリケーション設定を表示します。
#
dsconf -D "cn=Directory Manager" ldap://supplier.example.com replication get --suffix "dc=example,dc=com"
dn: cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config ... nsDS5ReplicaRoot: dc=example,dc=com nsDS5ReplicaType: 3 ...これらのパラメーターは以下を示しています。
-
nsDS5ReplicaRoot
は、レプリケートされる接尾辞を設定します。 -
nsDS5ReplicaType
を3
に設定して、このホストがサプライヤーであることを定義します。
-
初期化が成功したかどうかを確認します。
#
dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt init-status --suffix "dc=example,dc=com" example-agreement
Agreement successfully initialized.レプリケーションのステータスを表示します。
#
dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt status --suffix "dc=example,dc=com" example-agreement
Status For Agreement: "example-agreement" (consumer.example.com:389) Replica Enabled: on Update In Progress: FALSE Last Update Start: 20210330075608Z Last Update End: 20210330075608Z Number Of Changes Sent: 1:3/0 Number Of Changes Skipped: None Last Update Status: Error (0) Replica acquired successfully: Incremental update succeeded Last Init Start: 20210330074603Z Last Init End: 20210330074606Z Last Init Status: Error (0) Total update succeeded Reap Active: 0 Replication Status: Not in Synchronization: supplier (6062d73c000000010000) consumer (Unavailable) State (green) Reason (error (0) replica acquired successfully: incremental update succeeded) Replication Lag Time: UnavailableReplication Status
フィールドおよびLast Update Status
フィールドを確認します。
トラブルシューティング
デフォルトでは、サーバー上のすべての合意に対するレプリケーションアイドルタイムアウトは 1 時間です。タイムアウトが原因で大規模なデータベースの初期化が失敗する場合は、
nsslapd-idletimeout
パラメーターをより高い値に設定します。たとえば、パラメーターを7200
(2 時間) に設定するには、次のコマンドを実行します。#
dsconf -D "cn=Directory Manager" ldap://supplier.example.com config replace nsslapd-idletimeout=7200
無制限の期間を設定するには、
nsslapd-idletimeout
を0
に設定します。