例: DSA 間のマルチライト DISP レプリケーションのセットアップ

この例では、2 つの DSA 間の DISP リカバリ(MW-DISP)を含むマルチライト レプリケーションを有効にする方法について説明します。
cad126jp
この例では、2 つの DSA 間の DISP リカバリ(MW-DISP)を含むマルチライト レプリケーションを有効にする方法について説明します。
この例では、2 つのサーバ上にセットアップされた 2 つの DSA があります。
server1 : dsa1
server2 : dsa2
以下の手順に従います。
手順 1:
DSA を停止します。
server1: dxserver stop dsa1
server2: dxserver stop dsa2
手順 2:
server1 でマルチライトを有効にします。
UNIX のパス:
$DXHOME/config/knowledge/dsa1.dxc。
Windows のパス:
%DXHOME%\config\knowledge\dsa1.dxc。
   set dsa "dsa1" =
    {
    prefix = <c US><o CA>
      dsa-name = <c US><o CA><cn "dsa1">
      dsa-password = "secret"
      address = tcp "{hostname}" port 20000
      disp-psap = DISP
      snmp-port = 20000
      console-port = 20001
      auth-levels = anonymous, clear-password
      dsa-flags =
multi-write
      trust-flags = allow-check-password
    };
手順 3:
server1 でマルチライトを有効にします。
UNIX のパス:
$DXHOME/config/knowledge/dsa2.dxc。
Windows のパス:
%DXHOME%\config\knowledge\dsa2.dxc.
このファイルが存在しない場合は、server2 からコピーします。
例: 
UNIX:
copy server2: $DXHOME/config/knowledge/dsa2.dxc to server1: $DXHOME/config/knowledge
Windows:
copy server2: %DXHOME%\config\knowledge\dsa2.dxc to server1: %DXHOME%\config\knowledge
set dsa "dsa2" =
    {
     prefix = <c US><o CA>
     dsa-name = <c US><o CA><cn "dsa2">
     dsa-password = "secret"
      address = tcp "{hostname}" port 20000
      disp-psap = DISP
      snmp-port = 20000
      console-port = 20001
      auth-levels = anonymous, clear-password
      dsa-flags =
multi-write
      trust-flags = allow-check-password
    };
レプリケーションが機能するには、dsa1 と dsa2 でプレフィックスが同じである必要があります。
手順 4:
 ナレッジ グループ ファイルを作成します。
UNIX:
 server1: $DXHOME/config/knowledge/dsas.dxg
Windows:
 server1: %DXHOME%\config\knowledge\dsas.dxg
以下の行を追加します。
   source "dsa1.dxc";
   source "dsa2.dxc";
注:
dsa1 と dsa2 用にナレッジ グループ ファイルが存在する場合は、このファイルを更新して dsa1 と dsa2 の両方がソースされていることを確認します。
手順 5:
server1 の $DXHOME/config/servers/dsa1.dxi (UNIX)または %DXHOME%\config\servers\dsa1.dxi (Windows)を更新して、ナレッジ グループをソースし、MW-DISP の有効化も行います。
次の行を検索します。
  clear dsas;
  source "../knowledge/dsa1.dxc";
この行を以下の行に置き換えます。
  clear dsas;
  source "../knowledge/dsas.dxg";
MW-DISP を有効にするには、以下の行を見つけます。
  # multiwrite DISP recovery
  set multi-write-disp-recovery = false;
この行を以下の行に置き換えます。
  # multiwrite DISP recovery
   set multi-write-disp-recovery = 
true
;
手順 6:
構文エラーを確認します。
server1: dxsyntax dsa1
以下のファイルを server2 にコピーします。
For UNIX
    Copy server1: $DXHOME/config/knowledge/dsa1.dxc server2: $DXHOME/config/knowledge
    Copy server1: $DXHOME/config/knowledge/dsa2.dxc server2: $DXHOME/config/knowledge
    Copy server1: $DXHOME/config/knowledge/dsas.dxg server2: $DXHOME/config/knowledge
For Windows
    Copy server1: %DXHOME%\config\knowledge\dsa1.dxc server2: %DXHOME%\config\knowledge
    Copy server1: %DXHOME%\config\knowledge\dsa2.dxc server2: %DXHOME%\config\knowledge
    Copy server1: %DXHOME%\config\knowledge\dsas.dxg server2: %DXHOME%\config\knowledge
1 つのサーバ上でナレッジを更新して、もう 1 つのサーバにコピーします。この手順により、サーバの整合性が維持されます。
手順 6:
server2 の $DXHOME/config/servers/dsa2.dxi (UNIX)または %DXHOME%\config\servers\dsa2.dxi (Windows)を更新して、新しくコピーしたナレッジ グループをソースし、MW-DISP の有効化も行います。
次の行を検索します。
   clear dsas;
   source "../knowledge/dsa1.dxc";
この行を以下の行に置き換えます。
   clear dsas;
   source "../knowledge/dsas.dxg";
MW-DISP を有効にするには、以下の行を見つけます。
  # multiwrite DISP recovery
  set multi-write-disp-recovery = false;
この行を以下の行に置き換えます。
   # multiwrite DISP recovery
   set multi-write-disp-recovery = 
true
;
手順 7:
DSA のチェックポイントを実行します。
DSA に同期されたデータ(たとえば、同じ LDIF からのロード)が含まれている場合、MW-DISP を有効にする時点で、DSA のチェックポイントを実行します。
server1: dxdisp dsa2
server2: dxdisp dsa1
この手順により、既存のデータが不必要にレプリケートされなくなります。
手順 8:
DSA を起動します。
server1: dxserver start dsa1
server2: dxserver start dsa2
手順 9:
レプリケーションの状態を確認します。
DSA が相互に通信していることと、レプリケーションの状態が正常であることを確認してください。
server1: telnet localhost 20001
server1: get dsp;
server1: logout;
   ...
   ...
    multi-write-group-credit = 0
    multi-write-outstanding-ops = 10
    dsa2: 
OK
, total 0, waiting remote 0, confirmed local 0
 
server2: telnet localhost 20001
server2: get dsp;
server2: logout;
   ...
   ...
    multi-write-group-credit = 0
    multi-write-outstanding-ops = 10
    dsa1: 
OK
, total 0, waiting remote 0, confirmed local 0
get dsp;
 コマンドの出力で、複製キューのステータスが OK である必要があります。DISP-FAILED など、これ以外のステータスは、レプリケーションの問題または 2 つの DSA 間の接続の問題を示します。これらのレプリケーションの問題を診断する場合は、warn-log と alarm-log のチェックから開始することをお勧めします。
もう 1 つのサニティ テストは、LDAP ブラウザ(JXplorerなど)を介して dsa1 に接続して変更することです。dsa2 に接続して更新がレプリケートされていることを確認してください。dsa1 を更新する前に、dsa2 を停止して MW-DISP について同様のテストを実行できます。dsa2 は、起動されると、dsa1 からの更新を回復します。更新が反映される必要があります。
他の考慮事項
  • レプリカを含む 1 つ以上のルータ DSA を実行して自動フェールオーバとフェールバックを許可することをお勧めします。
  • $DXHOME/config/knowledge は、マシン間で同じである必要があります。そうすることで、すべての DSA が一貫した方法で機能します。
  • レプリカのいずれかを優先マスタとして設定することをお勧めします。router.dxi ファイルに、以下の行を追加してください。
    set write-precedence = dsa1, dsa2;
    この手順により、更新の競合(dsa1 と dsa2 上で同時に同じエントリが更新される)が防止されます。