第二种数据库创建方法是离线进行,使用下面描述的 slapd 数据库工具。如果您需要创建数千条条目,使用上述 LDAP 方法会花费无法接受的长时间,那么此方法是最佳选择。这些工具读取 slapd 配置文件和一个输入 LDIF 文件,其中包含要添加条目的文本表示形式。对于支持这些工具的数据库类型,它们直接生成数据库文件(否则您必须使用上述在线方法)。首先,您需要确保在配置文件数据库定义中设置几个重要的配置选项。
suffix <dn> |
如前一节所述,此选项说明此数据库将保存哪些条目。您应该将其设置为您尝试创建的子树根的 DN。例如
suffix "o=TUDelft, c=NL" |
您应该确保指定一个目录,用于创建索引文件。
directory /usr/local/tudelft |
最后,您需要指定要构建哪些索引。这通过一个或多个索引选项来完成。
index {<attrlist> | default } [pres,eq,approx,sub,none] |
例如
index cn,sn,uid pres,eq,sub index objectClass eq |
这将为 cn、sn 和 uid 属性创建存在、相等和子字符串索引,并为 objectClass 属性创建相等索引。有关此选项的更多信息,请参见配置文件部分。
一旦您根据自己的喜好配置了所有内容,您可以通过运行 slapadd(8) 程序来创建主数据库和关联的索引。
slapadd -l <inputfile> -f <slapdconfigfile> [-d <debuglevel>] [-n <integer>|-b <suffix>] |
这些参数具有以下含义
-l <inputfile> |
指定 LDIF 输入文件,其中包含要添加的文本格式条目(请查看下一节)。
-f <slapdconfigfile> |
指定 slapd 配置文件,该文件指示在何处创建索引、要创建哪些索引等。
-d <debuglevel> |
开启调试,如 <debuglevel> 所指定。调试级别与 slapd 的相同。有关更多详细信息,请参见 第 4.1 节。
-n <databasenumber> |
一个可选参数,用于指定要修改哪个数据库。配置文件中列出的第一个数据库是 1,第二个是 2,依此类推。默认情况下,使用配置文件中的第一个数据库。不应与 -b 结合使用。
-b <suffix> |
一个可选参数,用于指定要修改哪个数据库。提供的后缀与数据库后缀指令匹配,以确定数据库编号。不应与 -n 结合使用。
有时可能需要重新生成索引(例如在修改 slapd.conf(5) 后)。这可以使用 slapindex(8) 程序完成。slapindex 的调用方式如下
slapindex -f <slapdconfigfile> [-d <debuglevel>] [-n <databasenumber>|-b <suffix>] |
其中 -f、-d、-n 和 -b 选项与 slapadd(1) 程序的选项相同。slapindex 基于当前数据库内容重建所有索引。
slapcat 程序用于将数据库转储到 LDIF 文件。当您想要创建数据库的人工可读备份或想要离线编辑数据库时,这可能很有用。该程序的调用方式如下
slapcat -l <filename> -f <slapdconfigfile> [-d <debuglevel>] [-n <databasenumber>|-b <suffix>] |
其中 -n 或 -b 用于选择使用 -f 指定的 slapd.conf(5) 中的数据库。相应的 LDIF 输出将写入标准输出或使用 -l 选项指定的文件。