`

实现LDAP的主主复制

阅读更多

 现有两台机器,分别是ldap-1.example.com和ldap-2.example.com,
 已经分别按照http://yang8787jie-126-com.iteye.com/admin/blogs/671693安装了端口为389的sun-ldap实例。
 现按照下面的步骤实现在两个实例间的主主复制,即修改任何一个实例中的数据,另一个实例中的数据同样会被修改。

 
 以下命令在机器ldap-1.example.com上进行操作:
 步骤一:
使用以下命令看是否已经配置了允许LDAP实例主主复制,
#./dsconf  list-suffixes -p 389 -v
SUFFIX_DN            entry-count  repl-role       repl-agmts  repl-priorities  indexes  encr-attrs 
-------------------  -----------  --------------  ----------  ---------------  -------  ---------- 
dc=zju,dc=edu,dc=cn          402  not-replicated         N/A              N/A       29           0

如果repl-role=not-replicated,则表示既没有启用主主复制也没有启用主从复制。
如果repl-role=consumer,表示已经启用主从复制,则需要先删除主从复制的设置,
使用命令./dsconf disable-repl -h ldap-1.example.com -p 389 dc=zju,dc=edu,dc=cn进行删除。
当然也可以使用升级命令或降级命令来实现,
详见dsconf的参数详见http://docs.sun.com/app/docs/doc/820-2767/dsconf-1m?l=zh_TW&a=view。


#./dsconf enable-repl -h ldap-1.example.com -p 389 -d 3891 master dc=zju,dc=edu,dc=cn
上面命令中-d后面跟的是REPL_ID的值,范围是1到65534,并且特别注意,绝对不能跟ldap-2.example.com上设置的REPL_ID相同。

否则,会出现如下情况:

[

[root@localhost bin]# ./dsconf init-repl-dest -h localhost -p 389 dc=zju,dc=edu,dc=cn ldap-2.example.com:389
Enter "cn=Directory Manager" password: 
Initialization of "ldap-2.example.com:389" failed
Server exit code: "810"
Server exit message: "Replication error initializing replica: Total update failed - Cons and supp RUV match"
The "init-repl-dest" operation failed on "localhost:389".

]
#./dsconf  list-suffixes -p 389 -v
 步骤三:
为LDAP实例修改复制管理器的密码:
#echo replmanager > pwd.txt
#cat pwd.txt
#./dsconf set-server-prop -h ldap-1.example.com -p 389 def-repl-manager-pwd-file:pwd.txt
 步骤五:
 为每个LDAP实例创建复制协议:
#./dsconf list-repl-agmts -h localhost -p 389 -v dc=zju,dc=edu,dc=cn
#./dsconf create-repl-agmt -h ldap-1.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-2.example.com:389
#./dsconf list-repl-agmts -h localhost -p 389 -v dc=zju,dc=edu,dc=cn
 步骤七:
 初始化LDAP实例的复制协议:
#./dsconf show-repl-agmt-status -h ldap-1.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-2.example.com:389
#./dsconf init-repl-dest -h ldap-1.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-2.example.com:389

上面的命令运行后, 机器ldap-2.example.com上的389实例将被初始化跟 ldap-1.example.com上389实例一样
#./dsconf show-repl-agmt-status -h ldap-1.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-2.example.com:389
 步骤九:
 验证主主复制是否已经成功工作:
#cd /ldap/install/dsrk6/bin
#./ldapmodify -a -h ldap-1.example.com -p 389 -D cn=admin,cn=Administrators,cn=config -w admin123

dn: ou=test,dc=zju,dc=edu,dc=cn
objectclass: top
objectclass: organizationalUnit
ou: test
description: Container for user entries
每输入一行,按回车键进入下一行的输入,全部输入完毕后,按2次回车,再按ctrl+c确定并退出。


 以下命令在机器ldap-2.example.com上进行操作
 步骤二:
#./dsconf  list-suffixes -p 389 -v
#./dsconf enable-repl -h ldap-2.example.com -p 389 -d 3892 master dc=zju,dc=edu,dc=cn
#./dsconf  list-suffixes -p 389 -v
 步骤四:
#echo replmanager > pwd.txt
#cat pwd.txt
#./dsconf set-server-prop -h ldap-2.example.com -p 389 def-repl-manager-pwd-file:pwd.txt
 步骤六:
#./dsconf list-repl-agmts -h localhost -p 389 -v dc=zju,dc=edu,dc=cn
#./dsconf create-repl-agmt -h ldap-2.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-1.example.com:389
#./dsconf list-repl-agmts -h localhost -p 389 -v dc=zju,dc=edu,dc=cn
 步骤八:

#./dsconf show-repl-agmt-status -h ldap-2.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-1.example.com:389

#./dsconf init-repl-dest -h ldap-2.example.com -p 389 dc=zju,dc=edu,dc=cn ldap-1.example.com:389
#./dsconf show-repl-agmt-status -h ldap-2.example.com -p 389 dc=zju,dc=edu,dc=cn
ldap-1.example.com:389

 步骤十:
 用以下命令查看新创建的实体是否已经复制过来:
#cd /ldap/install/dsrk6/bin
#./ldapsearch -b "dc=zju,dc=edu,dc=cn" -p 389 -D "cn=Directory Manager" -w admin123 "objectclass=organizationalUnit"

分享到:
评论

相关推荐

    sun ldap复制指南

    #### 二、Sun LDAP复制功能介绍 Sun LDAP的复制功能是实现多服务器环境下的数据同步和冗余的关键技术。它允许管理员在多个LDAP服务器之间自动分发和同步数据,这对于构建高可用性和灾难恢复方案至关重要。复制可以...

    JAVA中使用LDAP进行用户认证

    3. 可复制性:LDAP目录可以轻松地复制到其他服务器上,确保了数据的安全性和可用性。 下面是一个使用LDAP进行用户认证的JAVA代码示例: ```java import javax.naming.Context; import javax.naming....

    ldap6配置文档

    1. **分布式架构**:LDAP支持分布式目录服务,这意味着数据可以在多个服务器之间复制,从而实现高可用性和负载均衡。 2. **高效查询**:LDAP针对读操作进行了优化,使其非常适合于频繁查询的应用场景。 3. **灵活的...

    LDAP服务器.pdf

    由于其互联网标准地位,供应商乐意在产品中集成LDAP支持,无需关心服务器端的实现。此外,LDAP服务器的安装、维护和优化相对简单,内置的复制功能使得数据分发和安全性增强,且通常无需额外费用或复杂的管理。 综上...

    Linux系统快速实现基于LDAP协议的目录服务

    Linux系统实现基于LDAP协议的目录服务,主要是为了克服传统数据库系统的性能瓶颈和管理复杂性,提供高效、便捷的数据查询服务。目录服务,尤其是轻量级目录访问协议(LDAP),是针对这种需求的一种解决方案。LDAP是...

    大数据组件集成LDAP

    - 实现LDAP与Kerberos的集成,通过共享LDAP数据库的方式实现。 - 创建LDAP数据库,用于存储用户信息。 - 导入Linux系统用户到LDAP数据库。 - 配置客户端以支持LDAP和Kerberos的联合认证。 #### 十一、Ambari集成 - ...

    Sync_Data.rar_C LDAP AD_c++ ldap_ldap_数据同步

    总结,"Sync_Data.rar_C LDAP AD_c++ ldap_ldap_数据同步"涉及了使用C++通过LDAP库与AD进行交互并实现数据同步的高级技术。理解和应用这些知识,可以帮助开发出高效且可靠的目录服务同步解决方案。

    ldap安装配置新手必看

    OpenLDAP是一个开放源代码实现的LDAP系统,本文将详细介绍如何在Linux环境下安装配置OpenLDAP,并使用它来管理用户的账号信息。 #### 二、OpenLDAP软件概述 OpenLDAP按照客户机/服务器模型设计,由以下几个组件构成...

    LDAP客户端

    5. **同步与复制**:在多服务器环境中,LDAP 客户端可以协助实现目录数据的同步和复制,确保数据的一致性。 ### LdapBrowser282 "LdapBrowser282" 可能是指一个特定版本的 LDAP 浏览工具,它提供了一个图形用户...

    LDAP 中文资料介绍

    7. **LDAP目录服务器**:如 Apache Directory Server、OpenLDAP 和 Microsoft Active Directory 是常见的 LDAP 实现,它们提供了服务器端的实现,存储和管理目录信息,并处理来自客户端的请求。 8. **LDAP客户端...

    ldap 使用指南

    4. 安装指南:文档提供了安装LDAP插件的具体步骤,包括从Fuel插件目录下载插件、使用SSH将插件复制到已安装的Fuel主节点上、登录到Fuel主节点并安装插件,以及验证插件是否成功安装。 5. 使用指南:文档还包括用户...

    活动目录编程(LDAP)

    Windows的活动目录是实现LDAP的一个具体实例,它扩展了LDAP协议,提供了更丰富的功能,如组策略、权限控制、复制等。在活动目录中,可以创建域、林和组织单位,组织用户、计算机和其他对象,并实施集中化的管理。 ...

    搭建ldap必备软件

    **OpenLDAP**是实现LDAP协议的一种开源软件,它提供了服务器端的服务,可以创建、查询和管理目录信息。OpenLDAP包含了slapd(主服务器进程)、ldif工具(用于数据导入导出)和其他辅助工具,是搭建LDAP环境的基础。 ...

    LINUX LDAP 服务器 简介

    LDAP服务器提供了强大的复制功能,能将数据“推”或“拉”至不同位置,增强了数据的安全性和可用性。同时,其内置的访问控制机制(ACI)允许精细地管理数据访问权限,确保信息安全。例如,允许特定用户修改某些字段...

    LDAP协议

    2. **高可用性**:LDAP支持数据复制功能,可以将数据分发到多个服务器,从而提高系统的可用性和冗余度。 3. **灵活的安全控制**:LDAP提供了细粒度的访问控制,能够根据用户身份、位置等多种因素来限制数据访问权限...

    LDAP技术,LDAP学习大全

    LDAP复制可以通过以下几种方式实现: - **主从复制**:数据从主服务器复制到一个或多个从服务器。 - **多主复制**:两个或更多的服务器之间互相复制数据。 - **分区复制**:将目录数据分为多个部分,每个部分由不同...

Global site tag (gtag.js) - Google Analytics