Help Center> Database and Application Migration UGO> User Guide> Conversion Configuration> Migration Configurations> Editing the Configurations During Migration from Oracle to RDS for MySQL/GaussDB(for MySQL)
Updated on 2024-04-22 GMT+08:00

Editing the Configurations During Migration from Oracle to RDS for MySQL/GaussDB(for MySQL)

Symptom

Feature Name

Recommended Setting

RDS for MySQL/GaussDB(for MySQL) does not support AUTHID CURRENT_USER or AUTHID DEFINER.

AUTHID CURRENT_USER or AUTHID DEFINER

Comment AUTHID CURRENT_USER or AUTHID DEFINER.

RDS for MySQL/GaussDB(for MySQL) does not support SQL PLUS commands.

SQL PLUS

Comment SQL PLUS.

RDS for MySQL/GaussDB(for MySQL) does not support hierarchical queries.

Hierarchical queries

This feature converts hierarchical queries and creates queries in other ways. Select this configuration item for GaussDB(for MySQL) 8.0 or later.

RDS for MySQL/GaussDB(for MySQL) does not support tables with more than 65,535 characters.

Large tables more than 65,535 characters

Convert CHAR to TEXT and RAW to BLOB. As the storage size may increase slightly, the performance may decrease slightly.

RDS for MySQL/GaussDB(for MySQL) does not support multi-list partitions that contain unsupported partition types.

Multi-list partitions that contain unsupported partition types

Generate virtual columns to replace unsupported partition types.

RDS for MySQL/GaussDB(for MySQL) does not support foreign keys of partitioned tables.

Foreign keys of partitioned tables

Ignore the migration. The script remains unchanged and error information is recorded.

RDS for MySQL/GaussDB(for MySQL) does not support global temporary tables.

Global temporary tables

Comment the GLOBAL keywords in CREATE GLOBAL TEMPORARY TABLE statements.

RDS for MySQL/GaussDB(for MySQL) does not support row deletion when a global temporary table transaction is committed.

ON COMMIT DELETE ROWS in CREATE TABLE statements

Comment ON COMMIT DELETE ROWS in CREATE TABLE statements.

RDS for MySQL/GaussDB(for MySQL) does not support some special characters or keyword object names.

Special characters or keyword object names

Add single quotation marks (') or double quotation marks (") as prefixes and suffixes to object names.

The maximum size of the VARCHAR columns in Oracle tables is greater than that in RDS for MySQL/GaussDB(for MySQL) tables.

Maximum size of VARCHAR columns for tables

Set the default maximum size of VARCHAR columns to 64000. If the value exceeds the limit, the column type will be converted to TEXT.

RDS for MySQL/GaussDB(for MySQL) does not support automatic partitioning.

Automatic partitioning

Comment INTERVAL automatic partitioning.

The default maximum precision of the float data type in Oracle and RDS for MySQL/GaussDB(for MySQL) is, respectively, 126 and 53.

FLOAT data type

Convert the FLOAT type to the DOUBLE type.

RDS for MySQL/GaussDB(for MySQL) does not support the BFILE type.

BFILE type

Convert BFILE to LONGTEXT.

RDS for MySQL/GaussDB(for MySQL) does not support the XMLTYPE type.

XMLTYPE type

Convert XMLTYPE to LONGTEXT.

RDS for MySQL/GaussDB(for MySQL) does not support GRANT statements.

GRANT statement

Comment all GRANT statements. The script is migrated.

RDS for MySQL/GaussDB(for MySQL) does not support tablespaces.

Tablespace

Comment TABLESPACE clauses.

RDS for MySQL/GaussDB(for MySQL) does not support table partitions with primary keys or unique keys.

Table partitions with primary keys or unique keys

Add partition keys to the unique constraints (primary keys and unique keys).

RDS for MySQL/GaussDB(for MySQL) does not support the DBMS_UTILITY.FORMAT_ERROR_BACKTRACE system packages.

DBMS_UTILITY.FORMAT_ERROR_BACKTRACE system packages

Convert DBMS_UTILITY.FORMAT_ERROR_BACKTRAC to RETURNED_SQLSTATE, MYSQL_ERRNO, or MESSAGE_TEXT.

RDS for MySQL/GaussDB(for MySQL) does not support PL/SQL delimiters.

PL/SQL delimiters

Set the default delimiter for PL/SQL blocks. Stored procedures, functions and triggers are executed as a single unit.

RDS for MySQL/GaussDB(for MySQL) does not support package name delimiters.

Package name delimiters

Set a delimiter to form the name of a sub-object in a package during the Oracle package migration.

RDS for MySQL/GaussDB(for MySQL) does not support EDITIONING.

EDITIONING

Comment the EDITIONING keywords in view statements.

RDS for MySQL/GaussDB(for MySQL) does not support BITMAP indexes.

BITMAP indexes

Convert BITMAP indexes to BTREE indexes.

RDS for MySQL/GaussDB(for MySQL) does not support UNUSABLE indexes.

UNUSABLE indexes

Convert UNUSABLE indexes to INVISIBLE indexes.

RDS for MySQL/GaussDB(for MySQL) does not support long indexes.

Long indexes

Reduce the size of index expressions.

The maximum size of the index column in Oracle is greater than that in RDS for MySQL/GaussDB(for MySQL).

Maximum size of index columns

Set the maximum size of index columns to 3072 supported by RDS for MySQL/GaussDB(for MySQL).

RDS for MySQL/GaussDB(for MySQL) does not support external or global users.

Global or external users

Convert global or external users to common database users.

RDS for MySQL/GaussDB(for MySQL) does not support PROFILE.

PROFILE

Comment PROFILE clauses. The scripts are migrated.

RDS for MySQL/GaussDB(for MySQL) does not support DEBUG privilege.

DEBUG privileges

Comment DEBUG privileges. The scripts are migrated.

RDS for MySQL/GaussDB(for MySQL) does not support roles.

Roles

NOTE:

This parameter can be configured only in RDS for MySQL 5.7.

Comment ROLE statements. The scripts are migrated.

RDS for MySQL/GaussDB(for MySQL) does not support DELIGATE clauses in GRANT statements.

DELIGATE clauses in GRANT statements

Comment DELIGATE clauses. The scripts are migrated.

RDS for MySQL/GaussDB(for MySQL) does not support system roles.

System roles

Comment all GRANT statements. The scripts are migrated.

In RDS for MySQL/GaussDB(for MySQL), the username is case-insensitive.

Username case sensitivity

Migrate the username in LOWERCASE.

RDS for MySQL/GaussDB(for MySQL) does not support SEQUENCE.

SEQUENCE

Use user-defined functions to replace sequence operations.

In RDS for MySQL/GaussDB(for MySQL), role names are case-sensitive.

Role name case sensitivity

NOTE:

This parameter can be configured only in GaussDB(for MySQL) 8.0.

Migrate the role name in UPPERCASE or LOWERCASE.

RDS for MySQL/GaussDB(for MySQL) does not support GRANT statements for granting permissions to roles.

GRANT statements

NOTE:

This parameter can be configured only in GaussDB(for MySQL) 8.0.

Comment all GRANT statements. The scripts are migrated.

RDS for MySQL/GaussDB(for MySQL) does not support IDENTIFIED BY clauses in GRANT statements.

IDENTIFIED BY clauses in GRANT statements

NOTE:

This parameter can be configured only in GaussDB(for MySQL) 8.0.

Comment IDENTIFIED BY.

MySQL does not have the data type corresponding to TIMESTAMP WITH TIME ZONE of Oracle.

TIMESTAMP WITH TIME ZONE

Convert TIMESTAMP WITH TIME ZONE to DATETIME.

MySQL does not have the data type corresponding to TIMESTAMP WITH LOCAL TIME ZONE of Oracle.

TIMESTAMP WITH LOCAL TIME ZONE

Convert TIMESTAMP WITH LOCAL TIME ZONE to TIMESTAMP.

Impact: The maximum value range of TIMESTAMP in MySQL is 2038. If the date is later than 2038, only the DATETIME type can be used.