Database replication utility


rdm-replicate [OPTION]… source-db-uri target-db-uri


rdm-replicate is a command-line utility to replicate data from a source RDM database to a target RDM database.


-h, --help Display this usage information
--version Display the version information
-q, --quiet Quiet mode. No information will be displayed
--key=ignore We accept this option but ignore the argument for compatibility with other rdm command line tools
--copy Copy the data from the source to the target
-f, --force Force overwriting a destination that exists
-u, --allow-unsafe Allow skipping pack files if the target is lagging behind
--name=name Specifies the server port (TCP/IP) or name (non-TCP-IP) for connections. The default port is "21553" and the default name is "21553". If a number is specified, it will be used for the TCP/IP port and the server name. If a string or invalid port number is specified, it will be used as the server name, and the TCP/IP transport will not be initialized.
--docroot=path The location of the docroot directory. (See Database Storage Location)
--listen=interface Enable the listener on a given interface ('--listen=none', '--listen=tcp', '--listen=shm', or '--listen=all'). The default is 'all'.
--service=service Enable one or more services. Supported values are: 'all', 'none', 'rdm', 'sql' and 'rest'. Multiple values can be specified with a comma (e.g. --service=rdm,sql). The default is 'all'.
--logfile=name Log output to the specified log file
--log-category=category Set the log category (this can be specified more than once for multiple categories) - the default is all)
--log-level=level Set the log level ('--log-level=all', '--log-level=error', '--log-level=warning', '--log-level=info', '--log-level=mesg', or a number (5-99)) - the default is '99')
--err-level=level Set the log level ('--log-level=all', '--log-level=error', '--log-level=warning', '--log-level=info', '--log-level=mesg', or a number (5-99)) - the default is 'info')
--poll-frequency=milliseconds Number of milliseconds to wait between each time we poll the source database for changes
--start Start the server in the background and return when an initial copy is available on the target
--daemon Start the server in daemon mode and return when an initial copy is available on the target
--stop Stop the server
--query Query the execution status of the server
--pack-file-size=size The pack file size
--pid-file=file-name A file name to write the process-ID to. This file will be created before the command returns and it will be deleted upon a clean termination.
--source-io=how How we are doing IO for the source database in the case we are connecting to a remote TFS on the same machine. Possible values are '--source-io=local' and '--source-io=remote'. The default value is '--source-io=local'.
source-db-uri The Source RDM Database URI
target-db-uri The Target RDM Database URI

Short options can be combined into one string starting with a single '-'. Mandatory arguments to long options are mandatory for short options too. Long option arguments can also be specified in a separate argument.


The replication is done by copying the content of pack files from a source database to a target database.

Use the --copy option to copy the database from the source to the target. This operation may fail if the target database already exists. However, the --force option can be used to override this. The copy will contain the data that was present in the source database at some time after this command was started but before it returned.

This utility may be cleanly terminated on some platforms by issuing SIGTERM. Issuing SIGINT will terminate the utility immediately on some platforms. There are some limitations other clients of these databases have to obey. The source database can not be opened in exclusive mode by any client, and the destination database can only be opened in read only mode.

Please note that the options '--docroot', '--name', '--service', and '--listen' only applies to the TFS instantiated as part of running rdm-replicate similarly to how they would apply to rdm-tfs. Any RDM database URI that connects to another server is not affected by these options.