添加多个 DIT

Bea*_*692 2 openldap ldap

我已经在dba.stackexchange.com 上发布了这个问题,但它被认为是题外话,人们建议我应该在这里发布它,所以我将它发布在这里。

我有一个openldap服务器启动并运行ubuntu 14.10,我已经成功地DIT使用以下方法向其中添加了一个ldif

dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=example,dc=com
olcRootDN: cn=Manager,dc=example,dc=com
olcRootPW: secret
olcDbIndex: objectClass eq
Run Code Online (Sandbox Code Playgroud)

为了测试多个,DITs我尝试使用另一个添加另一个数据库ldif

dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=example1,dc=com
olcRootDN: cn=Manager,dc=example1,dc=com
olcRootPW: secret
olcDbIndex: objectClass eq
Run Code Online (Sandbox Code Playgroud)

首先看起来一切顺利,但是当我尝试搜索我的第一个数据库时,我收到一个错误消息:

result: 80 Other (e.g., implementation specific) error
text: internal error
Run Code Online (Sandbox Code Playgroud)

我对这个错误感到困惑,这slapd -d是我得到的:

bdb(dc=example,dc=com): BDB0060 PANIC: fatal region error detected; run recovery
Run Code Online (Sandbox Code Playgroud)

我什至安装db-utils并运行db_recover没有成功。问题是我的openldap服务器出了什么问题?

Sve*_*ven 5

我想主要的错误是您olcDbDirectory对两个 DIT使用了相同的方法。尝试使用不同的目录来存储数据(您可能必须擦除当前数据并重新开始)。