LDAP:使用slapcat和ldapsearch进行备份


11

用过的: openldap-servers-2.4.23-34.el6_5.1.x86_64

任务:创建脚本crontab以创建计划的数据库完整备份。

1)slapcat-以默认格式Berkeley DB创建文件。

2)slapcat可以在slapd运行时完成(如果bdb/hdb使用数据库)。

3)之后slapcat必须还原档案-必须使用slapadd(不是ldapadd)。

4)slapcat/add不需要密码。

5)slapadd只有在slapd停止时才能做。

例:

 $ slapcat -f /etc/openldap/slapd.conf -b "dc=db_1" -l db_1_backup.ldif
 $ slapadd -l db_1_backup.ldif

代替slapcat/add-让我们看一下ldapsearch/add

1)ldapsearch-创建与几乎相同的信息的文件slapcat

2)ldapadd-可以使用中的文件ldapsearch,不需要slapd停止;

3)ldapadd/search-需要密码。

例:

 $ ldapsearch -D "cn=root,dc=db_1" -W -b "dc=db_1" "dc=db_1" -LLL > db_1_backup2.ldif
 $ ldapadd -x -D "cn=root,dc=db_1" -W -f db_1_backup2.ldif

所以-问题是:

1)我在此工具说明中缺少任何内容吗?

2)ldapadd/slapadd和之间还有ladpsearch/slapcat什么区别?

Answers:


12

不错的总结,还有一些要点:

  • slapcat从(本地)直接存储后端进行转储,不必是Berkeley(hdb或bdb),它也可以与OLCcn=config)一起使用。它转储为LDIF格式。(直接是指由OpenLDAP直接管理,而不是由SQL后端直接管理,即使它存储在本地。)
  • ldapadd要求slapd 正在运行,slapadd要求它运行
  • ldapsearch要求您slapd 正在运行,slapcat无需理会它是否与BDB后端一起运行

简而言之:

  • slapcat是一种可以快速恢复的良好备份的方法,尽管在主服务器上会出现停机(您可以通过设置各种类型的复制来解决此问题)。这是用于常规备份和升级前备份的方式。
  • ldapsearch(没有+)将为您提供可移植的备份,您可以轻松地将其加载到任何其他目录服务器中,但这仅是在简单的OpenLDAP设置中进行可行的还原(不进行复制,不进行特殊覆盖,不进行重写),并且如果您不必关心保留UUID /创建/修改元数据。您还需要与数据一起使用的所有其他架构文件。
  • ldapadd(使用其其他身份ldapmodify)可用于轻松应用LDAP修改(对象修改,删除和重命名),而对于slapadd/ slapcat单独使用则不可行或不可能

对于大多数管理员而言,主要考虑因素是每种情况下LDIF的内容略有不同以及slapd运行(或不运行)的要求。更重要的区别是:

  1. slapcat更快,因为它只是转储数据库,跳过LDAP协议的开销,身份验证,访问控制,对象和时间限制,覆盖;并且它不会根据LDAP层次结构进行搜索。
  2. slapadd速度更快(再次,没有LDAP协议开销),并且在还原已知良好的备份的情况下,可以在快速模式-q运行以加快大型导入。您还可以禁用模式检查(-s),尽管要注意的是,在OpenLDAP版本之间对模式或数据验证的微小更改并非鲜有。
  3. slapcat仅限于本地数据库,也不会跨越到其他目录(例如,使用back-ldapback-meta)的方式ldapsearch会。同样适用于slapadd/ ldapadd
  4. ldapsearch将返回未存储在后端的动态属性,例如,hasSubordinates或由叠加层维护的动态属性(例如slapo-memberof)。您将在加载这些文件时遇到问题ldapadd(例如,无需用户修改的操作属性)。重写(slapo-rwm)也可能会扭曲ldapsearch目录内容的视图。
  5. slapcat包括内部(操作)属性,如果您正在使用复制,则这些属性至关重要。随着复制,那么你有点不太依赖于备份,但是如果你使用ldapadd重新加载你的主人,每个对象将被重新创建通过复制(改变entryUUID entryCSN)虽然也可以通过使用特殊的“+”属性操作属性与ldapsearch(或allop覆盖)这与并非是同一回事slapcat,请参阅上一点以了解为何如此。这些属性还包括创建/修改DN和时间戳,这对于某些应用程序可能很重要。
  6. 由于slapcat不遵循LDAP层次结构(隐式排序),因此无法保证其数据排序将适用ldapadd-即,即使您删除了操作属性,ldapadd也可能会抱怨,因为下级可能会出现在其上级(父母)之前。LDAP规范要求存在一个父级,但是在这方面,搜索结果的顺序也未定义。请参阅下面的霍华德评论,OpenLDAP slapadd默默支持某些后端的无序数据。您可以在紧急情况下反复使用slapadd继续错误选项(-c),直到创建所有“乱序”父母,并在您不再收到任何错误代码32(没有此类对象,
  7. ldapadd 遵守LDAP规则和覆盖,例如参照完整性,策略(密码策略)
  8. slapcat倾向于至少对userPassword使用base-64编码的属性值(::在属性名称后用表示)
  9. ldapsearch具有用于LDIF格式和将大属性写入单独文件的更多选项。它还可以处理引荐别名

LDAP结果顺序未定义。slapcat和ldapsearch都可以按任意顺序返回条目,不能保证两个输出的顺序都适合与ldapadd一起使用。slapadd的bdb / hdb / mdb驱动程序具有特殊的解决方法,可以按任意顺序处理输入,而ldapadd则没有。
2015年

slapcat以数据库(后端)顺序返回条目,该条目可能定义不明确。ldapsearch默认情况下,按照服务器答复的顺序返回,使用OpenLDAP,可以选择客户端排序(例如-S "")或服务器排序控制(例如-E sss,如果支持,并且受一些与配置和架构相关的小陷阱)的影响。该规范说,搜索结果可以是任何顺序。一个实现可以定义默认顺序,大多数人认为默认顺序是“父先于子”,只有OpenDS对此进行了记录,即AFAIK。
2015年

2
OpenLDAP中的搜索结果顺序是有意记录的。由于规范已经说过结果可能是任意顺序的,因此客户端软件不得依赖任何特定顺序。当然可以对结果进行排序,但这需要更多的资源,并且在进行完全备份时通常并不有趣。考虑到子树重命名将分支移动到新的DIT位置的可能性,数据库顺序相对没有意义。
2015年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.