摘要
对openldap进行备份时,直接使用slapcat命令进行备份,使用ldapadd还原出现问题及解决。
介绍
对openldap进行备份时,直接使用slapcat命令进行备份(如代码一),然后使用ldapadd还原会出现以下报错信息:
ldap_add: Constraint violation (10)
additional info: structuralObjectClass: no user modification allowed
代码一:
slapcat -v -l ldapbackup.ldif
分析原因:slapcat备份出来的ldapback.ldif中有系统自动生成的系统信息不能导入需要清除
解决方案:清除ldapback.ldif中的系统信息
步骤:
1、使用 sed 配合正则删除指定行
sed -i "/^creatorsName: /d" 187_2020-07-05_1593885781.ldif
sed -i "/^createTimestamp: /d" 187_2020-07-05_1593885781.ldif
sed -i "/^modifiersName: /d" 187_2020-07-05_1593885781.ldif
sed -i "/^modifyTimestamp: /d" 187_2020-07-05_1593885781.ldif
sed -i "/^structuralObjectClass: /d" 187_2020-07-05_1593885781.ldif
sed -i "/^entryUUID: /d" 187_2020-07-05_1593885781.ldif
sed -i "/^entryCSN: /d" 187_2020-07-05_1593885781.ldif
2、使用ldapadd导入
ldapadd -H ldap://127.0.0.1 -x -D "用户" -f slapdata.ldif -w 密码
或 服务器程序导入 初始使用可能失败
slapadd -l slapdate.ldif
备份方案二:
ldapsearch -x -b 'dc=com,dc=cn' > ldapbackup.ldif
其他方案:
[方法1]
关闭:kill -INT `cat /var/run/slapd.pid`
启动:/usr/sbin/slapd
备份:/usr/sbin/slapcat>mail_ldap.ldif
导入:ldapadd -x -D "cn=Manager,dc=domain,dc=com" -w secret -v -f mail_ldap.ldif
关闭模式导入:
slapadd -l mail_ldap.ldif -f /etc/openldap/sladp.conf
[方法2]
系统突然掉电或重启引起LDAP数据库意外关闭造成的。
进入ldap数据目录(/openldap/var/openldap-data),执行db_recover,再启动服务.
/var/lib/ldap slapd db_recover
这篇文章还没有人留言,快来抢沙发吧。