zoukankan      html  css  js  c++  java
  • 【转载】openldap 备份与导入 及相关问题--扩展

    http://www.cnblogs.com/ccdc/p/3356518.html

    摘要:

      对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、新建过滤正则表达式slapcat.regex

    复制代码
    cat >slapcat.regex <<EOF
    /^creatorsName: /d
    /^createTimestamp: /d
    /^modifiersName: /d
    /^modifyTimestamp: /d
    /^structuralObjectClass: /d
    /^entryUUID: /d
    /^entryCSN: /d
    EOF
    复制代码

      2、过滤掉系统信息

    cat ldapback.ldif | sed -f slapcat.regex > slapdata.ldif

      3、使用ldapadd导入

    ldapadd -H ldap://127.0.0.1 -x -D "cn=root,dc=com,dc=cn" -f slapdata.ldif -w dirtysecret

      备份方案二:

    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

    参考:

      [1] linewer.Ldap相关问题小结.http://blog.chinaunix.net/uid-10328574-id-2951045.html.2013-10-08

      [2] shrekmu.手工备份恢复Openldap数据库.http://blog.csdn.net/shrekmu/article/details/1266361.2013-10-08

      [3] nonnie.OpenLDAP的手工备份与恢复.http://blog.163.com/nonnie@126/blog/static/57630308201091194938915/.2013-10-08

    扩展:

    因为dn必须是唯一的,slapcat将所有的entry都导出了,但是系统在安装好ldap之后会有一两个dn

    会导致冲突dn冲突,所以导入失败。

    解决办法:

    1.将要导入ldap的系统/var/lib/ldap/* 下生成的所有db全部删除。再导入

    2.只导出需要的条目,ldapsearch -x -H ldap://10.1.1.1 -b 'dc=example,dc=net'

    3.使用上文的正则过滤,但我感觉这是最不合适的方法。

    ldap的设计体系:

    主要分两部分,dn和schema

    ldap数据的基本单元是entry,一个entry对应一个dn,包含一些属性,这些属性分别属于不同的schema,即schema定义了属性组,其中包含了必选属性和可选属性。

    dn-->objectclass-->schema-->attributes

    ……困,睡觉

  • 相关阅读:
    高并发系统中的常见问题
    区块链需要解决诸多问题
    什么是“区块链”技术
    github源码开源区块链浏览器
    JavaScript 内存
    行为驱动开发(BDD)
    Vue.js
    Net程序员学习Linux
    Mybatis数据操作
    Metatable和Metamethod(转)
  • 原文地址:https://www.cnblogs.com/silenceli/p/3488304.html
Copyright © 2011-2022 走看看