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

……困,睡觉

【转载】openldap 备份与导入 及相关问题--扩展的更多相关文章

  1. openldap 备份与导入 及相关问题

    摘要: 对openldap进行备份时,直接使用slapcat命令进行备份,使用ldapadd还原出现问题及解决. 介绍: 对openldap进行备份时,直接使用slapcat命令进行备份(如代码一), ...

  2. MongoDB系列----备份与导入导出

    参考: http://my.oschina.net/xiaomaoandhong/blog/63471,<> 1.停掉服务器 然后备份 Mongodb将所有数据都存放在"数据目录 ...

  3. FastAdmin 导入 Excel 相关资料收集 (2018-08-14)

    FastAdmin 导入 Excel 相关资料收集 新版本一键CRUD后自带导入功能,但是默认被禁用,如何启动 https://forum.fastadmin.net/thread/540 Excel ...

  4. 备份和导入Outlook 2016 电子邮件签名

    在本文中,我将分享您在Outlook 2013和Outlook 2016中备份或导入签名的过程 在清除Outlook配置文件之前,请确保您通过在文件资源管理器中的配置文件中的APPDATA文件夹中复制 ...

  5. linux 简单的mysql备份和导入,以及文件的备份和导入

    一,数据库的备份与导入 1),数据库的备份 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 例:mysqldump -u dbadmin -p myblo ...

  6. 云服务器 ECS Linux 系统 MySQL 备份的导入导出

    MySQL 备份的导出 注意: 如果您使用的是帮助中心的一键环境配置,那么 MySQL 的安装目录是 /alidata/server/mysql. 如果您将 MySQL 安装到其他目录,您需要输入您 ...

  7. 使用PL/SQL连接oracle数据库,并将数据进行导出备份和导入恢复

    使用PL/SQL连接oracle数据库,并将数据进行导出备份和导入恢复 这种操作百度一搜一大片,今天整理以前做的项目时自己备份了一下数据库,试着将数据进行导出备份和导入恢复了一下:下面是操作过程: 1 ...

  8. win10安装mysql过程&&链接过程&&备份和导入数据&&grant命令

    win10安装mysql过程&&链接过程&&备份和导入数据&&grant命令   一 .安装 一开始在mysql官网(https://www.mysql ...

  9. 【转载】RMAN备份保留策略设置相关命令

    转自 http://blog.sina.com.cn/s/blog_7c5a82970101g4s7.html 策略有两种,一种是基于恢复窗口策略的,一种是基于冗余策略的. 基于恢复窗口策略: 定义的 ...

随机推荐

  1. XSS测试语句大全

    '><script>alert(document.cookie)</script> ='><script>alert(document.cookie)& ...

  2. ado.net工厂模式DbProviderFactories

    DbProviderFactory f = DbProviderFactories.GetFactory(System.Configuration.ConfigurationManager.Conne ...

  3. c#使用NPOI导出Excel及往Excel里追加记录

    最近在做一个打印发票的程序,要求保存打印记录,所以用到了NPOI往Excel里导入数据,但是遇到了一些问题没法解决,最后看了别人的Java程序后才明白.下面只是说明几个问题,而不是怎样使用NPOI 问 ...

  4. POJ C++程序设计 编程题#1 大整数的加减乘除

    编程题#4:大整数的加减乘除 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 ...

  5. Vue.js学习 Item8 -- 方法与事件处理器

    方法处理器 可以用 v-on 指令监听 DOM 事件: <div id="example"> <button v-on:click="greet&quo ...

  6. 开篇 hello 内Cool超人

    经过一年时间看到asp.net mvc一直被受微软开发团队的注重.与之相比的silverlight我感觉到有点力不从心.除去silverlight第一次运行要安装Runtime不说,产品不可能只运行在 ...

  7. IOS下载资源zip到本地然后读取

    思路是 1.ios下载服务器上的zip资源包(图片,声音等经过zip压缩的资源包)到本地 2.解压zip到程序目录 3.从程序目录加载资源文件 一.下载zip资源 [cpp]-(NSString*)D ...

  8. iOS开发常用的宏

    #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)#define SCREEN_HEIGHT ([UIScreen mainS ...

  9. 一些关于python的小感想

    python是一门优秀的语言,但随之而来的是大量的知识,各种模块,相信一个人的大脑是很难记住如此多的内容.这时后的我们就应该想办法避免去记忆这么多的内容. 1.查看官方文档(英语很重要,啥也不说了) ...

  10. Unix 编程

    1. Users and Groups 真实用户ID和真实组ID 真实用户ID和组ID表示运行进程的真实用户 ID 和 组ID. 有效用户ID和有效组IDp 有效 ID 是进程进行相关操作(比如系统调 ...