migrate-ds.pl man page

migrate-ds.pl — Directory Server Migration script


migrate-ds.pl [--options] -- [args]


Directory Server Migration script - migrates Directory Server from older releases to the current release.

This script will copy instances (data and configuration) from the old server root directory to their new FHS locations.  This script does a copy only - the data in the old instances will be left untouched.  The old instances must be shutdown first to ensure that the databases are copied safely.  During migration your migrated instances will be started.


A summary of options is included below:


This message


Print the version and exit


Turn on debugging


The old server root directory to migrate from

--actualsroot This is the old location of the old server root.

Use silent setup - no user input


Use the file 'name' in .inf format to supply the default answers


Do not delete the temporary .inf file generated by this program


Log migration messages to this file - otherwise, a temp file will be used


By default, all directory server instances will be migrated.  You can use this argument to specify one or more (e.g. -i slapd-foo -i slapd-bar) if you do not want to migrate all of them.


See below.

For all options, you can also use the short name e.g. -h, -d, etc. For the -d argument, specifying it more than once will increase the debug level e.g. -ddddd

args: You can supply default .inf data in this format:





"slapd.Suffix=dc=example, dc=com"

Values passed in this manner will override values in an .inf file given with the -f argument.

actualsroot: This is used when you must migrate from one machine to another.  The usual case is that you have mounted the old server root on a different root directory, either via a network mount, or by copying a tarball made using a relative directory on the source machine to the destination machine and untarring it.

For example: machineA is a 32bit machine, and you want to migrate your servers to a new 64bit machine.  Lets assume your old server root on machineA was /opt/myds, and your new machine also wants to use a server root of /opt/myds.  There are a couple of different ways to proceed.  Either make a tarball of opt/myds from machineA using a relative path (i.e. NOT /opt/myds) or use NFS to mount machineA:/opt/myds on a different mount point (e.g. machineB:/migration/opt/myds).

If you do this, you should give the old "real" server root (/opt/myds) as the --actualsroot argument, and use /migration/opt/myds for the --oldsroot argument.  That is, the oldsroot is the physical location of the files on disk.  The actualsroot is the old value of the server root on the source machine.

cross: Also known as crossplatform, or 'c', or 'x'. This is when the source machine is a different architecture than the destination machine.  In this case, only certain data will be available for migration.  Changelog information will not be migrated, and replicas will need to be reinitialized (if migrating masters or hubs).  This type of migration requires that all of your old databases have been dumped to LDIF format, and the LDIF file must be in the default database directory (usually /opt/fedora-ds/slapd-instance/db), and the LDIF file must have the same name as the database instance directory, with a ".ldif".  For example, if you have


you must first use db2ldif to export these databases to LDIF e.g.

cd /opt/fedora-ds/slapd-instance
./db2ldif -n userRoot -a /opt/fedora-ds/slapd-instance/db/userRoot.ldif and
./db2ldif -n NetscapeRoot -a /opt/fedora-ds/slapd-instance/db/NetscapeRoot.ldif

Then you must somehow make your old server root directory available on the destination machine, either by creating a tar archive on the source and copying it to the destination, or by network mounting the source directory on the destination machine.


migrate-ds.pl was written by the 389 Project.

Reporting Bugs

Report bugs to https://fedorahosted.org/389/newticket.


May 18, 2008