This topic describes the background, limits, and configuration method of matching rules for migration objects, as well as the wildcard rules supported by OceanBase Migration Service (OMS) Community Edition.
Background
When you create a data migration project, you specify specific data migration objects. Since OMS Community Edition supports the synchronization of incremental DDL statements, if a new table is created in the source database during migration, the data in this table cannot be migrated because this table is not among the specified data migration objects.
A wildcard is a short text that represents a group of paths. You can use a wildcard as an elementary regular expression. When you create a data migration project, you can configure data migration objects based on wildcard rules. For more information, see the Wildcard rules section in this topic.
OMS allows you to configure the migration object rule and object exclusion rule for all types of data migration projects. These rules apply in all stages of a data migration project. You can modify these rules only before the project starts.
Notice:
If you select DDL for Schema Change when creating a data migration project, you must configure the data migration objects based on wildcard rules.
When you create a data migration project, the following features are supported:
You can specify the migration objects based on wildcard rules.
You can edit and verify matching rules, and preview matched objects.
If objects are changed, differences between the preview before and after the change are displayed.
You can configure database name mappings and table name mappings based on wildcard rules.
Limits
You must specify the migration object rule for tables.
If you configure multiple schemas in a rule to match one type of objects, reverse incremental synchronization is not supported.
If multi-table aggregation and synchronization is enabled, reverse incremental synchronization is not supported.
If DML filtering is enabled, full data verification is not supported.
You cannot perform DDL operations on the source database during the period between schema migration and full migration.
You can specify the table to match the migration object rule and object exclusion rule, but DDL operations cannot be synchronized.
You cannot change the name of a table that matches the object exclusion rule to a name that does not match the object exclusion rule by using a DDL operation.
If you use gh-ost to synchronize DDL operations for incremental migration from a MySQL database to a MySQL tenant of OceanBase Database, set Object Exclusion Rule to
{database_name}.*_ghc.
Configure the matching rule
Create a migration project.
Log on to the OMS console.
In the left-side navigation pane, click Data Migration .
On the Data Migration page, click Create Migration Project in the upper-right corner.
On the Select Source and Destination page, specify related parameters. For more information, see the procedure for creating a data migration project of the corresponding type.
Parameter Description Migration Project Name It can contain Chinese characters, digits, and letters but must not exceed 64 characters in length. Tag Click the field and select a tag from the drop-down list. You can also click Manage Tags to create, modify, or delete tags. For more information, see Use tags to manage data migration projects. Source Select a created source data source. Destination Select a created destination data source. Click Next.
(Optional) Click OK in the dialog box that appears.
On the Select Migration Type page, configure the parameters.
(Optional) Click Next.
Click Next. On the Select Objects page, specify the required information.
Specify Migration Type for the data migration project as needed.
Select the migration objects.
You can select one of the following two modes: Specify Objects and Match Rules . This section describes how to configure a matching rule.
Select Match Rules.
In the Specify Migration Scope section, specify the migration object migration rule in the Migration Object Rule field and object exclusion rule in the Object Exclusion Rule field. The Object Exclusion Rule field is optional. For more information about supported matching rules, see the Wildcard rules section in this topic.
Notice
If you use gh-ost to synchronize DDL operations for incremental migration from a MySQL database to a MySQL tenant of OceanBase Database, Object Exclusion Rule is required. Set it to
{database_name}.*_ghc.Pay attention to the privilege settings of the source database user. If you do not grant all required privileges to the migration user, some objects are not displayed in the frontend by OMS, and you cannot correctly configure matching rules. In this case, you need to add these objects to Object Exclusion Rule to prevent the data migration project from being interrupted because OMS cannot find the target objects.
After you specify the migration object rule and object exclusion rule, you can view the migratable objects and matching results on the right side. The matching results are displayed on the Final Objects, New Object, and Removed Objects tabs. The migration object rule and object exclusion rule based on wildcard rules apply to tables and views.
You can also rename an object. Specifically, on the Final Objects tab, hover the pointer over the target object, click Rename , enter the new name, and click OK to rename the target object.
Click Verify and Preview Objects .
After the verification succeeds, click Next .
On the Migration Options page, specify related parameters. For more information, see the procedure for creating a data migration project of the corresponding type.
Click Precheck to start a precheck on the data migration project.
Click Start Task to start tasks of the project such as schema migration and full migration.
Wildcard rules
Regular expressions are supported in wildcard rules. "*" is used to replace ".*" in a regular expression. The wildcard rules supported by OMS include "*", "?", "[]", and "[!]". Each rule occupies a single row and spaces are not allowed before and after a rule.
After you configure the migration object migration rule and object exclusion rule, a new table in the source database can be synchronized by OMS in real time if the table name matches the migration object rule but does not match the object exclusion rule.
The rules to include or exclude migration objects are case-sensitive. Case inconsistency between a migration rule and the object name causes mismatch of objects.
Asterisk (*)
You can use an asterisk to match a string of characters in any length, or a null character. You can also use an asterisk to select all objects in a database or schema. For example, if you set a <Schema>.* rule in the Migration Object Rule field, the Matching Result tab in the right-side panel shows all tables and views in the specified schema.
You can set rules in the Object Exclusion Rule field to exclude the objects that do not need to be migrated, and then click Verify . After the verification is completed, click Preview Object . Then you can view the excluded objects in Matching Result .
Question mark (?)
You can use a question mark to match a single character. To match more than one character, use multiple question marks. You can also use a question mark to select the objects in a database or schema that meet specified conditions. For example, if you set a <Schema>.t? rule in the Migration Object Rule field, the Matching Result tab in the right-side panel shows tables and views that conform to the format in the specified schema.
Notice:
You cannot use a question mark to match a null character. In other words, the place held by the question mark must have a character.
You can set rules in the Object Exclusion Rule field to exclude the objects that do not need to be migrated, and then click Verify . After the verification is completed, click Preview Object . Then you can view the excluded objects in Matching Result .
Square brackets ([])
You can use a pair of square brackets to include any characters that must be matched, or use [start-end] to match a continuous range. For example, if you set a <Schema>.[]* rule in the Migration Object Rule field, the Matching Result tab in the right-side panel shows tables and views that conform to the format in the specified schema.
You can set rules in the Object Exclusion Rule field to exclude the objects that do not need to be migrated, and then click Verify . After the verification is completed, click Preview Object . Then you can view the excluded objects in Matching Result .
An exclamation point in square brackets ([!])
You can use this wildcard to match any non-null characters that are not included in the square brackets, or use [!start-end] to indicate a continuous range. For example, if you set a <Schema>.[!]* rule in the Migration Object Rule field, the Matching Result tab in the right-side panel shows tables and views that conform to the format in the specified schema.
You can set rules in the Object Exclusion Rule field to exclude the objects that do not need to be migrated, and then click Verify . After the verification is completed, click Preview Object . Then you can view the excluded objects in Matching Result.