Show Table of Contents
6.3.1.1.1. Backing up All Databases Using the
6.3.1.1.2. Backing up All Databases Using a
6.3. Backing up Directory Server
A backup in Directory Server contains, for example:
- All database files including the data stored within these databases
Note
Directory Server does not support backing up individual databases. - The transaction logs
- The Indices
In contrast to a backup, you can export data as described in Section 6.2, “Exporting Data”. Use the export feature to export specific data, such as a subtree, from a server in the LDAP Data Interchange Format (LDIF) format.
Warning
Do not stop the server during a backup operation.
Directory Server runs the backup task as the
dirsrv
user. Therefore, the permissions of the destination directory must allow this user to create files.
6.3.1. Backing up All Databases Using the Command Line
Directory Server supports backing up the databases while the instance is running or while the instance is offline:
- Use one of the following methods if the instance is running:
- Use the
dsconf backup create
command. See Section 6.3.1.1.1, “Backing up All Databases Using thedsconf backup create
Command”. - Create a
cn=tasks
entry. See Section 6.3.1.1.2, “Backing up All Databases Using acn=tasks
entry”.
- If the instance is offline, use the
dsctl db2bak
command. See Section 6.3.1.2, “Backing up All Databases While the Server is Offline”.
Important
These methods only back up the databases. For details about backing up other important files, such as the configuration, see Section 6.3.3, “Backing up Configuration Files, the Certificate Database, and Custom Schema Files”.
6.3.1.1. Backing up All Databases While the Server is Running
6.3.1.1.1. Backing up All Databases Using the dsconf backup create
Command
Use the
dsconf backup create
command to automatically create a task that backs up all databases.
For example, to backup the
userRoot
database:
# dsconf -D "cn=Directory Manager" ldap://server.example.com backup create The backup create task has finished successfully
By default,
dsconf
stores the backup in a subdirectory called instance_name-time_stamp
in the /var/lib/dirsrv/slapd-instance_name/bak/
directory. To specify a different location, append a directory name to the command.
6.3.1.1.2. Backing up All Databases Using a cn=tasks
entry
The
cn=tasks,cn=config
entry in the Directory Server configuration is a container entry for temporary entries the server uses to manage tasks. To initiate a backup operation, create a task in the cn=backup,cn=tasks,cn=config
entry.
Using a task entry enables you to backup the databases while the server is running.
A backup task entry requires the following attributes:
cn
: Sets the unique name of the task.nsDatabaseType
: Sets the type of the database to back up. Directory Server supports only theldbm database
value in this attribute.
Backup tasks support additional parameters, for example, to specify a different destination directory as the default,
/var/lib/dirsrv/slapd-instance_name/bak/
. For a complete list, see the cn=backup section in the Red Hat Directory Server Configuration, Command, and File Reference.
For example, to backup all databases and store the archive in the default backup directory:
# ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x dn: cn=example_backup,cn=export,cn=tasks,cn=config changetype: add objectclass: extensibleObject cn: example_backup nsDatabaseType: ldbm database
If you not specify the
nsArchiveDir
attribute, the server stores the backup in a subdirectory called instance_name-time_stamp
in the /var/lib/dirsrv/slapd-instance_name/bak/
directory.
When the task is completed, the entry is removed from the directory configuration.
6.3.1.2. Backing up All Databases While the Server is Offline
If the server is offline when you backup databases, use the
dsctl db2bak
command:
- Stop the instance:
# dsctl instance_name stop
- Backup the database:
# dsctl instance_name db2bak OK group dirsrv exists OK user dirsrv exists [18/Jul/2018:14:02:37.358958713 +0200] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 ... db2bak successful
Note
Thedsctl db2bak
command runs as the backup as thedirsrv
user. Therefore, the permissions of the destination directory must allow this user to create files and directories.If you not append a destination directory to the command, the server stores the backup in a subdirectory calledinstance_name-time_stamp
in the/var/lib/dirsrv/slapd-instance_name/bak/
directory. - Start the instance:
# dsctl instance_name start
6.3.2. Backup up all Databases Using the Web Console
To back up all databases of an instance using the web console:
- Open the Directory Server user interface in the web console. See Section 1.4, “Logging Into Directory Server Using the Web Console”.
- Select the instance.
- Click the Manage Backup.button, and select
- Click.
- Enter a name for the backup, such as a time stamp to indicate the creation date and time of the backup.
- Click.
The server stores the backup in a subdirectory with the name you entered in the
/var/lib/dirsrv/slapd-instance_name/bak/
directory.
6.3.3. Backing up Configuration Files, the Certificate Database, and Custom Schema Files
The backup mechanism integrated into Directory Server backs up only the databases. However, there are additional files stored in the
/etc/dirsrv/slapd-instance-name/
directory which are required to, for example, restore a instance on a different server after a hardware failure.
Note
Backing up the configuration directory is not supported in the web console.
Example 6.2. How to Back up the /etc/dirsrv/slapd-instance-name/
Directory
To back up the content of
/etc/dirsrv/slapd-instance-name/
, you can copy the directory or store it into an archive file. For example, to store the content of the /etc/dirsrv/slapd-instance-name/
directory in the /root/config_slapd-instance_name_time_stamp.tar.gz
file:
# cd /etc/dirsrv/ # tar -zcvf /root/config_slapd-instance_name_$(date +%Y-%m-%d_%H-%M-%S).tar.gz slapd-instance_name/
Important
During the backup, do not update the certificate database. Otherwise, this database might not be consistent in the backup.