[LDAP-Users:499] Re: データベース設定の複製

Kenji Kikuchi kenji.kikuti @ ctc-g.co.jp
2009年 9月 23日 (水) 22:50:31 JST


taoさん


こんにちは、菊池と申します。
私の環境では、コンシューマ側(OpenLDAP2.4系)のログには以下のようなメッセージが出力されます。
---------------------
Sep 23 22:32:58 cent5 slapd[13267]: do_syncrep2: rid=001 got empty syncUUID with LDAP_SYNC_ADD
Sep 23 22:32:58 cent5 slapd[13267]: do_syncrepl: rid=001 rc -1 retrying (4 retries left)
---------------------

プロバイダ側となっているOpenLDAP2.3の"config"エントリには、syncreplのレプリケーションが利用
するentryUUIDが含まれない為、2.3->2.4の"config"エントリのsyncreplは難しいのではないでしょうか。


■ 2.4系
# ldapsearch -x -D cn=config -w password -b cn=config +
...[略]...
# {-1}frontend, config
dn: olcDatabase={-1}frontend,cn=config
structuralObjectClass: olcDatabaseConfig
entryUUID: c9d49cd8-0116-40f1-a907-12ecbf190e70
creatorsName:
createTimestamp: 20090918104245Z
entryCSN: 20090918104245.189201Z#000000#000#000000
modifiersName:
modifyTimestamp: 20090918104245Z
entryDN: olcDatabase={-1}frontend,cn=config
subschemaSubentry: cn=Subschema

# {0}config, config
dn: olcDatabase={0}config,cn=config
structuralObjectClass: olcDatabaseConfig
entryUUID: d8678bee-adef-49dc-b8f3-a4b7be9224fa
creatorsName:
createTimestamp: 20090918104245Z
entryCSN: 20090918104245.189262Z#000000#000#000000
modifiersName:
modifyTimestamp: 20090918104245Z
entryDN: olcDatabase={0}config,cn=config
subschemaSubentry: cn=Subschema

# {1}bdb, config
dn: olcDatabase={1}bdb,cn=config
structuralObjectClass: olcBdbConfig
entryUUID: a3b99083-0dc8-4678-80ad-92e044e6d279
creatorsName:
createTimestamp: 20090918104245Z
entryCSN: 20090918104245.189489Z#000000#000#000000
modifiersName:
modifyTimestamp: 20090918104245Z
entryDN: olcDatabase={1}bdb,cn=config
subschemaSubentry: cn=Subschema


■ 2.3系
# ldapsearch -x -D cn=config -w password -b cn=config +
...[略]...
# {-1}frontend, config
dn: olcDatabase={-1}frontend,cn=config
structuralObjectClass: olcDatabaseConfig
entryDN: olcDatabase={-1}frontend,cn=config
subschemaSubentry: cn=Subschema

# {0}config, config
dn: olcDatabase={0}config,cn=config
structuralObjectClass: olcDatabaseConfig
entryDN: olcDatabase={0}config,cn=config
subschemaSubentry: cn=Subschema

# {1}hdb, config
dn: olcDatabase={1}bdb,cn=config
structuralObjectClass: olcBdbConfig
entryDN: olcDatabase={1}bdb,cn=config
subschemaSubentry: cn=Subschema




tao さんは書きました:
> こちらには初めて投稿いたします、タオ@地方都市です。
> よろしくお願いします。
> 
> 今まで OpenLDAP のレプリケーションに slurpd で頑張ってきたのですが、
> Debian lenny 導入のきっかけに Syncrepl によるレプリケーションに挑戦した
> いと思っています。
> 
> 【前提】
> 1. N-way とか Mirror とかではなく、単にプロバイダからコンシュマへ特定の
>    LDAP ツリーを複製したい。
> 2. どうせなら ACL などのデータベース設定をそのままコンシュマに反映したい
>    ので、olcDatabase={1}hdb,cn=config も複製したい。
> 
> 【環境】
> プロバイダ側:OpenLDAP 2.3.43 on CentOS 5
> コンシュマ側:OpenLDAP 2.4.11 on Debian lenny
> 【状況】
> 1 の単なるデータベースの複製はうまくいきました。
> --- プロバイダ側 ---
>            :
> database	config
> rootdn		cn=config
> rootpw		{SSHA}xxxxxxxxxxxxxxxxxxxx
> 
> database        hdb
> suffix          "dc=example,dc=com"
> rootdn          "cn=admin,dc=example,dc=com"
> rootpw          {SSHA}xxxxxxxxxxxxxxxxxxxxx
> overlay syncprov
>            :
> --- コンシュマ側 ---
> database	config
> rootdn		cn=config
> rootpw		{SSHA}xxxxxxxxxxxxxxxxxxxx
> 
> database        hdb
> suffix          "dc=example,dc=com"
> rootdn          "cn=admin,dc=example,dc=com"
> rootpw          {SSHA}xxxxxxxxxxxxxxxxxxxxx
> 
> syncrepl rid=2
>         provider=ldap://provider.example.com
>         type=refreshAndPersist
>         retry="60 5 300 +"
>         schemachecking=off
>         bindmethod=simple
>         binddn="cn=admin,dc=example,dc=com"
>         credentials="xxxxxxxxxxxxx"
>         searchbase="ou=target,dc=example,dc=com"
>         filter="(objectClass=*)"
>         scope=sub
> 
> プロバイダ側を変更すると即座にコンシュマ側の LDAP に反映されます。
> ===================================
> ですが、バックエンド設定まで複製しようとすると嵌ってしまいました。
> --- プロバイダ側 ---
> database	config
> rootdn		cn=config
> rootpw		{SSHA}xxxxxxxxxxxxxxxxxxxx
> overlay 	syncprov
> 
> database        hdb
> suffix          "dc=example,dc=com"
> rootdn          "cn=admin,dc=example,dc=com"
> rootpw          {SSHA}xxxxxxxxxxxxxxxxxxxxx
> overlay         syncprov
> 
> syncrepl rid=2
>         provider=ldap://provider.example.com
>         type=refreshAndPersist
>         retry="60 5 300 +"
>         schemachecking=off
>         bindmethod=simple
>         binddn="cn=admin,dc=example,dc=com"
>         credentials="xxxxxxxxxxxxx"
>         searchbase="ou=target,dc=example,dc=com"
>         filter="(objectClass=*)"
>         scope=sub
> 
> 
> --- コンシュマ側 ---
> database        config
> rootdn          cn=config
> rootpw          {SSHA}xxxxxxxxxxxxxxxxxxxxx
> syncrepl rid=1
>         provider=ldap://provider.example.com
>         type=refreshAndPersist
>         retry="60 5 300 +"
>         schemachecking=off
>         bindmethod=simple
>         binddn="cn=config"
>         credentials="xxxxxxxxxxxxxxx"
>         searchbase="olcDatabase={1}hdb,cn=config"
>         filter="(objectClass=*)"
>         scope=base
> 
> データベース設定の複製 ->コンシュマ側に olcDatabase={1}hdb,cn=config の
> syncrepl の設定が取り込まれる -> データベースが複製される
> という目論見でしたが、うまく動作してくれません。コンシュマ側から rid=1
> の syncrepl が接続しにいっているようですが、プロバイダ側の変更を検知して
> くれないようです(エラー出力もありません)。rid=2 の syncrepl に至っては
> 全く動作していないようです。
> 
> 2.3 系と 2.4 系ということで、少々トリッキーな環境とは思いますが、何かし
> ら情報をお持ちの方はいらっしゃるでしょうか。
> よろしくお願いします。
> 


-- 
伊藤忠テクノソリューションズ株式会社
  ITエンジニアリング室 
    ミドルウェア技術部  DB技術課

    菊池  研自  (Kenji Kikuchi)

 TEL:03-6203-3804 FAX:03-5512-3028
 E-mail: kenji.kikuti @ ctc-g.co.jp

----------------------------------------



LDAP-Users メーリングリストの案内