15.10. 从复制拓扑中删除目录服务器实例


在某些情况下,如硬件中断或结构性更改,管理员希望从复制拓扑中删除目录服务器实例。本节介绍删除实例的详细信息。
从复制拓扑中删除消费者或 hub:
  1. 如果要删除的主机是 hub,也是拓扑中其他服务器的供应商,请配置其他供应商或 hub 将数据复制到这些服务器。如果这些服务器没有配置其他供应商,并且删除了 hub,则这些服务器会与复制拓扑隔离。有关配置复制的详情,请参考:
  2. 在要删除的主机上,将数据库设置为只读模式以防止任何更新:
    # ldapmodify -D "cn=Directory Manager" -W -p 389 -h host-to-remove.example.com -x
    
    dn: cn=userRoot,cn=ldbm database,cn=plugins,cn=config
    changetype: modify
    replace: nsslapd-readonly
    nsslapd-readonly: on
  3. 在与要删除的主机具有复制协议的所有供应商中,删除复制协议。例如:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com repl-agmt \
         delete --suffix="dc=example,dc=com" agreement_name
  4. 在消费者或 hub 上,删除所有后缀的禁用复制。例如:
    # dsconf -D "cn=Directory Manager" ldap://host-to-remove.example.com replication \
         disable --suffix="dc=example,dc=com"
    禁用复制会自动在此服务器上删除此后缀的所有复制协议。

15.10.2. 从复制拓扑中删除供应商

从复制拓扑中完全从复制拓扑中删除供应商比删除消费者或 hub 更复杂。这是因为拓扑中的每个供应商都存储有关其他供应商的信息,即使供应商突然不可用也是如此。
目录服务器在一组名为副本更新向量(RUV)的元数据中维护复制拓扑的信息。RUV 包含有关供应商的信息,如其 ID、URL、本地服务器上的最新更改状态号(CSN),以及第一次更改的 CSN。供应商和消费者都存储 RUV 信息,它们使用它来控制复制更新。
要完全删除供应商,您必须将其 meta 数据与配置条目一起删除。
  1. 如果要删除的副本也是拓扑中其他服务器的供应商,请配置其他供应商或 hub 将数据复制到这些服务器。如果这些服务器没有配置其他供应商,并且删除了供应商,则这些服务器会与复制拓扑隔离。有关配置复制的详情,请参考:
  2. 在要删除的供应商中:
    1. 将数据库设置为只读模式,以防止任何更新。详情请查看 第 2.2.2.1 节 “在只读模式下设置数据库”
    2. 等待拓扑中的所有其他服务器都收到此供应商的所有数据。要验证,请确保其他服务器上的 CSN 等于或大于供应商中的 CSN 来删除。例如:
      # ds-replcheck online -D "cn=Directory Manager" -w password -m ldap://replica-to-remove.example.com:389 -r ldap://server.example.com:389 -b dc=example,dc=com
      ================================================================================
               Replication Synchronization Report  (Tue Mar  5 09:46:20 2019)
      ================================================================================
       
       
      Database RUV's
      =====================================================
       
      Supplier RUV:
        {replica 1 ldap://replica-to-remove.example.com:389} 5c7e8927000100010000 5c7e89a0000100010000
        {replicageneration} 5c7e8927000000010000
       
      Replica RUV:
        {replica 1 ldap://replica-to-remove.example.com:389} 5c7e8927000100010000 5c7e8927000400010000
        {replica 2 ldap://server.example.com:389}
        {replicageneration} 5c7e8927000000010000
    3. 显示副本 ID:
      # dsconf -D "cn=Directory Manager" ldap://replica-to-remove.example.com replication get --suffix="dc=example,dc=com" | grep -i "nsds5replicaid"
      nsDS5ReplicaId: 1
      在本例中,副本 ID 是 1。记住此过程的最后一步的副本 ID。
  3. 在具有要删除的副本的复制协议的所有供应商中,删除复制协议。例如:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com repl-agmt \
         delete --suffix="dc=example,dc=com" agreement_name
  4. 在要删除的副本上,禁用所有后缀的复制。例如:
    # dsconf -D "cn=Directory Manager" ldap://replica-to-remove.example.com replication \
         disable --suffix="dc=example,dc=com"
    禁用复制会自动在此服务器上删除此后缀的所有复制协议。
  5. 在拓扑中剩余的供应商中,清理副本 ID 的 RUV。例如:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com repl-tasks \
         cleanallruv --suffix="dc=example,dc=com" --replica-id=1
    该命令需要指定此流程前面步骤中显示的副本 ID。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部