Updated on 2022-09-21 GMT+08:00

From DDS to MongoDB

Supported Source and Destination Databases

Table 1 Supported Databases

Source DB

Destination DB

  • DDS instances
  • On-premises MongoDB databases
  • MongoDB databases on an ECS
  • MongoDB database on other clouds

Prerequisites

  • You have logged in to the DRS console.
  • Your account balance is greater than or equal to $0 USD.
  • For details about the DB types and versions supported by real-time migration, see Supported Databases.
  • If a subaccount is used to create a DRS task, ensure that an agency has been added. To create an agency, see Agency Management.

Suggestions

  • The success of database migration depends on environment and manual operations. To ensure a smooth migration, perform a migration trial before you start the migration to help you detect and resolve problems in advance.
  • In the migration, ensure that no data is written to the destination database to ensure data consistency before and after the migration.
  • Start your migration task during off-peak hours. A less active database is easier to migrate successfully. If the data is fairly static, there is less likely to be any severe performance impacts during the migration.
    • If network bandwidth is not limited, the query rate of the source database increases by about 20 MB/s during full migration, and two to four CPUs are occupied.
  • Data-Level Comparison

    To obtain accurate comparison results, start data comparison at a specified time point during off-peak hours. If it is needed, select Start at a specified time for Comparison Time. Due to slight time difference and continuous operations on data, data inconsistency may occur, reducing the reliability and validity of the comparison results.

Precautions

Before creating a migration task, read the following notes:

Table 2 Precautions

Type

Restrictions

Database permissions

Source database (minimum permissions):

  • Full migration:
    • Replica set: The source database user must have the readAnyDatabase permission for the admin database.
    • Single node: The source database user must have the readAnyDatabase permission for the admin database.
    • Cluster: The source database user must have the readAnyDatabase permission for the admin database and the read permission for the config database.
  • Full+incremental migration:
    • Replica set: The source database user must have the readAnyDatabase permission for the admin database and the read permission for the local database.
    • Single node: The source database user must have the readAnyDatabase permission for the admin database and the read permission for the local database.

Minimum permission requirements: The destination database user must have the dbAdminAnyDatabase permission for the admin database and the readWrite permission for the destination database. If the destination database is a cluster instance, the database user must have the clusterManager permission for the admin database and the read permission for the config database.

Precautions

  • Data cannot be migrated from a newer version database to an older version database.
  • System databases cannot be migrated. The username and role must be manually created in the destination database.
  • If a Time-to-Live (TTL) index already exists in the collection of the source database or is created during an incremental migration, data consistency cannot be ensured when source and destination databases are in different time zone.
  • The value of block_compressor is determined by stats().wiredTiger.creationString.block_compressor of the collection in the source database. If the destination database contains corresponding empty collections, the compression parameters will not be migrated. If the compression parameters in the source database are not supported by the destination database, configure the compression parameters based on net.compression.compressors of the destination database. If the storage engine of the destination database is not WiredTiger, DRS does not migrate compression parameters.
  • Collections that contain the _id field without indexes are not supported.
  • The first parameter of BinData() cannot be 2.
  • The statement for creating a view cannot contain a regular expression.
  • If the destination database is on a replica set instance out of the cloud, enter information about all primary and secondary nodes to reduce the impact of a primary/secondary switchover on the migration task. If you enter information about primary and secondary nodes, ensure that all nodes belong to the same replica set instance.
  • If the destination database is on a cluster instance out of the cloud, you are advised to enter information about multiple mongos nodes to reduce the impact of the single-node failure on the migration task. In addition, multiple mongos nodes support load balancing. In addition, ensure that all mongos nodes belong to the same cluster instance.
  • To accelerate the migration, delete unnecessary indexes from the source database and retain only necessary indexes before the migration.
  • During migration, do not modify or delete the usernames, passwords, permissions, or ports of the source and destination databases.
  • To ensure data consistency, you are not allowed to modify the destination database (including but not limited to DDL and DML operations) during the entire migration process.
  • During migration, data rollback caused by a primary/standby switchover of the source database is not supported.
  • Files larger than 16 MB cannot be inserted to or updated in the source database during full or incremental migration.
  • In the incremental migration phase, concurrent replay is performed at the collection level to maintain the migration performance. In the following scenarios, only single-thread write is supported and concurrent replay is not supported:
    • The collection index contains a unique key.
    • The value of capped of the collection attribute is true.

    In either of the preceding scenarios, the task delay may increase.

  • To prevent loopback, do not start tasks that migrate the same database to and out of the cloud at the same time.

Procedure

This section describes how to migrate from a DDS instance to an on-premises MongoDB database over a public network.

  1. On the Online Migration Management page, click Create Migration Task.
  2. On the Create Replication Instance page, select a region, specify the task name, description, and the replication instance details, and click Next.

    Figure 1 Migration task information
    Table 3 Task information

    Parameter

    Description

    Region

    The region where the replication instance is deployed. You can change the region. To reduce latency and improve access speed, select the region closest to your services.

    Task Name

    The task name consists of 4 to 50 characters, starts with a letter, and can contain only letters (case-insensitive), digits, hyphens (-), and underscores (_).

    Description

    The description can contain up to 256 characters and cannot contain special characters !=<>&'\"

    Figure 2 Replication instance information
    Table 4 Replication instance settings

    Parameter

    Description

    Data Flow

    Select Out of the cloud.

    The source database is an RDS database on the current cloud or a DDS DB instance. It is required that either the source database or the destination database is on the current cloud.

    Source DB Engine

    Select DDS.

    Destination DB Engine

    Select MongoDB.

    Network Type

    Available options: Public network, VPC, VPN or Direct Connect

    • VPC is suitable for migrations of cloud databases.
    • VPN and Direct Connect are suitable for migrations from on-premises databases to cloud databases or between cloud databases across regions.
    • Public network is suitable for migrations from on-premises databases or external cloud databases to destination databases.

    Source DB Instance

    Select the DDS DB instance to be migrated.

    Replication Instance Subnet

    The subnet where the replication instance resides. You can also click View Subnet to go to the network console to view the subnet where the instance resides.

    By default, the DRS instance and the destination DB instance are in the same subnet. You need to select the subnet where the DRS instance resides, and there are available IP addresses for the subnet. To ensure that the replication instance is successfully created, only subnets with DHCP enabled are displayed.

    Migration Type

    • Full: This migration type is suitable for scenarios where service interruption is permitted. It migrates all objects and data in non-system databases to the destination database at one time. The objects include collections and indexes.
      NOTE:

      If you are performing a full migration, do not perform operations on the source database. Otherwise, data generated in the source database during the migration will not be synchronized to the destination database.

    • Full+Incremental: This migration type allows you to migrate data without interrupting services. After a full migration initializes the destination database, an incremental migration initiates and parses logs to ensure data consistency between the source and destination databases.
    NOTE:

    If you select Full+Incremental, data generated during the full migration will be continuously synchronized to the destination database, and the source remains accessible.

    Enterprise Project

    • If the DB instance has been associated with an enterprise project, select the target project from the Enterprise Project drop-down list.
    • You can also go to the ProjectMan console to create a project. For details about how to create a project, see the ProjectMan User Guide.

    Tags

    • This setting is optional. Adding tags helps you better identify and manage your tasks. Each task can have up to 10 tags.
    • After a task is created, you can view its tag details on the Tags tab. For details, see Tag Management.

  3. On the Configure Source and Destination Databases page, wait until the replication instance is created. Then, specify source and destination database information and click Test Connection for both the source and destination databases to check whether they have been connected to the replication instance. After the connection tests are successful, select the check box before the agreement and click Next.

    Figure 3 Source database information
    Table 5 Source database settings

    Parameter

    Description

    DB Instance Name

    The DB instance you selected when creating the migration task. This parameter cannot be changed.

    Database Username

    Enter the username of the source database.

    Database Password

    Enter the password of the source database user.

    The username and password of the source database are encrypted and stored in the database and the replication instance during the migration. After the task is deleted, the username and password are permanently deleted.

    Figure 4 Destination database information
    Table 6 Destination database settings

    Parameter

    Description

    IP Address or Domain Name

    IP address or domain name of the source database in the IP address/Domain name:Port format. The port of the source database. Range: 1 - 65534

    You can enter a maximum of three groups of IP addresses or domain names of the source database. Separate multiple values with commas (,). For example: 192.168.0.1:8080,192.168.0.2:8080. Ensure that the entered IP addresses or domain names belong to the same instance.

    NOTE:

    If multiple IP addresses or domain names are entered, the test connection is successful as long as one IP address or domain name is accessible. Therefore, you must ensure that the IP address or domain name is correct.

    Authentication Database

    The name of the authentication database. For example: The default authentication database of HUAWEI CLOUD DDS instance is admin.

    Database Username

    The username for accessing the destination database.

    Database Password

    The password for the database username.

    SSL Connection

    SSL encrypts the connections between the source and destination databases. If SSL is enabled, upload the SSL CA root certificate.

    NOTE:
    • The maximum size of a single certificate file that can be uploaded is 500 KB.
    • If the SSL certificate is not used, your data may be at risk.

    The IP address, domain name, username, and password of the destination database are encrypted and stored in DRS and will be cleared after the task is deleted.

  4. On the Set Task page, select migration objects and click Next.

    Figure 5 Migration object
    Table 7 Migrate Object

    Parameter

    Description

    Other Options

    Determine whether to migrate the indexes you create during full migration. The default index based on _id is automatically created in the destination. If indexes are not migrated, the indexes are not compared.

    Migrate Object

    You can choose to migrate all objects, tables, or databases based on your service requirements.

    • All: All objects in the source database are migrated to the destination database. After the migration, the object names will remain the same as those in the source database and cannot be modified.
    • Tables: The selected table-level objects will be migrated.
    • Databases: The selected database-level objects will be migrated.

    If the source database is changed, click in the upper right corner before selecting migration objects to ensure that the objects to be selected are from the changed source database.

    NOTE:
    • When you select an object, the spaces before and after the object name are not displayed. If there are two or more consecutive spaces in the middle of the object name, only one space is displayed.
    • The search function can help you quickly select the required database objects.

  5. On the Check Task page, check the migration task.

    • If any check fails, review the cause and rectify the fault. After the fault is rectified, click Check Again.

      For details about how to handle check failures, see Checking Whether the Source Database Is Connected in Data Replication Service User Guide.

      Figure 6 Pre-check
    • If the check is complete and the check success rate is 100%, click Next.

      You can proceed to the next step only when all checks passed. If there are any items that require confirmation, view and confirm the details first before proceeding to the next step.

  6. On the displayed page, specify Start Time, Send Notification, SMN Topic, Synchronization Delay Threshold, and Stop Abnormal Tasks After and confirm that the configured information is correct and click Submit to submit the task.

    Figure 7 Task startup settings
    Table 8 Task startup settings

    Parameter

    Description

    Started Time

    Set Start Time to Start upon task creation or Start at a specified time based on site requirements. The Start at a specified time option is recommended.

    NOTE:

    The migration task may affect the performance of the source and destination databases. You are advised to start the task in off-peak hours and reserve two to three days for data verification.

    Send Notifications

    SMN topic. This parameter is optional. If an exception occurs during migration, the system will send a notification to the specified recipients.

    SMN Topic

    This parameter is available only after you enable Send Notifications and create a topic on the SMN console and add a subscriber.

    For details, see Simple Message Notification User Guide.

    Synchronization Delay Threshold

    During an incremental migration, a synchronization delay indicates a time difference (in seconds) of synchronization between the source and destination database.

    If the synchronization delay exceeds the threshold you specify, DRS will send alarms to the specified recipients. The value ranges from 0 to 3,600. To avoid repeated alarms caused by the fluctuation of delay, an alarm is sent only after the delay has exceeded the threshold for six minutes.

    NOTE:
    • In the early stages of an incremental migration, there is more delay because more data is waiting to be synchronized. In this situation, no notifications will be sent.
    • Before setting the delay threshold, enable Send Notification.
    • If the delay threshold is set to 0, no notifications will be sent to the recipient.

    Stop Abnormal Tasks After

    Number of days after which an abnormal task is automatically stopped. The value must range from 14 to 100. The default value is 14.

    NOTE:

    Tasks in the abnormal state are still charged. If tasks remain in the abnormal state for a long time, they cannot be resumed. Abnormal tasks run longer than the period you set (unit: day) will automatically stop to avoid unnecessary fees.

  7. After the task is submitted, view and manage it on the Online Migration Management page.

    • You can view the task status. For more information about task status, see Task Statuses.
    • You can click in the upper right corner to view the latest task status.