Docs Menu
Docs Home
/
MongoDB Cluster-to-Cluster Sync
/

Configuration

On this page

  • Configuration File
  • Settings
  • Reconfigure mongosync During Synchronization
  • (Optional) Pause the mongosync processes
  • Stop the mongosync processes
  • (Optional) Update your configuration file
  • Initialize the mongosync processes
  • Start or Resume the mongosync processes

You can configure mongosync instances at startup by using command line options or a configuration file. The configuration file specifies values for settings that are the equivalent of mongosync command line options.

During a migration, you can reconfigure certain mongosync settings by following the steps in Reconfigure mongosync During Synchronization.

You can write most mongosync command line options to a YAML file. The configuration file specifies values for each setting using YAML format.

For example:

cluster0: "mongodb://192.0.2.10:27017"
cluster1: "mongodb://192.0.2.20:27017"
logPath: "/var/log/mongosync"
verbosity: "WARN"

To use a configuration file, start mongosync with the --config option to set the path to the file:

mongosync --config <configPath>

You can configure the following mongosync settings using a configuration file.

To configure mongosync from the command line, see Command Line Options.

Note

The start command provides additional options for features like reversibility and user write blocking. For more details, see the start API documentation.

acceptDisclaimer

Type: bool

Accepts disclaimers for the embedded verifier.

When the mongosync process starts without this setting, the user is prompted to accept each disclaimer.

This setting allows users who have already read and accepted disclaimers to accept the disclaimer and start the mongosync process.

To set the acceptDisclaimer setting from the command line, see the --acceptDisclaimer option.

New in version 1.9.

cluster0

Type: string

Sets the connection URI for the first cluster. The first cluster can serve as either the source or the destination in the sync process. Designate the source and destination clusters in the call to the start API endpoint.

For more information on connecting mongosync, see Connections.

To set the cluster0 setting from the command line, see the --cluster0 option.

cluster1

Type: string

Sets the connection URI for the second cluster. The second cluster can serve as either the source or the destination in the sync process. Designate the source and destination clusters in the call to the start API endpoint.

For more information on connecting mongosync, see Connections.

To set the cluster1 setting from the command line, see the --cluster1 option.

disableTelemetry

Type: boolean

New in version 1.4.0.

Disables the collection of telemetry data for mongosync.

By default, mongosync collects anonymous, aggregated usage data to improve MongoDB products. When you run mongosync you can disable collection of this telemetry data.

To set the disableTelemetry setting from the command line, see the --disableTelemetry option.

For more information, see User Data Collection.

disableVerification

Type: boolean

Disables the Embedded Verifier. When disabled, mongosync does not verify the migration. For alternative verification methods, see Verify Data Transfer.

This option provides a workaround for customers who experience OOM kills when running mongosync with verification and cannot allocate more resources or tolerate restarting verification. It allows the migration to complete with verification disabled. Verification remains disabled for subsequent restarts and reversals.

This option should not be used when mongosync is initially started. Instead, disable verification with the /start request parameter verification.enabled: false since verification is enabled by default.

To disable verification from the command-line, see the --disableVerification option.

New in version 1.10.

id

Type: string

Sets an identifier for the mongosync instance.

Use this setting when running multiple instances of mongosync on a sharded cluster, to synchronize the shards individually.

The identifier value for this setting must correspond to the shard ID of the shard it syncs. To find the shard ID, use the listShards command.

To set the id setting from the command line, see the --id option.

loadLevel

Type: integer

Default: 3

Sets the cluster workload level for syncing data between the source and destination clusters:

  • 4, the highest setting, maximizes cluster workload and syncs data the fastest.

  • 1, the lowest setting, minimizes cluster workload and syncs data the slowest.

To set the loadLevel setting from the command line, see the --loadLevel option.

Warning

Setting loadLevel higher than the default of 3 may negatively impact the destination cluster performance.

If read bottlenecks exist on the source cluster or if write bottlenecks exist on the destination cluster, decreasing loadLevel might improve performance.

New in version 1.4.

logPath

Type: string

Sets the path to the log directory. Cluster-to-Cluster Sync writes logs to files in this directory.

For more information, see Logging.

To set the logPath setting from the command line, see the --logPath option.

port

Type: integer

Default: 27182

Sets the port used by the HTTP server for the Cluster-to-Cluster Sync HTTP API.

To set the port setting from the command line, see the --port option.

verbosity

Type: string

Default: DEBUG

Sets the verbosity level to use in log messages. Cluster-to-Cluster Sync logs all messages at the specified level and any messages at lower levels.

The verbosity setting supports the following values:

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

  • PANIC

To set the verbosity setting from the command line, see the --verbosity option.

Important

Only the following settings can be adjusted during a migration. Other settings must remain unchanged between mongosync restarts.

While mongosync is syncing, you can reconfigure the --config, --disableTelemetry, --loadLevel, --logPath, --port, and --verbosity options by performing the following steps:

1

Run pause on each running mongosync process.

You can resume the mongosync processes later from the paused state, as shown in the final step.

Tip

If you don't want to immediately resume data synchronization operations after reconfiguration, consider pausing the mongosync processes. This is useful if you're coordinating operations from multiple mongosync processes.

2

Use your operating system to stop each running mongosync process. For the specific steps, see your operating system documentation.

3

If you used the --config option to set the path to a configuration file when you first initialized mongosync, update this configuration file with the new value for each setting.

4

If you updated a configuration file in the last step, initialize the mongosync processes with the --config option set to the path of the updated configuration file:

mongosync --config <configPath>

If you did not use the --config option when you first initialized mongosync, initialize the mongosync processes with the command line options set to their updated values:

mongosync \
--cluster0 "<cluster0_connection_string>" \
--cluster1 "<cluster1_connection_string>" \
--loadLevel <newLevel>

For more information, see Initialize mongosync.

5

If you paused any mongosync processes earlier in the optional first step, run resume on the paused mongosync processes.

If you stopped any mongosync processes without using pause, run start on the stopped mongosync processes. For more detailed instructions, see Synchronize Data Between Clusters.

mongosync resumes the sync roughly where it was before you stopped the earlier proceses. Any partitions that were in progress at the time of termination will restart from the beginning.

Back

Behavior