How To
ForgeRock Identity Platform
Does not apply to Identity Cloud

How do I migrate an existing DS+RS replication topology to a DS to RS topology in DS 5.x or 6.x?

Last updated Feb 24, 2021

The purpose of this article is to provide information on migrating a current directory server (DS) with replication server (RS) topology (DS+RS) to a standalone RS in DS.


Overview

This article details the steps necessary to migrate from a DS with RS topology (DS+RS <-> DS+RS) to a standalone RS topology (DS <-> RS <-> DS), where:

  • DS+RS (1) <-> DS+RS (2) is the original topology.
  • DS (3) <-> RS (4) <-> DS (5) is the migrated topology.

The following hostnames and port numbers have been used in these examples:

Server(s) Hostname Admin Port Replication Port
DS+RS (1) ds1.example.com 4444 8989
DS+RS (2) ds2.example.com 5444 9989
DS (3) ds3.example.com 6444 --
RS (4) rs4.example.com 7444 10989
DS (5) ds5.example.com 8444 --
Note

This article only applies to DS 6.x and earlier. There have been a lot of changes in DS 7 to simplify replication. See Configuration Guide › Replication and Installation Guide › Install Standalone Servers for further information.

Migrating your replication topology

Starting with an initial configuration of DS+RS <-> DS+RS:

Suffix DN : Server : Entries : Replication enabled : DS ID : RS ID : RS Port (1) : M.C. (2) : A.O.M.C. (3) : Security (4) ------------------:----------------------:---------:---------------------:-------:-------:-------------:----------:--------------:------------- dc=example,dc=com : ds1.example.com:4444 : 100 : true : 10000 : 10000 : 8989 : 0 : : false dc=example,dc=com : ds2.example.com:5444 : 100 : true : 7310 : 2040 : 9989 : 0 : : true

You can migrate as follows: 

  1. Add RS (4) and replicate it to DS+RS (2) using the setup and dsreplication commands, for example: $ ./setup --ldapPort 389 --adminConnectorPort 7444 --rootUserDN "cn=Directory Manager" --rootUserPassword password --enableStartTLS --ldapsPort 636 --hostName rs4.example.com --acceptLicense $ ./dsreplication configure --host1 rs4.example.com --port1 7444 --bindDn1 "cn=Directory Manager" --bindPassword1 password --replicationPort1 10989 --secureReplication1 --onlyReplicationServer1 --host2 ds2.example.com --port2 5444 --bindDn2 "cn=Directory Manager" --bindPassword2 password --secureReplication2 --noReplicationServer2 --baseDn dc=example,dc=com --adminUid admin --adminPassword password --no-prompt --noPropertiesFile --trustAll This results in DS+RS (1) <-> DS+RS (2) <-> RS (4):Suffix DN         : Server               : Entries : Replication enabled : DS ID : RS ID : RS Port (1) : M.C. (2) : A.O.M.C. (3) : Security (4) ------------------:----------------------:---------:---------------------:-------:-------:-------------:----------:--------------:------------- dc=example,dc=com : ds1.example.com:4444 : 100     : true                : 10000 : 10000 :  8989       : 0        :              : false dc=example,dc=com : ds2.example.com:5444 : 100     : true                :  7310 :  2040 :  9989       : 0        :              : true                   : rs4.example.com:7444 : (6)     : true                :       : 11351 : 10989       :          :              : true
  2. Add DS (3) and replicate it to RS (4) using the setup and dsreplication commands, for example: $ ./setup --ldapPort 1389 --adminConnectorPort 6444 --rootUserDN "cn=Directory Manager" --rootUserPassword password --enableStartTLS --ldapsPort 1636 --hostName ds3.example.com --addBaseEntry --baseDN dc=example,dc=com --acceptLicense $ ./dsreplication configure --host1 ds3.example.com --port1 6444 --bindDn1 "cn=Directory Manager" --bindPassword1 password --secureReplication1 --noReplicationServer1 --host2 rs4.example.com --port2 7444 --bindDn2 "cn=Directory Manager" --bindPassword2 password --replicationPort2 10989 --secureReplication2 --onlyReplicationServer2 --baseDn dc=example,dc=com --adminUid admin --adminPassword password --no-prompt --noPropertiesFile --trustAll
  3. Initialize DS (3) from an existing server (such as DS+RS (2)) using the dsreplication initialize command, for example: $ ./dsreplication initialize --adminUID admin --adminPassword password --baseDN dc=example,dc=com --hostSource ds2.example.com --portSource 5444 --hostDestination ds3.example.com --portDestination 6444 --trustAll --no-promptThis results in DS+RS (1) <-> DS+RS (2) <-> RS (4) <-> DS (3): Suffix DN         : Server               : Entries : Replication enabled : DS ID : RS ID : RS Port (1) : M.C. (2) : A.O.M.C. (3) : Security (4) ------------------:----------------------:---------:---------------------:-------:-------:-------------:----------:--------------:------------- dc=example,dc=com : ds1.example.com:4444 : 100     : true                : 10000 : 10000 : 8989      : 0        :              : false dc=example,dc=com : ds2.example.com:5444 : 100     : true                : 7310 : 2040  : 9989      : 0        :              : true dc=example,dc=com : ds3.example.com:6444 : 100     : true                : 8834 : (5)   :             : 0        :              :                    : rs4.example.com:7444 : (6)     : true                :       : 11351 : 10989       :          :              : true
  4. Disable replication for DS+RS (1) using the dsreplication command, for example:$ ./dsreplication unconfigure --unconfigureAll --hostname ds1.example.com --port 4444 --adminUID admin --adminPassword password --trustAll --no-promptThis results in DS+RS (2) <-> RS (4) <-> DS (3):Suffix DN         : Server               : Entries : Replication enabled : DS ID : RS ID : RS Port (1) : M.C. (2) : A.O.M.C. (3) : Security (4) ------------------:----------------------:---------:---------------------:-------:-------:-------------:----------:--------------:------------- dc=example,dc=com : ds2.example.com:5444 : 100     : true                : 7310  : 2040  :  9989       : 0        :              : true dc=example,dc=com : ds3.example.com:6444 : 100     : true                : 8834  : (5)   :             : 0        :              :                    : rs4.example.com:7444 : (6)     : true                :       : 11351 : 10989       :          :              : true
  5. Add DS (5) and replicate it to RS (4) using the setup and dsreplication commands, for example:$ ./setup --ldapPort 2389 --adminConnectorPort 8444 --rootUserDN "cn=Directory Manager" --rootUserPassword password --enableStartTLS --ldapsPort 2636 --hostName ds5.example.com --addBaseEntry --baseDN dc=example,dc=com --acceptLicense $ ./dsreplication configure --host1 ds5.example.com --port1 8444 --bindDn1 "cn=Directory Manager" --bindPassword1 password --secureReplication1 --noReplicationServer1 --host2 rs4.example.com --port2 7444 --bindDn2 "cn=Directory Manager" --bindPassword2 password --replicationPort2 10989 --secureReplication2 --onlyReplicationServer2 --baseDn dc=example,dc=com --adminUid admin --adminPassword password --no-prompt --noPropertiesFile --trustAll
  6. Initialize DS (5) from an existing server (such as DS+RS (2)) using the dsreplication initialize command, for example: $ ./dsreplication initialize --adminUID admin --adminPassword password --baseDN dc=example,dc=com --hostSource ds2.example.com --portSource 5444 --hostDestination ds5.example.com --portDestination 8444 --trustAll --no-prompt This results in DS+RS (2) <-> RS (4) <-> DS (3) <-> DS (5):Suffix DN         : Server               : Entries : Replication enabled : DS ID : RS ID : RS Port (1) : M.C. (2) : A.O.M.C. (3) : Security (4) ------------------:----------------------:---------:---------------------:-------:-------:-------------:----------:--------------:------------- dc=example,dc=com : ds2.example.com:5444 : 100     : true                : 7310 : 2040  : 9989       : 0        :              : true dc=example,dc=com : ds3.example.com:6444 : 100     : true                : 8834 : (5)   :             : 0        :              :  dc=example,dc=com : ds5.example.com:8444 : 100     : true                : 31314 : (5)   :             : 0        :              :                    : rs4.example.com:7444 : (6)     : true                :       : 11351 : 10989       :          :              : true
  7. Disable replication for DS+RS (2) using the dsreplication command, for example:$ ./dsreplication unconfigure --unconfigureAll --hostname ds2.example.com --port 5444 --adminUID admin --adminPassword password --trustAll --no-promptThis results in your standalone RS topology: DS (3) <-> RS (4) <-> DS (5):Suffix DN         : Server               : Entries : Replication enabled : DS ID : RS ID : RS Port (1) : M.C. (2) : A.O.M.C. (3) : Security (4) ------------------:----------------------:---------:---------------------:-------:-------:-------------:----------:--------------:------------- dc=example,dc=com : ds3.example.com:6444 : 100     : true                :  8834 : (5)   :             : 0        :              :  dc=example,dc=com : ds5.example.com:8444 : 100     : true                : 31314 : (5)   :             : 0        :              :                    : rs4.example.com:7444 : (6)     : true                :       : 11351 : 10989       :          :              : true

See Also

How do I troubleshoot replication issues in DS 5.x and 6.x?

Replication in DS

Administration Guide › Configuring Replication

Administration Guide › Standalone Replication Servers

Related Training

N/A

Related Issue Tracker IDs

N/A


Copyright and Trademarks Copyright © 2021 ForgeRock, all rights reserved.