Manual initialization
Manual initialization is not always required. Replication can proceed automatically when replicas start from the same initial data.
If this is not the case, manually initialize replication. How you initialize replication depends on your situation:
Use cases | Recommendations |
---|---|
Replicas installed with same data |
Nothing to do (no manual initialization required) |
Evaluating DS software Developing a directory solution |
Limitations:
|
New directory service, medium to large data set (> 500,000 entries) |
Limitations:
|
Existing directory service, medium to large data set (> 500,000 entries) |
Limitations:
|
New backend |
Create a backend, then one of:
Limitations:
|
Broken data set |
Limitations:
|
Initialize over the network
Review Initialization options before following these steps:
-
Manually initialize replication using the replication protocol’s total update capability in one of these ways:
-
Overwrite the data in all replicas with the data from the replica where the command runs:
$ dsrepl \ initialize \ --baseDN dc=example,dc=com \ --toAllServers \ --hostname localhost \ --port 4444 \ --bindDN uid=admin \ --bindPassword password \ --trustStorePath /path/to/opendj/config/keystore \ --trustStorePassword:file /path/to/opendj/config/keystore.pin \ --no-prompt
-
Initialize a single other replica, identified by its server ID, from the replica where the command runs:
$ dsrepl \ initialize \ --baseDN dc=example,dc=com \ --toServer ds-1 \ --hostname localhost \ --port 4444 \ --bindDN uid=admin \ --bindPassword password \ --trustStorePath /path/to/opendj/config/keystore \ --trustStorePassword:file /path/to/opendj/config/keystore.pin \ --no-prompt
-
Initialize from LDIF
If you aim to return to a previous state of the data, or to initialize replicas with LDIF from a non-replicated environment, follow the steps in Restore to a known state instead. |
Review Initialization options before following these steps:
Initialize each replica with the same LDIF:
-
Stop the server.
-
If desired, enable data confidentiality.
For details, refer to Data encryption and Encrypt External Changelog Data.
-
Import the LDIF.
For details, refer to Import LDIF.
-
Start the server.
Initialize from backup
Review Initialization options before following these steps:
-
Stop the replica.
-
Restore the backend from backup.
For details, refer to Restore.
-
Start the replica.
Replication replays changes from other replicas that have happened since the backup was created.
Restore to a known state
When you restore all replicas to a known state, all updates that happened since the last backup or LDIF export operation are permanently lost. You might make a separate backup copy of the data before the procedure for subsequent analysis. Applications that use the changelog for change notifications must be reinitialized after this procedure. |
DS replication makes all replicas converge on the same data. It mechanically applies new changes everywhere, with newer changes taking precedence over older changes. This behavior is a good thing when the newer changes are correct.
This behavior is a bad thing when a client application bug, or a user error causes many unwanted new changes. You recover from a disaster like this by restoring all replicas to a good, known state.
Review Initialization options before following these steps:
-
On each replica, prevent changes to the affected data.
For details, refer to Read-only replicas.
-
On a single replica, run the command to force all replicas' generation IDs for the affected data to an invalid state:
$ dsrepl \ start-disaster-recovery \ --baseDN dc=example,dc=com \ --hostname localhost \ --port 4444 \ --bindDN uid=admin \ --bindPassword password \ --trustStorePath /path/to/opendj/config/keystore \ --trustStorePassword:file /path/to/opendj/config/keystore.pin \ --no-prompt
Replication halts as the command takes effect.
Starting at this time, changes made to the affected data are not replicated, even after replication resumes.
-
On each replica, restore the data to the same known state in one of these ways:
-
Restore the data from backup files.
For details, refer to Restore.
-
Import the data from LDIF.
For details, refer to Import LDIF.
-
-
On a single replica, run the command to recalculate all replicas' generation IDs for the affected data:
$ dsrepl \ end-disaster-recovery \ --baseDN dc=example,dc=com \ --hostname localhost \ --port 4444 \ --bindDN uid=admin \ --bindPassword password \ --trustStorePath /path/to/opendj/config/keystore \ --trustStorePassword:file /path/to/opendj/config/keystore.pin \ --no-prompt
Replication resumes as the command takes effect.
-
On each replica, allow write operations on the base DN.
For details, refer to Read-only replicas.