Updated on 2024-05-28 GMT+08:00

Step 1: Create a Migration Project

Scenarios

  • This section describes how to create a migration project based on an evaluation project of the source database to migrate the objects from the source database to the target database.
  • You need to select the target database to which the source database objects are to be migrated, and enter the target database information.
  • Each migration project corresponds to an evaluation project. You can create multiple migration projects based on an evaluation project.

Suggestions

You are advised to use a database in a non-production environment as the target database.

Constraints

  • System databases are maintained by the database itself and no creations can be performed on them. The MySQL system databases include performance_schema, information_schema, mysql, and sys. The GoldenDB system databases include information_schema, mysql, performance_schema, and sys. The PostgreSQL system databases include postgres.
  • If the name of an object on the source database exceeds 63 bytes, the object name will be truncated after the object is migrated to the target database GaussDB.
  • If you use a system database to create a migration project, the permission check may fail.
  • Each user can create up to 10 migration projects.

Prerequisites

  • You have permissions to create a migration project in the UGO console. To obtain permissions, see Permission Management.
  • There is at least one evaluation project whose Evaluation Status is Completed. Create Migration Project.
  • The target database to be connected is normal and has no arrears or suspension.
  • The target database user must have the permission to create, delete, and modify databases objects, such as schemas, tables, programs, indexes, users, functions, and views. For details, see Viewing the Permission Check Report.

Procedure

  1. Log in to the UGO console.
  2. In the navigation pane on the left, choose Schema Migration > Object Migration.
  3. Click Create Project in the upper right corner.
  4. On the Create Project page, enter the required information. For details, see Table 1.

    Figure 1 Creating a migration project
    Table 1 Parameter description

    Parameter

    Description

    Project Name

    The project name must be unique.

    The name is unique. It can contain 5 to 50 characters and must start with a letter and end with a digit or letter. Only letters (case-insensitive), digits, underscores (_), and hyphens (-) are allowed.

    (Optional) Exception Notification Mode

    SMN Topic

    Specifies whether to report exceptions through Simple Message Notification (SMN).

    To create an SMN topic, see Creating a Topic.

    NOTE:

    Follow-up Operation

    After the topic is created, you can add a subscription. After the subscription has been confirmed, alarm notifications will be sent to the subscription endpoint via SMN.

    Notification scenario:

    When the account is frozen or unfrozen, SMN can be used to send notifications.

    Enterprise Project

    If you have been associated with an enterprise project, select the target project from the Enterprise Project drop-down list.

    You can also go to the project management console to create a project. For details about how to create a project, see Enterprise Management User Guide.

    Permissions Check

    • By default, Skip Permission Check is not selected.
      • If the target database is not GaussDB and the permission check is skipped, the generated permission check report will have no content.
      • If the target database is GaussDB,

        If you do not select Skip Permission Check, you need to modify the items that failed to pass the check. After all check items are passed, the Next button on the Precheck page is available.

        If you select Skip Permission Check, the results of the failed check items change to Warning. The Next button on the Precheck page is available.

    NOTE:

    To create objects in the target database, you must have certain database permissions, such as those needed for creating tables and functions. If you skip the permission check, the system does not check whether you have these permissions.

    The migration may fail due to lack of permissions when SQL statements are converted on the target database.

    Evaluation Project

    Select an evaluation project from the drop-down list.

    • Target DB: The confirmed target database type is displayed. Each tenant can connect to a maximum of five target databases at the same time.
    • Target DB Version: The confirmed target database version is displayed.
    • DB Information Input Type
      NOTE:

      When the target database is GaussDB Primary/Standby 3.1 Enterprise Edition, select Input manually .

    Database Instance

    Select an instance.

    • Database Instance: Select a DB instance of the target database. If no DB instance is available, create one on the console.

      View DB Instance: Click View DB Instance to go to the instance list page of the target database and view instance information.

      View instances that cannot be selected: Click View instances that cannot be selected. A dialog box is displayed, showing the unavailable instance names and reasons.

    • DB Name: Enter the database name based on the selected target DB instance. The name contains up to 50 characters.
      NOTE:

      If the target database type is GaussDB, you are advised to select a GaussDB database that is compatible with the source database.

    • Username: Enter the username of the target database. It is recommended that the user has administrator.
    • Password: Enter the password of the target database.

    Hostname and IP Address

    When DB Information Input Type is set to Input manually

    • Network Type: An elastic IP address (EIP) is used to connect to the source database.

      If the target database network is restricted by the IP address whitelist, add the EIP to the target database network whitelist to ensure that UGO can connect to the target database.

      EIP in CN South-Guangzhou: 124.71.59.255

      EIP in AP-Singapore: 110.238.109.54

      EIP in LA-Santiago: 159.138.116.198

    • Enter the host name or host IP address based on the selected host type.
    • Host IP Address: Enter the IP address of the target database host.

      If the target database is GaussDB Primary/Standby, you can enter only the IP address of the primary node or the IP addresses of the primary node and multiple standby nodes. Use commas (,) to separate the IP addresses. When you connect to the database, the system automatically selects the IP address of the primary node.

      If the target database is GaussDB Distributed, you can enter one or more CN IP addresses separated by commas (,). The first IP address is preferentially used to connect to the database. If the previous IP address is abnormal, the next IP address will be used to connect to the database. If the first IP address of the CN can be connected but the CN node is abnormal and cannot be written, the connection test is normal, but an error message is displayed during permission check and object migration.

    • Hostname: Enter the host name of the target database.
    • You can enter multiple hostnames and use commas (,) to separate them. All hostnames can contain up to 1,024 characters.
    • Format of a hostname:
      • example.com
      • {part1}.{part2}.{part3}
    • A hostname can consist of multiple parts and each part is separated by periods(.). A hostname can contain up to 253 characters.
    • Each {part}:

      1. Can contain 1 to 127 characters.

      2. Can contain lowercase characters, uppercase characters, numbers, and hyphens (-).

      3. Must start with a lowercase character, uppercase character, or number.

      4. Cannot end with a digit ranging from 0 to 9 or a hyphen (-).

    • Host Port: Enter the port of the target database.
    • DB Name: Enter the database name. The name contains up to 50 characters.
    • Username: Enter the username of the target database. It is recommended that the user has administrator.
    • Password: Enter the password of the target database.

    Schemas to Migrate

    • Select Select all: Select schemas to be collected by UGO from the source database.
    • Deselect Select all: whether to reselect the schemas selected in the evaluation project.

    By default, Select all is selected.

    (Optional) SSL Type

    • No SSL: SSL is disabled and there may be potential security risks.
    • SSL without authentication: Transmission will be encrypted without authentication.
    • One-way SSL: The target database will be authenticated and transmission will be encrypted.
      • Upload a SQL file: Click Add File. On the displayed page, select All Files (*.*) for the file type, select the root certificate of the target database in JKS format, and upload it.
      • Trust Store Password: Enter the password of the trust store used to access the certificate.
    NOTE:
    • If you select One-way SSL, enter the correct uploaded file and entered password, which are private information of users. If the target database type is GaussDB or PostgreSQL, upload a PEM root certificate file. No password is required.
    • Secure Socket Layer (SSL) is an encryption-based Internet security protocol for establishing an encrypted link between a server and a client. It provides privacy, authentication, and integrity to Internet communications.

    (Optional) Tags

    Use predefined tags in Tag Management Service (TMS). Predefined tags are visible to all service resources that support the tagging function. For details, see Tag Management Service User Guide.

    Enter a key and a value, and click Add.

    A maximum of 10 tags can be added. For details, see Managing Tags.

  5. Click Test Connection.

    • If the connection test is successful, the Next button is available.
    • If the connection test fails, an error message is displayed.

  6. Click Next to go to the Precheck page.

    Figure 2 Performing a pre-check
    • Compatibility mode check: If the source database is Oracle, MySQL, GoldenDB, or Postgres and target database is GaussDB, the system checks the GaussDB compatibility mode. If the selected compatibility mode is different from that of the source database, the system notifies you of risks. This check result does not affect subsequent operations.
      Table 2 Compatibility

      Compatibility

      Oracle, MySQL, or Postgres as the source database and GaussDB as the target database:

      If the compatibility mode does not match, a compatibility message is displayed.

      Oracle, MySQL, or Postgres as the source database and GaussDB as the target database:

      If the compatibility mode is matched, no compatibility messages are displayed.

      GoldenDB as the source database and GaussDB (MySQL compatibility mode) as the target database:

      If the compatibility mode does not match, a compatibility message is displayed.

      GaussDB not as the target database:

      The compatibility check is not be performed.

      Oracle, GoldenDB, MySQL, or Postgres not as the source database and GaussDB as the target database:

      The compatibility check is successful and a compatibility message is displayed.

    • Character set check: The system checks the character sets of the source and target databases. This check result does not affect subsequent operations. Table 3 and Table 5 describe the character set compatibility.
      Table 3 Character set compatibility between Oracle and GaussDB

      Source Database

      Target Database

      Compatibility Result

      SQL_ASCII

      SQL_ASCII

      Success

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Alarm

      UTF8

      Alarm

      UTF32

      Alarm

      Other character sets

      Alarm

      US7ASCII

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Alarm

      UTF8

      Alarm

      UTF32

      Alarm

      Other character sets

      Alarm

      ISO-8859-1

      SQL_ASCII

      Alarm

      ISO-8859-1

      Success

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Alarm

      UTF8

      Alarm

      UTF32

      Alarm

      Other character sets

      Alarm

      LATIN1

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Success

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Alarm

      UTF8

      Alarm

      UTF32

      Alarm

      Other character sets

      Alarm

      GB2312

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Success

      GBK

      Success

      GB18030

      Success

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      ZHS16GBK

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Success

      GB18030

      Success

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      GBK

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Success

      GB18030

      Success

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      ZHS32GB18030

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Success

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      GB18030

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Success

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      AL16UTF16

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      UTF16

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      AL32UTF8

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      UTF8

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      UTF32

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      Other character sets

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Alarm

      UTF8

      Alarm

      UTF32

      Alarm

      Other character sets

      Alarm

      Table 4 Character set compatibility between MySQL and GaussDB

      Source Database

      Target Database

      Compatibility Result

      ISO-8859-1/LATIN1

      SQL_ASCII

      Alarm

      ISO-8859-1

      Success

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Alarm

      UTF8

      Alarm

      UTF32

      Alarm

      Other character sets

      Alarm

      GB2312

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Success

      GBK

      Success

      GB18030

      Success

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      GBK

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Success

      GB18030

      Success

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      GB18030

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Success

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      UTF16

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      UTF8

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      UTF32

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      ascii

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Alarm

      UTF8

      Alarm

      UTF32

      Alarm

      Other character sets

      Alarm

      utf8mb3

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Success

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      utf8mb4

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      UTF16LE

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Success

      UTF8

      Success

      UTF32

      Success

      Other character sets

      Alarm

      Other character sets

      SQL_ASCII

      Alarm

      ISO-8859-1

      Alarm

      LATIN1

      Alarm

      GB2312

      Alarm

      GBK

      Alarm

      GB18030

      Alarm

      UTF16

      Alarm

      UTF8

      Alarm

      UTF32

      Alarm

      Other character sets

      Alarm

      Table 5 Character set compatibility between Oracle and MySQL

      Source Database

      Target Database

      Compatibility Result

      SQL_ASCII

      ascii

      Success

      latin1/ISO-8859-1

      Alarm

      gb2312

      Alarm

      gbk

      Alarm

      utf8mb3

      Alarm

      gb18030

      Alarm

      UTF16

      Alarm

      UTF16LE

      Alarm

      UTF8

      Alarm

      UTF32

      Alarm

      utf8mb4

      Alarm

      Other character sets

      Alarm

      US7ASCII

      ascii

      Alarm

      latin1/ISO-8859-1

      Alarm

      gb2312

      Alarm

      gbk

      Alarm

      utf8mb3

      Alarm

      gb18030

      Alarm

      UTF16

      Alarm

      UTF16LE

      Alarm

      UTF8

      Alarm

      UTF32

      Alarm

      utf8mb4

      Alarm

      Other character sets

      Alarm

      ISO-8859-1

      ascii

      Alarm

      latin1/ISO-8859-1

      Success

      gb2312

      Alarm

      gbk

      Alarm

      utf8mb3

      Alarm

      gb18030

      Alarm

      UTF16

      Alarm

      UTF16LE

      Alarm

      UTF8

      Alarm

      UTF32

      Alarm

      utf8mb4

      Alarm

      Other character sets

      Alarm

      LATIN1

      ascii

      Alarm

      latin1/ISO-8859-1

      Success

      gb2312

      Alarm

      gbk

      Alarm

      utf8mb3

      Alarm

      gb18030

      Alarm

      UTF16

      Alarm

      UTF16LE

      Alarm

      UTF8

      Alarm

      UTF32

      Alarm

      utf8mb4

      Alarm

      Other character sets

      Alarm

      GB2312

      ascii

      Alarm

      latin1/ISO-8859-1

      Alarm

      gb2312

      Success

      gbk

      Success

      utf8mb3

      Success

      gb18030

      Success

      UTF16

      Success

      UTF16LE

      Success

      UTF8

      Success

      UTF32

      Success

      utf8mb4

      Success

      Other character sets

      Alarm

      ZHS16GBK

      ascii

      Alarm

      latin1/ISO-8859-1

      Alarm

      gb2312

      Alarm

      gbk

      Success

      utf8mb3

      Success

      gb18030

      Success

      UTF16

      Success

      UTF16LE

      Success

      UTF8

      Success

      UTF32

      Success

      utf8mb4

      Success

      Other character sets

      Alarm

      GBK

      ascii

      Alarm

      latin1/ISO-8859-1

      Alarm

      gb2312

      Alarm

      gbk

      Success

      utf8mb3

      Success

      gb18030

      Success

      UTF16

      Success

      UTF16LE

      Success

      UTF8

      Success

      UTF32

      Success

      utf8mb4

      Success

      Other character sets

      Alarm

      ZHS32GB18030

      ascii

      Alarm

      latin1/ISO-8859-1

      Alarm

      gb2312

      Alarm

      gbk

      Success

      utf8mb3

      Success

      gb18030

      Success

      UTF16

      Success

      UTF16LE

      Success

      UTF8

      Success

      UTF32

      Success

      utf8mb4

      Success

      Other character sets

      Alarm

      GB18030

      ascii

      Alarm

      latin1/ISO-8859-1

      Alarm

      gb2312

      Alarm

      gbk

      Alarm

      utf8mb3

      Alarm

      gb18030

      Success

      UTF16

      Success

      UTF16LE

      Success

      UTF8

      Success

      UTF32

      Success

      utf8mb4

      Success

      Other character sets

      Alarm

      AL16UTF16

      ascii

      Alarm

      latin1/ISO-8859-1

      Alarm

      gb2312

      Alarm

      gbk

      Alarm

      utf8mb3

      Alarm

      gb18030

      Alarm

      UTF16

      Success

      UTF16LE

      Success

      UTF8

      Success

      UTF32

      Success

      utf8mb4

      Success

      Other character sets

      Alarm

      UTF16

      ascii

      Alarm

      latin1/ISO-8859-1

      Alarm

      gb2312

      Alarm

      gbk

      Alarm

      utf8mb3

      Alarm

      gb18030

      Alarm

      UTF16

      Success

      UTF16LE

      Success

      UTF8

      Success

      UTF32

      Success

      utf8mb4

      Success

      Other character sets

      Alarm

      AL32UTF8

      ascii

      Alarm

      latin1/ISO-8859-1

      Alarm

      gb2312

      Alarm

      gbk

      Alarm

      utf8mb3

      Alarm

      gb18030

      Alarm

      UTF16

      Success

      UTF16LE

      Success

      UTF8

      Success

      UTF32

      Success

      utf8mb4

      Success

      Other character sets

      Alarm

      UTF8

      ascii

      Alarm

      latin1/ISO-8859-1

      Alarm

      gb2312

      Alarm

      gbk

      Alarm

      utf8mb3

      Alarm

      gb18030

      Alarm

      UTF16

      Success

      UTF16LE

      Success

      UTF8

      Success

      UTF32

      Success

      utf8mb4

      Success

      Other character sets

      Alarm

      UTF32

      ascii

      Alarm

      latin1/ISO-8859-1

      Alarm

      gb2312

      Alarm

      gbk

      Alarm

      utf8mb3

      Alarm

      gb18030

      Alarm

      UTF16

      Success

      UTF16LE

      Success

      UTF8

      Success

      UTF32

      Success

      utf8mb4

      Success

      Other character sets

      Alarm

      Other character sets

      ascii

      Alarm

      latin1/ISO-8859-1

      Alarm

      gb2312

      Alarm

      gbk

      Alarm

      utf8mb3

      Alarm

      gb18030

      Alarm

      UTF16

      Alarm

      UTF16LE

      Alarm

      UTF8

      Alarm

      UTF32

      Alarm

      utf8mb4

      Alarm

      Character set compatibility result:

      • Alarm: The character sets of the source and target databases are incompatible.
      • Success: The character sets of the source and target databases are compatible.
    • Separation of permissions: If the target database type is GaussDB, separation of permissions will be checked. After separation of permissions is enabled, the system administrator (or the user with SYSADMIN permissions) does not have the CREATEROLE capability (of the security administrator) or AUDITADMIN capability (of the audit administrator). This means that the system administrator cannot create roles and users, and view and maintain database audit logs. After separation of permissions is enabled, a user with SYSADMIN permissions cannot migrate USER, ROLE, and GRANT.
      • This check item is displayed only when the target database type is GaussDB, separation of permissions is enabled, and the migration is performed by a user with SYSADMIN permissions.
      • After separation of permissions is enabled, if a user with SYSADMIN permissions still has the security administrator (CREATEROLE) permissions and audit administrator permissions, this means that permission model is switched repeatedly. If you need to switch model from non-separation of permissions to separation of permissions, review the permissions of existing users and tailor some permissions as needed.
    • sysadmin permissions: This check item is only displayed when the target database type is GaussDB, separation of permissions is disabled, the migration user is SYSADMIN. The check result must be Success.
    • Schema creation permissions: This check item is only displayed when the target database is GaussDB and the migration user is not SYSADMIN. It is used to check whether the migration user has the permissions to create schemas in the target database. Database objects must be created in schemas.

      GRANT CREATE ON DATABASE <db_name> TO <user>;

      When separation of permissions is enabled, initial user is used to grant permissions. When separation of permissions is disabled, SYSADMIN user is used to grant permissions.

      This check item is mandatory.

    • User and role creation and modification permissions: This check item is only displayed when the target database is GaussDB, the migration user is not SYSADMIN, and USER, ROLE, and GRANT objects are migrated. It is used to check whether the migration user has the permissions to create or modify users and roles in the target DB instance.

      ALTER USER <user> WITH CREATEROLE;

      When separation of permissions is enabled, initial user is used to grant permissions. When separation of permissions is disabled, SYSADMIN user is used to grant permissions.

      This check item is mandatory.

    • Public schema creation permissions: This check item is only displayed when the target database is GaussDB and the migration user is a common user or SYSADMIN (used when separation of permission is enabled). The check item involves complex permissions, such permission combination.

      In GaussDB 2.7 or earlier, CREATE permissions on public schemas are required to create objects such as tables, views, indexes, sequences, packages, types, and triggers.

      In GaussDB 3.1 or later, the user SYSADMIN (used when separation of permission is enabled) must have the CREATE permissions on public schemas to create objects such as tables, views, indexes, sequences, packages, types, and triggers.

      In GaussDB 3.1 or later, a common user must have the CREATE permissions on public schemas and the ANY permissions of objects, to create objects such as tables, views, indexes, sequences, packages, types, and triggers.

      In separation of permissions, only initial users have the permissions to create functions, stored procedures, and synonyms on public schemas.

      In non-separation of permissions, initial and sysadmin users have the permissions to create functions, stored procedures, and synonyms on public schemas.

      CREATE permissions: GRANT CREATE ON SCHEMA public TO <user>;

      ANY permissions:

      GRANT CREATE ANY TABLE TO <user>;//Users can create tables or views in public and user schemas.

      GRANT CREATE ANY SEQUENCE TO <user>;//Users can create sequences in public and user schemas.

      GRANT CREATE ANY INDEX TO <user>;//Users can create indexes in public and user schemas.

      GRANT CREATE ANY PACKAGE TO <user>;//Users can create packages in public and user schemas.

      GRANT CREATE ANY TYPE TO <user>;//Users can create types in public and user schemas.

      GRANT CREATE ANY TRIGGER TO <user>;//Users can create triggers in public and user schemas.

      • A DB instance contains multiple databases. Each database has its own public schema. Permission assignment must be performed in the corresponding database.
      • When separation of permissions is enabled, initial user is used to grant permissions. When separation of permissions is disabled, SYSADMIN user is used to grant permissions.
      • This check item is not mandatory. Based on the GaussDB permission design, the check result is always Warning.
    • Existing schema check permissions: This check item is only displayed when the target database is GaussDB and the migration user is a common user or SYSADMIN (used when separation of permission is enabled).

      It is used to check whether the migration user has the permissions to grant the owner of the existing schemas to the migration user.

      GRANT <schema_owner> TO <user>

      When separation of permissions is enabled, initial user is used to grant permissions. When separation of permissions is disabled, SYSADMIN user or schema owner is used to grant permissions.

      If the migration user does not have sufficient permissions, the schema owner cannot be queried.

    • GRANT tablespace permissions: This check item is only displayed when the target database is GaussDB, the migration user is not SYSADMIN, and GRANT objects are migrated.

      Statements:

      GRANT <privilege> ON TABLESPACE <tablespace_name> TO <user>;

      GRANT <privilege> ON TABLESPACE <tablespace_name> TO <user> WITH GRANT OPTION;

      If WITH GRANT OPTION is specified, a grantee can grant this permission to others.

      Permissions include CREATE, ALTER, DROP, COMMENT, CREATE WITH GRANT OPTION, ALTER WITH GRANT OPTION, DROP WITH GRANT OPTION and COMMENT WITH GRANT OPTION.

      When separation of permissions is enabled, initial user is used to grant permissions. When separation of permissions is disabled, SYSADMIN user is used to grant permissions.

    • GRANT database permissions: This check item is only displayed when the target database is GaussDB, the migration user is not SYSADMIN, and GRANT objects are migrated.

      Statements:

      GRANT <privilege> ON DATABASE <db_name> TO <user>;

      GRANT <privilege> ON DATABASE <db_name> TO <user> WITH GRANT OPTION;

      If WITH GRANT OPTION is specified, a grantee can grant this permission to others.

      Permissions include CREATE, CONNECT, TEMPORARY, ALTER, DROP, COMMENT, CREATE WITH GRANT OPTION, CONNECT WITH GRANT OPTION, ALTER WITH GRANT OPTION, TEMPORARY WITH GRANT OPTION, DROP WITH GRANT OPTION and COMMENT WITH GRANT OPTION.

      When separation of permissions is enabled, initial user is used to grant permissions. When separation of permissions is disabled, SYSADMIN user is used to grant permissions.

    • GRANT ANY permissions: This check item is only displayed when the target database is GaussDB, the migration user is not SYSADMIN, and GRANT objects are migrated. It checks whether the migration user can grant the ANY permissions to other users in the target database.

      GRANT <privilege> TO <user> WITH ADMIN OPTION;

      If WITH ADMIN OPTION is specified, the granted user can grant the permission to other roles or users.

      Permissions include CREATE ANY TABLE, ALTER ANY TABLE, DROP ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE, INSERT ANY TABLE, DELETE ANY TABLE, CREATE ANY SEQUENCE, ALTER ANY SEQUENCE, DROP ANY SEQUENCE, SELECT ANY SEQUENCE, CREATE ANY INDEX, ALTER ANY INDEX, DROP ANY INDEX, CREATE ANY FUNCTION, EXECUTE ANY FUNCTION, CREATE ANY PACKAGE, EXECUTE ANY PACKAGE, CREATE ANY TYPE, ALTER ANY TYPE, DROP ANY TYPE, CREATE ANY SYNONYM, DROP ANY SYNONYM, CREATE ANY TRIGGER, ALTER ANY TRIGGER and DROP ANY TRIGGER.

      A DB instance contains multiple databases. The ANY permissions are bound to databases. You need to grant the ANY permissions in the corresponding database.

      When separation of permissions is enabled, initial user is used to grant permissions. When separation of permissions is disabled, SYSADMIN user is used to grant permissions.

    • GRANT pg_catalog Schema permissions: This check item is only displayed when the target database is GaussDB, the migration user is not SYSADMIN, and GRANT objects are migrated. It checks whether the migration user can grant the permissions to create database connections in the target database to other users.

      GRANT <privilege> TO <user> WITH ADMIN OPTION;

      A DB instance contains multiple databases. Each database has its own pg_catalog schema. Permission assignment must be performed in the corresponding database.

      When separation of permissions is enabled, initial user is used to grant permissions. When separation of permissions is disabled, SYSADMIN user is used to grant permissions.

    • GRANT database link permissions: This check item is only displayed when the target database is GaussDB, the migration user is not SYSADMIN, and GRANT objects are migrated. It checks whether the migration user can grant the permissions to create database connections in the target database to other users.

      GRANT CREATE PUBLIC DATABASE LINK TO <user> WITH GRANT OPTION;

      A DB instance contains multiple databases. You need to grant permissions in the corresponding database.

      When separation of permissions is enabled, initial user is used to grant permissions. When separation of permissions is disabled, SYSADMIN user is used to grant permissions.

    • GRANT role and user permissions: This check item is only displayed when the target database is GaussDB, the migration user is not SYSADMIN, and GRANT objects are migrated. If the check result is Alarm, check whether the migration user has the permissions to grant or modify other users' permissions.

      User SYSADMIN created after separation of permissions is disabled to perform migration tasks.

    • GUC parameter check for the target database: This check item is only displayed when the target database version is GaussDB 3.1 or later and the source database version is Oracle, Microsoft SQL Server, DB2 for LUW or MySQL. Check whether the GUC parameters are configured. For details about the check items, see Table 6.

      The GUC parameter check is performed based on the selected target database version you selected during evaluation project creation, instead of the target database version that is actually connected.

      Table 6 Target database GUC parameter check items

      Source DB Type

      Target DB Version

      Check Item

      DB2 for LUW

      GaussDB 3.1 Primary/Standby Enterprise Edition

      behavior_compat_options, sql_beta_feature, a_format_version, a_format_dev_version

      GaussDB 8.1 Distributed 3.1 Enterprise Edition

      behavior_compat_options, sql_beta_feature, a_format_version, a_format_dev_version

      GaussDB Primary/Standby 3.2 Enterprise Edition

      behavior_compat_options, plsql_compile_check_options, sql_beta_feature, a_format_version, a_format_dev_version

      GaussDB Distributed 3.2 Enterprise Edition

      behavior_compat_options, sql_beta_feature, a_format_version, a_format_dev_version

      GaussDB Primary/Standby 3.3 Enterprise Edition

      behavior_compat_options, plsql_compile_check_options, sql_beta_feature, a_format_version, a_format_dev_version

      GaussDB Distributed 3.3 Enterprise Edition

      behavior_compat_options, sql_beta_feature, a_format_version, a_format_dev_version

      GaussDB Primary/Standby 8.0 Enterprise Edition

      behavior_compat_options, plsql_compile_check_options, sql_beta_feature, a_format_version, a_format_dev_version

      GaussDB Distributed 8.0 Enterprise Edition

      behavior_compat_options, sql_beta_feature, a_format_version, a_format_dev_version

      GaussDB Primary/Standby 8.1 Enterprise Edition

      behavior_compat_options, plsql_compile_check_options, sql_beta_feature, a_format_version, a_format_dev_version

      GaussDB Distributed 8.1 Enterprise Edition

      behavior_compat_options, sql_beta_feature, a_format_version, a_format_dev_version

      MySQL

      GaussDB 3.1 Primary/Standby Enterprise Edition

      -

      GaussDB Primary/Standby 3.2 Enterprise Edition

      b_format_behavior_compat_options

      GaussDB Distributed 3.2 Enterprise Edition

      -

      GaussDB Primary/Standby 3.3 Enterprise Edition

      b_format_behavior_compat_options

      GaussDB Primary/Standby 8.0 Enterprise Edition

      b_format_version,b_format_dev_version

      GaussDB Distributed 8.0 Enterprise Edition

      b_format_version,b_format_dev_version

      GaussDB Primary/Standby 8.1 Enterprise Edition

      b_format_version,b_format_dev_version

      GaussDB Distributed 8.1 Enterprise Edition

      b_format_version,b_format_dev_version

      Oracle

      GaussDB 3.1 Primary/Standby Enterprise Edition

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB 8.1 Distributed 3.1 Enterprise Edition

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB Primary/Standby 3.2 Enterprise Edition

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB Distributed 3.2 Enterprise Edition

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB Primary/Standby 3.3 Enterprise Edition

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,IntervalStyle,a_format_version,a_format_dev_version

      GaussDB Distributed 3.3 Enterprise Edition

      behavior_compat_options,sql_beta_feature,IntervalStyle,a_format_version,a_format_dev_version

      GaussDB Primary/Standby 8.0 Enterprise Edition

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,IntervalStyle,a_format_version,a_format_dev_version

      GaussDB Distributed 8.0 Enterprise Edition

      behavior_compat_options,sql_beta_feature,IntervalStyle,a_format_version,a_format_dev_version

      GaussDB Primary/Standby 8.1 Enterprise Edition

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,IntervalStyle,a_format_version,a_format_dev_version

      GaussDB Distributed 8.1 Enterprise Edition

      behavior_compat_options,sql_beta_feature,IntervalStyle,a_format_version,a_format_dev_version

      Microsoft SQL Server

      GaussDB 3.1 Primary/Standby Enterprise Edition

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB 8.1 Distributed 3.1 Enterprise Edition

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB Primary/Standby 3.2 Enterprise Edition

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB Distributed 3.2 Enterprise Edition

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB Primary/Standby 3.3 Enterprise Edition

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB Distributed 3.3 Enterprise Edition

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB Primary/Standby 8.0 Enterprise Edition

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB Distributed 8.0 Enterprise Edition

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB Primary/Standby 8.1 Enterprise Edition

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB Distributed 8.1 Enterprise Edition

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

    • Database write permissions: If the target database is GaussDB, the system checks whether the data node is normal. If the target database is read-only, this check item is displayed. The check result is not passed.

  7. Click Next in the lower right corner.

    Figure 3 Confirming information

    The database migration scope, migration project details, and target database information are displayed.

    • The migration scope includes schemas that were migrated and not migrated.
    • Migration project details include the project name, evaluation project name, enterprise project, exception notification mode, and tags.
    • Target database information.
      • If DB Information Input Type is Input manually, the following information is displayed: database information input mode, database name, target database name, target database version, host IP address, and host port.
      • If DB Information Input Type is Auto assigned by instance, the following information is displayed: database information input mode, database name, target database name, target database version, and database instance.

  8. Confirm the information and click Create.

    You can create up to 10 migration projects.

  9. After the creation is successful, click OK to go to the Object Migration page.

    After a migration project is created, the permission check is automatically triggered. If the permission check is successful, the project status is Ready.

    If the permission check fails, the project status is Not ready. You can manually perform a permission check.