nav-img
Advanced

From Oracle to MySQL

Supported Source and Destination Databases

Table 1 Supported databases

Source DB

Destination DB

  • On-premises Oracle databases
  • Oracle databases on ECSs
  • RDS for MySQL

Suggestions

Caution
  • When a task is being started or in the full migration phase, do not perform DDL operations on the source database. Otherwise, the task may be abnormal.
  • To maintain data consistency before and after the migration, ensure that no data is written to your source and destination databases during a full migration. In the full+incremental migration mode, you can continue the migration while data is still being written to the source database.
  • The success of migration depends on environment and manual operations. You can run a migration test before you start the full-scale migration to help you detect and resolve problems in advance.
  • 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 50 MB/s during full migration, and two to four CPUs are occupied.
    • To ensure data consistency, tables to be migrated without a primary key may be locked for 3s.
    • The data being migrated may be locked by other transactions for a long period of time, resulting in read timeout.
    • When DRS concurrently reads data from a database, it will use about 6 to 10 sessions. The impact of the connections on services must be considered.
    • If you read a table, especially a large table, during the full migration, the exclusive lock on that table may be blocked.
  • Data-Level Comparison

    To obtain accurate comparison results, compare data 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

  • Full migration (minimum permissions):
    • Source database: The source database user must have the CREATE SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, and SELECT ANY DICTIONARY permissions.
    • The destination database user must have the following permissions: SELECT, CREATE, DROP, DELETE, INSERT, UPDATE, ALTER, INDEX, EVENT, RELOAD, CREATE VIEW, CREATE ROUTINE, and TRIGGER.
  • Full+incremental migration (minimum permissions):
    • Source database: The source database must have the following permissions and roles: CREATE SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY, and EXECUTE_CATALOG_ROLE. If the Oracle database version is 12c or later, the LOGMINING permission is required.
    • The destination database user must have the following permissions: SELECT, CREATE, DROP, DELETE, INSERT, UPDATE, ALTER, INDEX, EVENT, RELOAD, CREATE VIEW, CREATE ROUTINE, and TRIGGER.

Migration objects

  • Databases, table structures, primary keys, unique keys, normal indexes, and table data can be migrated. Other database objects, such as stored procedures, triggers, functions, sequences, packages, synonyms, and users, cannot be migrated.
  • Incremental migration does not include the migration of DDLs.
  • Full synchronization does not support the following column types: bfile, xml, sdo_geometry, urowid, and user-defined types.
  • Incremental synchronization does not support the following column types: bfile, xml, interval, sdo_geometry, urowid, and user-defined types.
  • The default values of the source database can be to_date and sys_guid functions. To use other functions as default values, ensure that the destination database has the same functions. If the destination database does not have the corresponding function, the following results may be displayed:
    • The default value may be left empty.
    • The table fails to be created. As a result, the object comparison result is inconsistent or the task fails.
  • If the table contains only LOB columns, data inconsistency may occur.
  • Tables whose default values contain expression functions cannot be migrated.

Source database

  • The maximum row length of Oracle cannot exceed 8 KB, excluding BLOB and TEXT columns which will be automatically converted to the text and blob types of MySQL. The reason is that the MySQL InnoDB restricts the row length to 8 KB.
  • The primary key or unique key column cannot contain data of the character string type when you map the MySQL data types to the character string data types in Oracle because MySQL cannot tell spaces in data. Otherwise, data inconsistency and deadlock may occur.
  • The values of binary_float and binary_double cannot be set to Nan, Inf, or -Inf because MySQL does not support these values. DRS converts the three values to 0 and saves them by default.
  • MySQL does not support the migration of the check constraints of Oracle.
  • AUTO_PK_ROW_ID cannot be used as a column name in Oracle because it is a reserved column name in MySQL 5.7 and cannot be created.
  • The value of the NUMBER field in Oracle cannot exceed the precision and scale of (65, 30). The value of the INT field cannot exceed the precision and scale of (65, 0). The digit range of MySQL is smaller than that of Oracle.
  • The names of databases and tables cannot contain non-ASCII characters or the following special characters: .><\`|,?'!"
  • The source database name cannot start with ib_logfile and cannot be ib_buffer_pool, ib_doublewrite, ibdata1 or ibtmp1.
  • During incremental migration from Oracle to MySQL, archive logs must be enabled on the source Oracle database.
  • The Default User statement is not supported in MySQL.
  • An empty source database cannot be migrated.
  • Only the following character sets are supported: ZHS16GBK, AL32UTF8, UTF8, US7ASCII, and WE8MSWIN1252.

Destination database

  • The destination instance cannot contain the databases to be migrated.
  • During a synchronization, a large amount of data is written to the destination database. If the value of the max_allowed_packet parameter of the destination database is too small, data cannot be written. You are advised to set the max_allowed_packet parameter to a value greater than 100 MB.

Precautions

  • Associated objects must be migrated at the same time to avoid migration failure caused by missing associated objects. Common dependencies: tables referenced by primary or foreign keys
  • After objects such as tables are migrated to the destination database, their names are converted into lowercase letters. For example, the name of object ABC is changed to abc after being migrated to the destination database.
  • The time zone settings of the source and destination database must be the same.
  • If there are special characters in the Oracle database, the code of the destination Oracle database must be the same as the code of the source Oracle database. Otherwise, garbled characters are displayed in the destination database.
  • After the Oracle table structure is migrated to the MySQL database, the character set of the table is UTF8MB4.
  • The table without a primary key lacks a unique identifier for rows. When the network is unstable, you may need to retry the task several times, or data inconsistency may occur.
  • If the length of a table structure in the Oracle database exceeds 65535, the migration may fail. The length of a table structure is the total length of all columns. The length of the char or varchar2 type is related to the code.
  • If the source database is an Oracle RAC environment, you cannot use SCANIP to create tasks. You can use a node as the source database. Except the node used for task configuration, other nodes of the source database can still be migrated if they become faulty.
  • If the data types are incompatible, the migration may fail.
  • During the migration, writing data to the destination databases is not allowed. Otherwise, data inconsistency may occur.
  • During the migration, do not modify or delete the usernames, passwords, and permissions of the source and destination databases or change the ports of the source and destination databases.
  • During task startup or full migration, you are not advised to perform DDL operations on the source database, such as deleting the database or indexes. Otherwise, the migration may fail.
  • During an incremental migration of table-level objects, renaming tables is not recommended.
  • During migration, do not create a database named ib_logfile in the source database.
  • When editing the task to add a new table, ensure that transactions of the new table have been committed. Otherwise, transactions that are not committed may fail to be migrated to the destination database. You are advised to add tables during off-peak hours.

Prerequisites

  • You have logged in to the DRS console.
  • For details about the DB types and versions supported by real-time migration, see Real-Time Migration.

Procedure

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

    • Task information description
      Table 3 Task information

      Parameter

      Description

      Task Name

      The task name must start with a letter and consist of 4 to 50 characters. It can contain only letters, digits, hyphens (-), and underscores (_).

      Description

      The description consists of a maximum of 256 characters and cannot contain special characters !=<>'&"\

    • Replication instance details
      Table 4 Replication instance settings

      Parameter

      Description

      Data Flow

      Select To the cloud.

      The destination database must be an RDS database on the current cloud.

      Source DB Engine

      Select Oracle.

      Destination DB Engine

      Select MySQL.

      Network Type

      Available options: VPN or Direct Connect and Public network.

      You can select a network type based on the site requirements. The following uses the public network as an example.

      Destination DB Instance

      Select the DB instance you have created.

      Replication Instance Subnet

      The subnet where the replication instance resides. You can also click View Subnets 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 acceptable. All objects and data in non-system databases are migrated to the destination database at one time. The objects include tables, views, stored procedures, and triggers.
        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 and Tags
      Table 5 Enterprise Project and Tags

      Parameter

      Description

      Enterprise Project

      An enterprise project you would like to use to centrally manage your cloud resources and members. Select an enterprise project from the drop-down list. The default project is default.

      Tags

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

    If a task fails to be created, DRS retains the task for three days by default. After three days, the task automatically stops.

  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.

    Table 6 Source database settings

    Parameter

    Description

    IP Address or Domain Name

    The IP address or domain name of the source database.

    Port

    The port of the source database. Range: 1 – 65535

    Database Service Name

    You can use the database service name (Service Name or SID) to connect to Oracle databases from your client.

    Select Service Name or SID from the drop-down list and enter the corresponding value.

    Use a user with the DBA permissions to query its value:

    • Use either of the following statements to query the service name:
      • Statement 1:
        select value from v$parameter where name like '%service_name%';
      • Statement 2:
        show parameter service_name;
    • Query the SID:
      select instance_name from V$instance;

    Database Username

    The username for accessing the source database.

    Database Password

    The password for the database username.

    SSL Connection

    If SSL connection is required, enable SSL on the source database, ensure that related parameters have been correctly configured, and upload an SSL certificate.

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

    The IP address, port, username, and password of the source database are encrypted and stored in the database and the replication instance, and will be cleared after the task is deleted.

    Table 7 Destination database settings

    Parameter

    Description

    DB Instance Name

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

    Database Username

    The username for accessing the destination database.

    Database Password

    The password for the database username.

    The database username and password are encrypted and stored in DRS, and will be cleared after the task is deleted.

    SSL Connection

    If SSL connection is required, enable SSL on the destination database, ensure that related parameters have been correctly configured, and upload an SSL certificate.

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

    The username and password of the destination 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.

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

    Table 8 Migration Object

    Parameter

    Description

    Migration Object

    Tables: The selected table-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:
    • If an object name contains spaces, 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 name of the selected migration object cannot contain spaces.
    • To quickly select the desired database objects, you can use the search function.

  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.
    • If the check is complete and the check success rate is 100%, click Next.
      Note

      You can proceed to the next step only when all checks are successful. 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 Notifications, SMN Topic, Delay Threshold (s), and Stop Abnormal Tasks After and confirm that the configured information is correct and click Submit to submit the task.

    Table 9 Task startup settings

    Parameter

    Description

    Start 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

    This parameter is optional. If the status, latency metric, or data of the migration task is abnormal, DRS will send you a notification.

    SMN Topic

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

  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.
    • After the full migration is complete, you can use data comparison to check whether the data is consistent before and after the migration.
    • By default, DRS retains a task in the Configuration state for three days. After three days, DRS automatically deletes background resources, but the task status remains unchanged. When you reconfigure the task, DRS applies for resources again.
    • For a public network task, DRS needs to delete background resources after you stop the task. The EIP bound to the task cannot be restored to the Unbound state until background resources are deleted.