[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 メーリングリストの案内