openldap – LDAP:使用slapcat和ldapsearch进行备份

前端之家收集整理的这篇文章主要介绍了openldap – LDAP:使用slapcat和ldapsearch进行备份前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用:openldap-servers-2.4.23-34.el6_5.1.x86_64

任务:为crontab创建脚本以创建计划数据库完全备份.

1)slapcat – 以默认格式创建文件,Berkeley DB.

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

3)在slapcat之后恢复文件 – 必须使用slapdd(而不是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之间的区别是什么?

总结,一些额外的要点:

> slapcat转储来自(本地)直接存储后端,它不需要是Berkeley(hdb或bdb),它也适用于OLC(cn = config).它转储到LDIF format.(直接我的意思是由OpenLDAP直接管理,而不是例如sql后端,即使它存储在本地.)
> ldapadd要求slapd正在运行,slapadd要求它不运行
> ldapsearch要求slapd正在运行,slapcat并不关心它是否正在运行BDB后端,正如你所指出的那样

简而言之:

> slapcat是获得良好备份的方法,您可以快速恢复,尽管主服务器停机(您可以通过各种类型的复制设置解决此问题).这是您应该用于常规备份和升级前备份的内容.
> ldapsearch(不带)将为您提供便携式备份,您可以轻松地将其加载到任何其他目录服务器中,但它只能在简单的OpenLDAP设置中进行可行的恢复(无需复制,无需特殊覆盖,无需重写),如果您不关心保留UUID /创建/修改元数据.您还需要任何与数据一起使用的额外模式文件.
> ldapadd(使用其他标识ldapmodify)可用于轻松应用LDAP修改(对象修改,删除重命名),这些修改是不可行的,也可能仅使用slapadd / slapcat

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

> slapcat更快,因为它只是转储数据库,跳过LDAP协议开销,身份验证,访问控制,对象和时间限制,叠加;并且它不会根据LDAP层次结构进行搜索.
> slapadd更快(同样,没有LDAP协议开销),并且在恢复已知良好的备份的情况下,您可以在快速模式(-q)下运行以加速大型导入.您也可以禁用模式检查(-s),但需要注意的是,OpenLDAP版本之间的模式或数据验证中的小变化并非闻所未闻.
> slapcat仅限于本地数据库,它不会像ldapsearch那样交叉到其他目录(例如,使用back-ldap,back-Meta).这同样适用于slapadd / ldapadd.
> ldapsearch将返回未存储在后端的动态属性,例如hasSubordinates或由覆盖维护的那些(例如slapo-memberof).使用ldapadd加载这些内容时会遇到问题(例如,没有用户修改的操作属性).重写(slapo-rwm)也可能会扭曲ldapsearch对目录内容的看法.
> slapcat包含内部(操作)属性,如果使用复制,这些属性至关重要.通过复制,您可以减少对备份的依赖,但是如果使用ldapadd重新加载主服务器,则每个对象都将通过复制重新创建(更改了entryUUID entryCSN)
虽然您可以通过使用带有ldapsearch(或allop overlay)的特殊“”属性来包含操作属性,但这与slapcat不同,请参阅上一点,了解为什么会这样.
这些属性包括创建/修改DN和时间戳,这对某些应用程序可能很重要.
>因为slapcat没有观察到LDAP层次结构(隐含排序),所以不能保证它的数据排序对于ldapadd是可行的 – 即使你去除了操作属性,ldapadd也可以抱怨,因为子坐标可能出现在他们的上级(父母). LDAP规范要求父项存在,但在这方面也保留搜索结果排序未定义.请参阅下面的Howard的评论,OpenLDAP的slapadd默默支持某些后端的无序数据.在紧要关头,您可以重复使用带有continue on error选项(-c)的slapadd,直到创建所有“乱序”父项,当您不再收到任何错误代码32时停止(没有这样的对象,意味着缺失父)并且只接收每个对象的代码68(已经存在).
> ldapadd受LDAP规则和覆盖的约束,例如:参照完整性,ppolicy(密码策略)
> slapcat更喜欢使用base-64编码的属性值至少为userPassword(在属性名称后面用::表示)
> ldapsearch有更多的LDIF格式选项,并将大型属性写入单独的文件.它也可以处理referralsaliases.

猜你在找的Bash相关文章