MIGRATE-DS.PL(8)

NAME
migrate-ds.pl - Directory Server Migration script

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

DESCRIPTION
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.

OPTIONS
A summary of options is included below:

--help
    This message

--version
    Print the version and exit

--debug
    Turn on debugging

--oldsroot
    The old server root directory to migrate from

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

--silent
    Use silent setup - no user input

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

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

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

--instance
    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.

--cross
    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:

    section.param=value

e.g.

    General.FullMachineName=foo.example.com

or

    "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 /var/lib/dirsrv/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

    /var/lib/dirsrv/slapd-instance/db/userRoot/
    and
    /var/lib/dirsrv/slapd-instance/db/NetscapeRoot/

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

    cd /var/lib/dirsrv/slapd-instance
    ./db2ldif -n userRoot -a /var/lib/dirsrv/slapd-instance/ldif/userRoot.ldif and
    ./db2ldif -n NetscapeRoot -a /var/lib/dirsrv/slapd-instance/ldif/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.

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

REPORTING BUGS
Report bugs to https://pagure.io/389-ds-base/new_issue

COPYRIGHT
Copyright © 2017 Red Hat, Inc.
This manual page was written by Michele Baldessari <michele@pupazzo.org>, for the Debian project (but may be used by others).
This is free software. You may redistribute copies of it under the terms of the Directory Server license found in the LICENSE file of this software distribution. This license is essentially the GNU General Public License version 2 with an exception for plug-in distribution.