- What's New
- Product Bulletin
-
Service Overview
- Infographics
- What Is DRS?
- Supported Databases
- Advantages
- Functions and Features
- Specification Description
- Product Architecture and Function Principles
-
Mapping Data Types
- MySQL->PostgreSQL
- MySQL->GaussDB
- MySQL->Oracle
- MySQL->CSS/ES
- Oracle->MySQL
- Oracle->TaurusDB
- Oracle->GaussDB
- Oracle->DDM
- Oracle->GaussDB(DWS)
- Oracle->PostgreSQL
- TaurusDB->Oracle
- TaurusDB->CSS/ES
- GaussDB->MySQL
- GaussDB->GaussDB(DWS)
- GaussDB->Oracle
- DB2 for LUW->GaussDB
- DB2 for LUW->GaussDB(DWS)
- PostgreSQL->GaussDB
- PostgreSQL->GaussDB(DWS)
- TiDB->TaurusDB
- Microsoft SQL Server->GaussDB(DWS)
- Microsoft SQL Server->GaussDB
- Microsoft SQL Server->MySQL
- Microsoft SQL Server->TaurusDB
- Microsoft SQL Server->PostgreSQL
- Security
- Permissions Management
- Agency Management
- Agency Management (New)
- Constraints
- Accessing DRS
- Related Services
- Basic Concepts
- Billing
- Getting Started
-
User Guide
-
Preparations
- Overview
- Registering a Huawei ID and Enabling Huawei Cloud Services
- Permissions Management
- From On-premises Databases to Huawei Cloud
- From Other Cloud Databases to Huawei Cloud
- From Huawei Cloud to Huawei Cloud
- From ECS-Hosted Databases on Huawei Cloud to Huawei Cloud
- Getting Started with Common Practices
-
Real-Time Migration
- Migration Overview
- To the Cloud
- Out of the Cloud
-
Task Management
- Creating a Migration Task
- Querying the Migration Progress
- Viewing Migration Logs
- Data Comparison (Comparing Migration Items)
- Managing Objects
-
Task Life Cycle
- Viewing Task Details
- Modifying Task Information
- Modifying Connection Information
- Modifying the Flow Control Mode
- Editing a Migration Task
- Resuming a Migration Task
- Disabling Read-Only of the Destination Database
- Resetting a Migration Task
- Pausing a Migration Task
- Cloning a Migration Task
- Stopping a Migration Task
- Deleting a Migration Task
- Importing Tasks in Batches
- Upgrading the Version of a DRS Task
- Task Statuses
- Tag Management
- Connection Diagnosis
- Interconnecting with CTS
- Interconnecting with Cloud Eye
- Interconnecting with LTS
- Appendix
- Backup Migration
-
Real-Time Synchronization
- Synchronization Overview
- Data Synchronization Topologies
-
To the Cloud
- From MySQL to MySQL
- From MySQL to PostgreSQL
- From MySQL to GaussDB Distributed
- From MySQL to GaussDB Centralized
- From MySQL to GaussDB(DWS)
- From MySQL to TaurusDB
- From MySQL to MariaDB
- From PostgreSQL to PostgreSQL
- From PostgreSQL to GaussDB(DWS)
- From PostgreSQL to GaussDB Centralized
- From PostgreSQL to GaussDB Distributed
- From Oracle to MySQL
- From Oracle to TaurusDB
- From Oracle to GaussDB Centralized
- From Oracle to GaussDB Distributed
- From Oracle to DDM
- From Oracle to GaussDB(DWS)
- From Oracle to PostgreSQL
- From DDM to MySQL
- From DDM to GaussDB(DWS)
- From DDM to DDM
- From DB2 for LUW to GaussDB Centralized
- From DB2 for LUW to GaussDB Distributed
- From DB2 for LUW to GaussDB(DWS)
- From TiDB to TaurusDB
- From Microsoft SQL Server to GaussDB(DWS)
- From Microsoft SQL Server to GaussDB Centralized
- From Microsoft SQL Server to GaussDB Distributed
- From Microsoft SQL Server to Microsoft SQL Server
- From Microsoft SQL Server to MySQL
- From Microsoft SQL Server to TaurusDB
- From Microsoft SQL Server to PostgreSQL
- From MongoDB to DDS
- From MariaDB to MariaDB
- From MariaDB to MySQL
- From MariaDB to TaurusDB
- From TaurusDB to TaurusDB
- From Cassandra to GeminiDB Cassandra
- From Dynamo to GeminiDB Cassandra
- From Dynamo to GeminiDB Dynamo
- From AWS DocumentDB to DDS
- From Redis to GeminiDB Redis
- From Redis Cluster to GeminiDB Redis
-
Out of the Cloud
- From MySQL to MySQL
- From MySQL to Kafka
- From MySQL to CSS/ES
- From MySQL to Oracle
- From MySQL to MariaDB
- From DDM to MySQL
- From DDM to Oracle
- From DDM to Kafka
- From DDS to MongoDB
- From DDS to Kafka
- From PostgreSQL to PostgreSQL
- From PostgreSQL to Kafka
- From GaussDB Distributed to MySQL
- From GaussDB Distributed to Oracle
- From GaussDB Distributed to GaussDB(DWS)
- From GaussDB Distributed to Kafka
- From GaussDB Distributed to GaussDB Distributed
- From GaussDB Distributed to GaussDB Centralized
- From GaussDB Distributed to PostgreSQL
- From GaussDB Centralized to MySQL
- From GaussDB Centralized to Oracle
- From GaussDB Centralized to GaussDB(DWS)
- From GaussDB Centralized to Kafka
- From GaussDB Centralized to GaussDB Distributed
- From GaussDB Centralized to GaussDB Centralized
- From GaussDB Centralized to PostgreSQL
- From TaurusDB to MySQL
- From TaurusDB to GaussDB(DWS)
- From TaurusDB to Kafka
- From TaurusDB to CSS/ES
- From TaurusDB to Oracle
- From MariaDB to MariaDB
- From Microsoft SQL Server to Kafka
- From GeminiDB Redis to Redis
- From GeminiDB Redis to Redis Cluster
-
Between Self-built Databases
- From MySQL to Kafka
- From MySQL to CSS/ES
- From MySQL to GaussDB Centralized
- From MySQL to GaussDB Distributed
- From Oracle to Kafka
- From Oracle to GaussDB Centralized
- From Oracle to GaussDB Distributed
- From PostgreSQL to Kafka
- From PostgreSQL to GaussDB Centralized
- From PostgreSQL to GaussDB Distributed
- From GaussDB Centralized to MySQL
- From GaussDB Centralized to Oracle
- From GaussDB Centralized to Kafka
- From GaussDB Centralized to GaussDB Distributed
- From GaussDB Centralized to GaussDB Centralized
- From GaussDB Centralized to PostgreSQL
- From GaussDB Distributed to MySQL
- From GaussDB Distributed to Oracle
- From GaussDB Distributed to Kafka
- From GaussDB Distributed to GaussDB Distributed
- From GaussDB Distributed to GaussDB Centralized
- From GaussDB Distributed to PostgreSQL
- From DB2 for LUW to GaussDB Centralized
- From DB2 for LUW to GaussDB Distributed
- From Microsoft SQL Server to Kafka
- Two-Way Synchronization
-
Task Management
- Creating a Synchronization Task
- Querying the Synchronization Progress
- Viewing Synchronization Logs
- Data Comparison (Comparing Synchronization Items)
- Managing Objects
- Managing Parameters
-
Task Life Cycle
- Viewing Task Details
- Modifying Task Information
- Modifying Connection Information
- Modifying the Flow Control Mode
- Changing the Synchronization Mode
- Editing a Synchronization Task
- Resuming a Synchronization Task
- Skipping Data and Resuming a Synchronization Task
- Pausing a Synchronization Task
- Resetting a Synchronization Task
- Resetting Synchronization Position
- Restarting a Synchronization Task
- Skipping DDL Statements
- Performing a Switchover for a Dual-AZ Task
- Exchanging the Direction for a Two-Way Synchronization Task
- Changing a Single-AZ Task to a Dual-AZ Task
- Cloning a Synchronization Task
- Changing Specifications
- Unsubscribing from a Yearly/Monthly Task
- Stopping a Synchronization Task
- Deleting a Synchronization Task
- Importing Tasks in Batches
- Filtering Large Fields
- Upgrading the Version of a DRS Task
- Task Statuses
- Tag Management
- Connection Diagnosis
- Viewing Abnormal Data
- Interconnecting with CTS
- Interconnecting with Cloud Eye
- Interconnecting with LTS
-
Operation Reference in Synchronization Scenarios
- Kafka Message Format
- Kafka Authentication
- Synchronizing Sequence Values for a Synchronization Task with GaussDB Distributed Serving as the Source Database
- Forcibly Stopping Synchronization of GaussDB Distributed
- Forcibly Stopping Synchronization of GaussDB Centralized
- Forcibly Stopping Synchronization of PostgreSQL
- Creating Event Triggers and Functions to Implement Incremental DDL Synchronization for PostgreSQL
- Appendix
- Data Subscription
-
Real-Time Disaster Recovery
- DR Overview
- DR Scenarios
-
Task Management
- Creating a DR Task
- Querying the DR Progress
- Viewing DR Logs
- Data Comparison (Comparing DR Items)
-
Task Life Cycle
- Viewing DR Data
- Modifying Task Information
- Modifying Connection Information
- Modifying the Flow Control Mode
- Disabling or Enabling Read-Only
- Editing a DR Task
- Resuming a DR Task
- Pausing a DR Task
- Retrying a DR Task
- Resetting a DR Task
- Viewing DR Metrics
- Performing a Switchover for a Dual-AZ Task
- Performing a Primary/Standby Switchover for DR Tasks
- Exchanging the DR Direction
- Changing Specifications
- Unsubscribing from a Yearly/Monthly Task
- Stopping a DR Task
- Deleting a DR Task
- Upgrading the Version of a DRS Task
- Task Statuses
- Connection Information Management
- Tag Management
- Connection Diagnosis
- Interconnecting with CTS
- Interconnecting with Cloud Eye
- Interconnecting with LTS
- Workload Replay
- Data Verification
-
Preparations
-
Best Practices
- Best Practices Summary
-
Real-Time Migration
- Migrating MySQL Databases from Other Clouds to RDS for MySQL
- From Other Cloud MySQL to TaurusDB
- From Other Cloud MongoDB to DDS
- From ECS-hosted MySQL to RDS for MySQL
- From ECS-hosted MySQL to TaurusDB
- From ECS-hosted MongoDB to DDS
- From On-Premises MySQL to RDS for MySQL
- From On-Premises MongoDB to DDS
- From RDS for MySQL to DDM
- From MySQL Schema and Logic Table to DDM
- Backup Migration
-
Real-Time Synchronization
- From Other Cloud PostgreSQL to RDS for PostgreSQL
- From ECS-hosted PostgreSQL to RDS for PostgreSQL
- From On-Premises PostgreSQL to RDS for PostgreSQL
- From On-premises MySQL to GaussDB Distributed
- From On-premises Oracle to GaussDB Distributed
-
From On-premises Oracle to GaussDB Centralized
- Purpose
- Resource Planning
- Operation Process
- Preparations
- Creating a VPC and Security Group
- Creating a GaussDB Instance
- Creating a UGO Task
- Creating a DRS Task
-
Starting Synchronization
- UGO Schema Migration Phase 1: Tables, Primary Keys, Unique Keys/Indexes
- DRS Synchronization Phase 1: Full Synchronization
- UGO Schema Migration Phase 2: Common Indexes
- DRS Synchronization Phase 2: Incremental Synchronization
- UGO Schema Migration Phase 3: Triggers, Events, Tasks, Foreign Keys, and Sequences
- From On-Premises Oracle to DDM
- From RDS for MySQL to Kafka
- From GaussDB Distributed to Kafka
- From GaussDB Centralized to Kafka
- Real-Time Disaster Recovery
- Security Best Practices
- Security White Paper
-
API Reference
- Before You Start
- API Overview
- Calling APIs
- Getting Started
- APIs V3.0 (Recommended)
-
APIs V3.0 (Deprecated)
-
Public API Management
- Creating Tasks in Batches
- Testing Connections in Batches
- Testing Connections in Batches (Cluster Mode)
- Modifying Tasks in Batches
- Selecting Database Objects in Batches
- Performing a Batch Pre-Check
- Querying Pre-check Results in Batches
- Setting Flow Control for Tasks
- Obtaining Database Parameters in Batches
- Modifying Database Parameters
- Starting Tasks in Batches
- Resuming or Retrying Tasks in Batches
- Pausing Tasks in Batches
- Stopping or Deleting Tasks in Batches
- Changing the Passwords of the Source and Destination Databases in Batches
- Setting Definers in Batches
- Creating a Comparison Task
- Querying Comparison Results
- Querying Tasks of a Tenant
- Querying Task Details in Batches
- Querying Task Statuses in Batches
- Configuring Exception Notifications
- Querying Available Node Specifications
- Querying Data-level Table Comparison Tasks
- Creating a Data-level Table Comparison Task
- Canceling a Comparison Task
- Immediately Starting a Data-level Table Comparison Task
- Querying the Row Comparison Overview
- Querying Row Comparison Details
- Querying the Value Comparison Overview
- Querying Value Comparison Details
- Querying Value Comparison Differences
- Creating an Object-level Comparison Task
- Querying the Overview of an Object Comparison Task
- Querying Details About an Object Comparison Task
- Exporting the Result File of a Comparison Task
- Downloading the Result File of a Comparison Task
- Real-Time Migration Management
- Real-Time Synchronization Management
- Real-Time Disaster Recovery Management
-
Public API Management
-
APIs V5.0 (in OBT)
- Resource Management
- Task Management
-
Management of Tasks Created Asynchronously in Batches
- Asynchronously Creating Tasks in Batches
- Submitting Tasks Created Asynchronously in Batches
- Querying the List of Tasks Created Asynchronously in Batches
- Querying Details About Tasks Created Asynchronously in Batches with a Specified ID
- Updating Details About Tasks Created Asynchronously in Batches with a Specified ID
- Downloading the Task Import Template
- Importing Tasks in Batches
-
Database Object Configuration
- Submitting the Query of Database Object Information
- Submitting the Query of Database Object Information
- Obtaining the Result of Querying Database Object Information
- Querying Database Object Information
- Querying Database Object Information
- Downloading the Object Import Template
- Uploading the Object Import Template
- Querying the Progress of Uploading the Object Import Template
- Obtaining the Result of Uploading the Object Import Template
- Obtaining the Progress of Saving Objects
- Querying the Synchronization Mapping List
- Querying Whether Object Selection and Column Mapping Are Supported
- Task Details
-
Task Operations
- Performing Operations on a Task with a Specified ID
- Collecting Database Position Information
- Stopping a Task
- Batch Performing Operations on Tasks with Specified IDs
- Batch Stopping Tasks
- Obtaining the Operations Allowed in a Specified Task
- Obtaining the Result for Querying Database Position
- Verifying a Task Name
- Updating the Start Point of an Incremental Task
- Uploading a Driver File (Deprecated)
- Deleting a Driver File (Deprecated)
- Synchronizing a Driver File (Deprecated)
- Querying the Driver File List (Deprecated)
- Uploading a Driver File
- Deleting a Driver File
- Querying the Driver File List
- Synchronizing a Driver File
- Comparison Management
- Enterprise Projects
-
Data Processing
- Updating Data Processing Rules for a Specified Task
- Obtaining the Data Processing Rule Update Result for a Specified Task
- Querying Data Processing Rules
- Verifying Data Filtering Rules
- Obtaining the Data Filtering Verification Result
- Collecting Column Information About a Specified Database Table
- Obtaining Column Information About a Specified Database Table
- Parameter Management
- Tag Management
- Permissions Management
- Workload Replay
- Connection Management
- Configuration Management
- Backup Migration
- Application Examples
- Permissions Policies and Supported Actions
- Appendix
- SDK Reference
-
FAQs
-
Product Consulting
- What Are Regions and AZs?
- What Is DRS?
- Can DRS Migrate RDS Primary/Standby Instances?
- What Constraints Does DRS Have for a Source Database?
- What Requirements Does DRS Have for a Destination Database?
- Does DRS Use Concurrency?
- Dose DRS Use Data Compression?
- Does DRS Support Migration Between the Public Cloud and the Dedicated Cloud?
- What Is the Quota?
- Does DRS Support Migration from DB2 for LUW to PostgreSQL?
- Can Microsoft SQL Server Database Synchronize Data with Local Databases in Real Time?
- Does DRS Support Data Replication in a Specified Time Period?
- Does DRS Support Resumable Uploads?
- What Is Single-Active/Dual-Active Disaster Recovery?
- What Are the Differences Between Real-Time Migration, Real-Time DR, and Real-Time Synchronization?
- How Do I Solve the Table Bloat Issue During MySQL Migration?
- How Does MySQL Data Synchronization Affect the Source and Destination Databases?
- Do I Need to Stop Services Running on the Source Database?
- What Is an SMN Topic?
- What Are the Differences Between Single-AZ and Dual-AZ DRS Tasks?
- Can DRS Migrates Table Structures Only?
- How Do I Migrate Accounts in MySQL Migration, Synchronization, and DR Tasks and Can I Change Passwords?
- What Factors Affect the DRS Task Speed and How Do I Estimate the Time Required?
- Can I Modify Objects in a DRS Task?
- Does DRS Support Data Synchronization Between Different Databases of the Same DB Instance?
- Which Operations on the Source or Destination Database Affect the DRS Task Status?
- What Are Differences Between Data Subscription and Synchronization from MySQL to Kafka?
- Why Cannot Standby Read Replicas on Some Other Clouds Be Used as the Source Database?
- Does DRS Support Migration of Users Encrypted by the Caching_sha2_password Plugin?
- Why Is the Database Disk Usage Inconsistent Before and After Data Migration?
- What Is the Serialization Mode of Messages Sent by DRS to Kafka?
- Does DRS Support Migration of Self-Built MySQL Databases?
- Does DRS Automatically Clear Data in the Destination Table?
- What Are the Differences Between To the Cloud, Out of the Cloud, and Self-built?
- Does DRS Support Data Flow from Self-Built MySQL to Self-Built MySQL?
- What Is the Minimum Transmission Granularity of DRS?
- What Are the Impacts on DRS If I Perform Operations on the Destination Database During Data Migration?
-
Network and Security
- What Security Protection Policies Does DRS Have?
- What Can I Do If the Network Is Disconnected During the Migration?
- Which Database Accounts Are Required During Migration?
- How Do I Configure a VPC Security Group to Allow Network Communication?
- What Can I Do If the Network Connection Between the Replication Instance and Database Is Abnormal?
- How Can the Source and Destination Databases Communicate Across VPCs?
- What Is the EIP Bandwidth of DRS?
- Does DRS Support Cross-Account Cloud Database Migration?
-
Permissions Management
- How Do I Set an Independent Oracle Account That Has the Least Privilege and Uses DRS?
- Which MySQL Permissions Are Required for DRS?
- How Can I Import Users and Permissions from the Source to the Destination Database?
- Why Cannot Scheduled DRS Tasks Be Started?
- What Can I Do If A Message Is Displayed Indicating that the User Has Insufficient Permissions Or Does Not Have the Permission to Create a DRS Task?
- Which PostgreSQL Permissions Are Required for DRS?
- What Are the Impacts on the Source Database If the Lock Table Permission Is Required When the Source Database Contains Tables Without Primary Keys?
-
Real-Time Migration
- When Can I Stop a Migration Task?
- How Do I Maintain the Original Service User Permission System After Definer Is Forcibly Converted During MySQL Migration?
- What Can I Do If the Invoking Permission Problem Occurs After the MySQL Stored Procedure Is Migrated to the Cloud?
- How Do I Ensure that All Services on the Database Are Stopped?
- What Can I Do When Message "can not get agency token" Is Displayed in the Migration Log
- What Do I Do If the Maximum Index Length Has Been Reached During Migration from Oracle to MySQL?
- Why Is the Collation of Heterogeneous or Oracle Databases Converted to utf8mb4_bin After Those Databases Are Migrated to MySQL?
- What Can I Do If MyISAM Tables Are Not Supported by RDS for MySQL?
- What Are the Precautions for Migrating Data from an Earlier Version MySQL to MySQL 8.0?
- What Can I Do When OOM Occurs During the Migration of MongoDB Databases?
- How Do I Disable the Balancer?
- How Do I Export and Import Events and Triggers in Batches?
- How Can I Migrate Databases or Tables Whose Names Contain Uppercase Letters?
- How Do I Delete Orphaned Documents in MongoDB Sharded Clusters?
- What Can I Do If There Is an Extra Backslash (\) After a MySQL Account Is Migrated?
- Backup Migration
-
Real-Time Synchronization
- Can DRS Sync Tables of Different Schemas to the Same Schema?
- Can Online DDL Tools Be Used for Real-time Synchronization?
- Does DRS Support Two-Way Real-time Synchronization?
- Why Do I Use the SCAN IP Address to Connect to an Oracle RAC Cluster?
- How Do I Check Supplemental Logging of the Source Oracle Database?
- Suggestions on Synchronizing Data to GaussDB(DWS)
- Character Set Compatibility Between Oracle and GaussDB
- Garbled Characters or Synchronization Failure Due to Incompatible Character Sets
- How Do I Specify the Start Point for DRS Incremental Synchronization?
- What Are Syntax Differences Between MySQL or MariaDB Versions?
-
Configuring Remote Connection to a GaussDB Database
- Configuration Description
- Configuration Method for a Synchronization Task from GaussDB Centralized
- Configuration Method for a Synchronization Task from GaussDB Distributed in Multi-Task Mode
- Configuration Method for a Synchronization Task from GaussDB Distributed in Single-Task Mode
- Enabling Data Read from Standby Node for a Distributed GaussDB Instance
- Connection and Port Description for Incremental Synchronization from GaussDB
- What Should I Do If Data Inconsistency Occurs Due to Inconsistent Primary Keys or Unique Keys of DRS?
- What Can I Do If DDL Migration Is Not Configured for a Started Task and the Task Requires DDL Migration Again?
- Does DRS Support Synchronization from MySQL 8.0 to MySQL 5.7?
- How Do I Add or Delete Tables in a Synchronization Task That Has Been Started?
- Table Name Mapping and Topic Mapping Supported During Object File Import for Synchronization from GaussDB to Kafka
- Data Subscription
-
Real-Time Disaster Recovery
- What Are RPO and RTO of DRS Disaster Recovery?
- How Do I Select Active Database 1 and 2 for Dual-Active DR?
- What Is the Meaning of Forward and Backward Subtasks in Dual-Active Disaster Recovery?
- Common Exceptions in Real-Time Disaster Recovery
- Is a Primary/Standby Switchover Triggered Automatically or Manually for DR Tasks?
- Can Real-Time DR Be Performed for Specified Databases?
- How Do I Configure Source Database Information for a DDM DR Task?
- Why Does a Real-Time DR Task Not Support Triggers and Events?
- Data-Level Comparison
-
General Operations
- What Can I Do When Information Overlaps on the DRS Console?
- Is the Destination Instance Set to Read-only or Read/Write?
- How Do I Set Global binlog_format=ROW to Take Effect Immediately?
- How Do I Set binlog_row_image=FULL to Take Effect Immediately?
- How Do I Change the Destination Database Password to Meet the Password Policy?
- How Do I Configure the Shard Key for a MongoDB Sharded Cluster?
- Does Bandwidth Expansion Affect the Running DRS Tasks?
- Why Data in MariaDB and SysDB Cannot Be Migrated or Synchronized?
- Constraints and Operation Suggestions on Many-to-One Scenario
- Constraints and Operation Suggestions on One-to-Many Scenario
- Where Can I View DRS Operation Logs?
- Why Is the Language of the Message Sent by DRS Inconsistent with That on the Page?
- Why Is a DRS Task Automatically Stopped?
- How Can I Export a DRS Task List?
- Can a Completed Task Be Restarted?
- What Are the Differences Between Resetting a Task and Recreating a Task?
- Does DRS Support Backward Migration/Synchronization?
- Why Cannot I Select an Existing SMN Topic?
- Can I Change an SMN Topic After a Task Is Created?
- How Do I Set the Number of Source Shards and Source Database Information When DDM Is the Source Database?
- Will Data of DRS Tasks Be Lost After a Primary/Standby Switchover Occurs on the Source MySQL Database?
- What Are the Differences Between All, Tables, and Databases During DRS Object Selection?
- What Do I Do After Changing the Password of the Source or Destination Database?
- How Do I Configure an SMN Topic Policy to Allow DRS to Publish Messages?
- What Can I Do If a DRS Task Times Out Due to Too Many Tables?
- Can I Change the Source or Destination Database After a DRS Task Is Created?
- Are v5 APIs Available?
- How Long Does It Take to Pause, Stop, and Resume a DRS Task?
-
Billing
- Do I Have to Pay For Failed Tasks?
- Do I Have to Pay For Paused Tasks?
- Will DRS Tasks That Are Not Started Be Billed?
- What Will Happen to My Tasks After The Yearly/monthly Subscription Expires?
- Will I Be Charged If I Do Not Delete a Task After It Is Completed?
- Resource Freezing, Release, Deletion, and Unsubscription
- Delay
-
Product Consulting
-
Troubleshooting
-
Solutions to Failed Check Items
- Disk Space
-
Database Parameters
- Checking Whether the Source Database Binlog Is Enabled
- Checking Whether the Source Database Binlog Is Row-Based
- Checking Whether the expire_logs_days Value in the Source Database Is Correct
- Checking Whether the Source and Destination Database Character Sets Are Consistent
- Checking Whether the Source Database server_id Meets the Incremental Migration Requirements
- Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity
- Checking Whether the Source Database Contains Object Names with Non-ASCII Characters
- Checking Whether the time_zone Values of the Source and Destination Databases Are the Same
- Checking Whether the collation_server Values of the Source and Destination Databases Are the Same
- Checking Whether the SERVER_UUID Values of the Source and Destination Databases Are the Same
- Checking Whether the SERVER_ID Values of the Source and Destination Databases Are Different
- Checking Whether the Source Database Contains Invalid sql_mode Values
- Checking Whether the sql_mode Values of the Source and Destination Databases Are the Same
- Checking Whether the sql_mode Value in the Destination Database Is Not no_engine
- Checking Whether the innodb_strict_mode Values of the Source and Destination Databases Are the Same
- Checking Whether the max_wal_senders Value of the Source Database Is Correctly Configured
- Checking Whether the WAL_LEVEL Value in the Source Database Is Correct
- Checking Whether the MAX_REPLICATION_SLOTS Value in the Source Database Is Correct
- Checking Whether the Source Database Is on Standby
- Checking Whether the log_slave_updates Value in the Source Database Is Correct
- Checking Whether the BLOCK_SIZE Value of the Source Database Is the Same as That of the Destination Database
- Checking Whether the binlog_row_image Value is FULL
- Checking Whether the Transaction Isolation Levels are Consistent
- Checking Whether the lc_monetary Values of the Source and Destination Databases Are the Same
- Checking Whether the Source Database Contains Trigger Names with Non-ASCII Characters
- Checking Whether the Source Database Collections Contain More Than 10 Indexes
- Checking Whether the Source Database Collections Contain TTL Indexes
- Checking Whether log_bin_trust_function_creators Is Set to On in Both the Source and Destination Databases
- Checking Whether GTID Is Enabled for the Source Database
- Checking Whether GTID Is Enabled for the Destination Database
- Checking Whether log_bin_trust_function_creators Is Set to On in the Destination Database
- Checking Whether the Values in the Source Oracle Database Are Out of the Ranges of the MySQL Database
- Checking Whether the max_allowed_packet Value of the Destination Database Is too Small
- Checking Whether the Source Database User Has the Permission to Parse Logs
- Checking Whether the ExpireLogsDays Value Is 0
- Checking Whether the Source Database Character Set Is Supported
- Checking Whether the Length Table and Field Names Is Not Supported
- Checking Whether the Databases and Tables Exist
- Checking Whether the Supplemental Log Level of the Source Database Meets Requirements
- Checking Whether the Length of the Source Database Object Names Exceeds the Limit
- Checking Whether session_replication_role of the Destination Database Is correctly Set
- Checking the Database Compatibility Type
- Checking Whether the Collation of the Destination Database Is Correct
- Checking Whether the Index Name Is Supported
- Checking Whether Tables Structures Are Consistent
- Checking Whether Existing Data Meets the Constraints
- Checking the Additional Column of the Destination Database
- Checking Whether Implicit Primary Key Check Is Enabled for the Primary and Standby Databases
- Checking Whether the Source Table Replication Attribute Is Correct
- Checking Whether the Specified Replication Slot Exists in the Source Database
- Checking Whether the MongoDB Instance Type Matches the Migration Mode
- Checking the Physical Standby Database
- Checking Whether the Case Sensitivity of the Destination Database Is Configured
- Checking Whether CDC is Enabled for Tables in the Source Database
- Checking Whether the CDC Retention Period in the Source Database Is Long Enough
- Checking Whether the Source and Destination Databases Have Different Computer Names
- Checking Whether the Length of the Source Database Name Exceeds 64
- Synchronization Object Name Check
- Checking Whether the Source Database Contains Disabled Clustered Indexes
- Checking Whether the Source Database Is Empty
- Checking Whether the Source Database Uses the Full Recovery Model
- Checking the Synchronization Objects
- Checking Whether the Source Database Tables Contain Data Types Not Supported for Migration
- Checking Whether the SQL Server Agent of the Source Database Is Enabled
- Checking Whether the Values of group_concat_max_len Are Consistent
- Checking Whether the Table Structures of the Source Database Are Consistent
- Checking Whether the Character Sets Are Compatible
- Whether There Are XA Transactions That Have Not Been Submitted for a Long Time in the Source Database
- Whether the Selected Objects Exist in the Destination Database
- Destination Database Same Name Check
- Whether the Destination Database User (Schema) and Table Exist
- Whether the Maximum Number of Indexed Columns Has Been Reached
- Checking the Length of the Index Column in the Source Database
- Whether the Table Structures (Including Primary Key Indexes and the Number of Columns) of the Source Oracle Database and Destination Database Middleware Are Aligned
- Whether Synchronization Objects Exist in the Destination Database
- Whether the Source Database Contains Encrypted Objects
- Checking Whether the Source Database Contains Unsupported Table Field Types
- Checking Replication Attribute of Primary Key Columns
- Whether There Are Tables Containing Fields of the longtext or longblob Type in the Synchronization Object
- Checking Database Mapping Objects
- Whether the Source Database Is the Standby Database of a TaurusDB Instance
- Checking Whether Type Names Mapped to the Destination Database Are Valid
- Checking Whether the Source and Destination Database Character Sets Are Consistent
- Checking Whether Data Replication Is Enabled for the Source Database
- Checking Whether the Maximum Sequence Number of the Source Database is Less Than That of the Destination Database
- Checking Whether Interval Partitioned Tables Are Included in the Source Database
- Oracle Account Check in the Source Database
- Checking the Number of DNs in the Source Database
- Whether the Selected Objects Exist in the Destination Database
- Whether There Are Foreign Keys Containing Unsupported Reference Operations in the Source Database
- Whether the Selected Table Contains Delay Constraints
- Whether the Source Database Tables Contain Primary Keys
- Whether Foreign Keys Are Disabled or Tables to Be Synchronized Have Foreign Keys in the Destination Database
- Whether There Are Composite Hash Indexes in the Source Collection
- Whether There Are Composite Hash Shard Keys in the Source Collection
- Whether the Source Table Structure Contains Newline Characters
- Whether There Are Tables Containing Fields of the bytea or text Type in the Synchronization Object
- Checking Whether the Source Table Structure Contains Virtual Columns
- Whether the max_allowed_packet Value of the Source Database Is Too Small
- Whether the Supplemental Log Level in the Source Database Is Correct
- Whether Kafka Topics Have Been Created
- Whether the Source Database Kernel Encoding Supports Data Replication
- block_encryption_mode Consistency Check
- Character Type and Sorting Rule Check in the Destination Database
- Column Name Check in the Source Database
- Whether the Destination Schemas and Table Objects Are Consistent
- Source Encrypted Table Check
- Checking Whether the Source Table Replication Attribute Is Correct
- Partition Table Check on the Source Database
- Checking Whether the Source Database Contains Unsupported Generated Columns
- Checking Whether the ENABLE_SLOT_LOG Value of the Source Database Is Correct
- Source DB Instance Statuses
-
Destination DB Instance Statuses
- Checking Whether the Destination DB Instance Is Available
- Checking Whether the Destination Database Is Involved in Another Migration Task
- Checking Whether the Destination Database Has a Read Replica
- Checking Whether the Destination Database Is Read-Only
- Checking Whether the Extensions Are Supported
- Checking Whether Destination Contains the Configured Database
- Checking Whether the Destination DB Instance Is Available
- Checking Whether the Destination Database Is Empty
- Checking Whether There Are Foreign Keys that Are Not Disabled in the Destination Database Table
- Checking Whether There Are Enabled Triggers in an Existing Destination Database Table
- Database User Permissions
- Database Versions
- Networks
-
Database Objects
- Checking Whether the Source Database Contains a MyISAM Table
- Checking Whether the Source Database Contains the Functions or Stored Procedures that the Source Database User Is Not Authorized to Migrate
- Checking Whether Objects with the Same Names Exist in the Source Database
- Whether the Source Database Contains Unlogged Tables
- Checking Whether the Names of Views to Be Migrated Are the Same
- Checking Whether the _Id Fields in the Collection of the Source Database Have Indexes
- Checking Whether the Index Length of the Source Database Exceeds the Limit
- Checking Whether the Source Database Tables Use Storage Engines Not Supported by the Destination Database
- Checking Whether the Database Names Mapped to the Destination DB Instance Contain Unsupported Characters
- Checking Whether the Source Database Tables Contain Primary Keys
- Checking Whether the Source Database Contains Triggers or Events
- Checking Whether the Source Database Referenced Roles Pass the Check
- Checking Whether the Source Database Referenced Accounts Pass the Check
- Checking Whether the Source Database Contains Schemas or Users Named cdc
- Checking Whether Associated Objects Are Selected
- Checking Whether the Specified Objects Exist In the Destination Database
- Checking Whether the Source Table Contains Column Types that Cannot Be Used as Distribution Keys
- Checking Whether the Source Table Contains Unsupported Table Field Types
-
Database Configuration Items
- Checking Whether the Source Database Name Is Valid
- Checking Whether the Source Database Table Name Is Valid
- Checking Whether the Source Database View Name Is Valid
- Checking Whether the Source Database Collection Name Is Valid
- Checking Whether the Shard Key Can Be Obtained from the Source Database
- Checking Whether the Source Database Schema Name Is Valid
- Checking Whether the Maximum Number of Chunks in the Destination Database Is Sufficient
- Checking Whether Archive Logs Are Enabled on the Source Oracle Database
- Checking Whether Supplemental Logging Is Correctly Enabled on the Source Database
-
Conflicts
- Checking Whether the Names of the Source and Destination Databases Are the Same
- Checking Whether the Same View Names Exist in Both the Source and Destination Databases
- Checking Whether the Destination Database Contains a Non-Empty Collection with the Same Name As the Source Database
- Checking Whether Destination Database Contains the Same Table Names As the Synchronization Objects
- Checking Whether the Destination Database Contains Objects with the Same Name As Those in the Source Database
- Checking Whether Collections in Both the Source and Destination Databases Are Not Capped
-
SSL Connections
- Checking Whether the SSL Connection Is Correctly Configured
- Checking Whether the SSL Connection Is Enabled for the Source Database
- Checking Whether the SSL Certificate of the Source Database Exists
- Checking Whether the SSL Certificate of the Destination Database Exists
- Checking Whether Both the Source and Destination Databases Use SSL
- Object Dependencies
- Source Database Information
- Pre-Check Timeout
-
Failure Cases
- Case Overview
-
Real-Time Migration from MongoDB to DDS
- Full Migration Error: Prematurely reached end of stream
- Full Migration Error: not authorized on *** to execute command {***}
- Full Migration Error: GC overhead limit exceeded
- Full Migration Error: The background process is unavailable. Maybe it has been killed manually or by the operating system. Please restart the task if possible or wait for restarting by itself within 5 minutes."
- Full Migration Error: Timed out after 60000 ms while waiting to connect
- Full or Incremental Migration Error: Timed out after 60000 ms while waiting to connect
- Full or Incremental Migration Error: Invalid BSON field name ***
- Incremental Migration Error: Timed out after 60000 ms while waiting for a server that matches com.mongodb.client.internal
- Incremental Migration Error: Command failed with error *** (***):***. The full response is {***}"
-
Real-Time Migration and Synchronization from MySQL to MySQL
- Full Phase Error: Table *** doesn't exist
- Full Phase Error: The background process is unavailable
- Full Phase Error: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
- Full Phase Error: Error writing file *** (errno: 28 - No space left on device)
- Full Phase Error: The MySQL server is running with the --super-read-only option so it cannot execute this statement
- Full Phase Error: The table *** is full
- Full Phase Error: Unknown column *** in 'field list'
- Full Phase Error: Lock wait timeout exceeded; try restarting transaction
- Full Phase Error: Java heap space
- Full Phase Error: Table *** already exists
- Full Phase Error: temp table: *** not exist
- Full Phase Error: failed to create new session
- Full Phase Error: load table: *** failed
- Full Phase Error: extract table structure failed!
- Full Phase Error: read table=*** failed
- Full Phase Error: CANNOT UPDATE USER WITH NULL PASSWORD
- Full Phase Error: Access denied for user *** to database ***
- Full Phase Error: The MySQL server is running with the --super-read-only option so it cannot execute this statement
- Full Phase Error: Temporary file write failure.
- Full Phase Error: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys
- Full Phase Error: Unknown database ***
- Full Phase Error: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
- Full Phase Error: retry structures failed events and Table *** doesn't exist
- Full Phase Error: shard table=*** failed
- Full Phase Error: error when split table shard occur!
- Full Phase Error: Column name 'AUTO_PK_ROW_ID' is reserved.
- Full Phase Error: transfer account failed, can not find password from src DB
- Full Phase Error: Failed to add the foreign key constraint '***' to system tables
- Full Phase Error: Too many keys specified; max 64 keys allowed
- Full Phase Error: Unknown collation: 'utf8mb4_0900_ai_ci'
- Full Phase Error: exist some xa transactions for long times, may lack some data for this Job!.
- Full Phase Error: Invalid GIS data provided to function st_geometryfromtext'
- Full or Incremental Phase Error: Access denied for user ***
- Full or Incremental Phase Error: binlog is not existed
- Full or Incremental Phase Error: database log download failed
- Full or Incremental Phase Error: Can not read response from server
- Full or Incremental Phase Error: Communications link failure
- Full or Incremental Phase Error: EOF Packet received, master disconnected
- Full or Incremental Phase Error: Extract db create sql failed
- Full or Incremental Phase Error: load database structure failed in source database
- Full or Incremental Phase Error: load table: *** failed
- Full or Incremental Phase Error: Reached end of input stream
- Full or Incremental Phase Error: Read timed out
- Full or Incremental Phase Error: The background process is unavailable
- Full or Incremental Phase Error: Duplicate entry *** for key 'PRIMARY'
- Full or Incremental Phase Error: cause by: Index: ***, Size: ***
- Full or Incremental Phase Error: The offset and file name between src and parser is inconsistency
- Full or Incremental Phase Error: core process is not healthy or crashed
- Full or Incremental Phase Error: table info of table `***` from metadata miss
- Full or Incremental Phase Error: binlog parse fail, data dictionary may be not complete!
- Full or Incremental Phase Error: table *** record field size for insert/delete dml
- Full or Incremental Phase Error: service *** failed, cause by: Unable to connect to DBMS: ***
- Full or Incremental Phase Error: The binlog fetch connection may be interrupted
- Full or Incremental Phase Error: Received error packet: errno - 1047, solstate - HY000 errmsg = Unknown command
- Incremental Phase Error: not equals to target db column count
- Incremental Phase Error: The MySQL server is running with the --super-read-only option
- Incremental Phase Error: you need (at least one of) the SUPER privilege(s) for this operation
- Incremental Phase Error: Can't DROP ***; check that column/key exists
- Incremental Phase Error: Can't find file: *** (errno: 2 - No such file or directory)
- Incremental Phase Error: Data truncation: Data too long for column
- Incremental Phase Error: Failed to read file header from
- Incremental Phase Error: Lock wait timeout exceeded
- Incremental Phase Error: Must seek before attempting to read next event
- Incremental Phase Error: Table *** already exists
- Incremental Phase Error: Table *** doesn't exist
- Incremental Phase Error: Table *** not found in database
- Incremental Phase Error: source has more columns than target
- Incremental Phase Error: Unknown storage engine
- Incremental Phase Error: Unknown table
- Incremental Phase Error: You have an error in your SQL syntax
- Incremental Phase Error: not illegal for mariaDb gtid position
- Incremental Phase Error: without PK execute failed
- Incremental Phase Error: Deadlock found when trying to get lock
- Incremental Phase Error: current serverUUID not equals to this session
- Incremental Phase Error: Slave has more GTIDs than the master has, using the master's SERVER_UUID.
- Incremental Phase Error: Operation not allowed when innodb_force_recovery > 0
- Incremental Phase Error: filter data in config condition filter error
- Real-Time Migration and Synchronization from MySQL to TaurusDB
- Real-Time Synchronization from MySQL to CSS/ES
-
Real-Time Synchronization from PostgreSQL to PostgreSQL
- Task Startup Error: Initialize logical replication stream failed, the source database may have a long transaction: ****.
- Full Synchronization Error: function *** does not exist
- Full Synchronization Error: relation *** does not exist
- Full Synchronization Error: GC overhead limit exceeded
- Full Synchronization Error: Java heap space
- Full Synchronization Error: column *** of relation *** does not exist
- Full Synchronization Error: column *** does not exist
- Full Synchronization Error: type 'hstore' does not exist
- Full Synchronization Error: type 'geometry' does not exist
- Full Synchronization Error: Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections
- Full Synchronization Error: invalid locale name
- Full Synchronization Error: password must not equal user name
- Full Synchronization Error: permission denied for schema ***
- Full or Incremental Phase Error: service *** failed, cause by: Unable to connect to DBMS: ***
- Full or Incremental Phase Error: Initialize logical replication stream failed, the source database may have a long transaction
- Full or Incremental Phase Error: memory required is *** MB, maintenance_work_mem is *** MB
- Full or Incremental Phase Error: temporary file size exceeds temp_file_limit
- Incremental Synchronization Error: Table *** not found in target database
- Incremental Synchronization Error: remaining connection slots are reserved
- Incremental Synchronization Error: PL/pgSQL function *** line *** at SQL statement
- Incremental Synchronization Error: The replication slot does not exist and the task is not started for the first time.
-
Real-Time Synchronization with Oracle Serving as the Source
- Full Synchronization Error: has date/datetime: *** which is outside of dest allowed range
- Full or Incremental Phase Error: Got minus one from a read call
- Incremental Synchronization Error: Source supplemental log level is PK/UI. Missing column data at delete+insert on ***"
- Incremental Synchronization Error: timeout when get next file log, maybe has been deleted, please check it.
- Incremental Synchronization Error: Failed to construct kafka producer.
- Incremental Synchronization Error: Topic *** not present in metadata after 300000 ms
- Real-Time Synchronization with GaussDB Serving as the Source
- Real-Time DR with MySQL Serving as the Source
-
Backup Migration
- Backup Migration Failed Because Backup Files Cannot Be Found
- Backup Migration Failed Because a Backup Database Cannot Be Found in the Backup Files
- Backup Migration Failed Because the Database with the Same Name Already Exists
- Backup Migration Failed Because an Incremental Backup File Is Used
- Backup Migration Failed Because an Log Backup File Is Used
- Backup Migration Failed Because the Backup File Verification Failed
- Backup Migration Failed Because of Insufficient Space
- Backup Migration Failed Because Database Names Are Not Specified
- Backup Migration Failed Because a Full Backup File Is Used
- Backup Migration Failed Because the LSNs of Incremental Backup Files Are Inconsecutive
- Backup Migration Failed Because the Number of Databases to Be Restored Exceeds the Destination Database Threshold
- Workload Replay
- Data-Level Comparison
-
Solutions to Failed Check Items
- Videos
-
More Documents
-
User Guide (Paris Region)
- Service Overview
- Real-Time Migration
- Backup Migration
-
Real-Time Synchronization
- Data Synchronization Topologies
- To the Cloud
- Out of the Cloud
-
Task Management
- Creating a Synchronization Task
- Querying the Synchronization Progress
- Viewing Synchronization Logs
- Comparing Synchronization Items
- Managing Objects
-
Task Life Cycle
- Viewing Task Details
- Modifying Task Information
- Modifying Connection Information
- Modifying the Flow Control Mode
- Editing a Synchronization Task
- Resuming a Synchronization Task
- Pausing a Synchronization Task
- Resetting a Synchronization Task
- Stopping a Synchronization Task
- Deleting a Synchronization Task
- Task Statuses
- Tag Management
- Interconnecting with Cloud Eye
- Operation Reference in Synchronization Scenarios
-
FAQs
-
Product Consulting
- What Are Regions and AZs?
- What Is DRS?
- Can DRS Migrate RDS Primary/Standby Instances?
- Does DRS Support Resumable Uploads?
- What Are the Differences Between Real-Time Migration and Real-Time Synchronization?
- How Do I Solve the Table Bloat Issue?
- How Do I Select RDS Read Replicas on the DRS Console?
- How Does DRS Affect the Source and Destination Databases?
- Can DRS Migrates Table Structures Only?
- Network and Security
- Permissions Management
-
Real-Time Migration
- When Can I Stop a Migration Task?
- How Do I Maintain the Original Service User Permission System After Definer Is Forcibly Converted During MySQL Migration?
- What Can I Do If the Invoking Permission Problem Occurs After the MySQL Stored Procedure Is Migrated to the Cloud?
- How Do I Ensure that All Services on the Database Are Stopped?
- What Can I Do When Scheduled Task Failed to Start Leaving Message "can not get agency token"
- What Can I Do If MyISAM Tables Are Not Supported by RDS for MySQL?
- What Are the Precautions for Migrating Data from an Earlier Version MySQL to MySQL 8.0?
- What Can I Do When OOM Occurs During the Migration of MongoDB Databases?
- How Do I Disable the Balancer?
- How Do I Export and Import Events and Triggers in Batches?
- How Can I Migrate Databases or Tables Whose Names Contain Uppercase Letters?
- How Do I Delete Orphaned Documents in MongoDB Sharded Clusters?
- Backup Migration
-
Real-Time Synchronization
- Can DRS Sync Tables of Different Schemas to the Same Schema?
- Can Online DDL Tools Be Used for Real-time Synchronization?
- Which MySQL DDL Statements Can Be Directly Executed in GaussDB(DWS)?
- Why Do I Use the SCAN IP Address to Connect to an Oracle RAC Cluster?
- How Do I Check Supplemental Logging of the Source Oracle Database?
- Garbled Characters or Synchronization Failure Due to Incompatible Character Sets
- Data-Level Comparison
-
General Operations
- What Can I Do When Information Overlaps on the DRS Console?
- Is the Destination Instance Set to Read-only or Read/Write?
- How Do I Set Global binlog_format=ROW to Take Effect Immediately?
- How Do I Set binlog_row_image=FULL to Take Effect Immediately?
- How Do I Change the Destination Database Password to Meet the Password Policy?
- How Do I Configure the Shard Key for a MongoDB Sharded Cluster?
- Does Bandwidth Expansion Affect the Running DRS Tasks?
- Why Data in MariaDB and SysDB Cannot Be Migrated?
- Constraints and Operation Suggestions on Many-to-One Scenario
- Where Can I View DRS Operation Logs?
- Can a Completed Task Be Restarted?
- What Are the Differences Between Resetting a Task and Recreating a Task?
- What Do I Do After Changing the Password of the Source or Destination Database?
- Delay
-
Product Consulting
-
Troubleshooting
-
Solutions to Failed Check Items
- Disk Space
-
Database Parameters
- Checking Whether the Source Database Binlog Is Enabled
- Checking Whether the Source Database Binlog Is Row-Based
- Checking Whether the Binlog Retention Period Is Set on the Source Database
- Checking Whether the Source and Destination Database Character Sets Are Consistent
- Checking Whether the Source Database server_id Meets the Incremental Migration Requirements
- Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity
- Checking Whether the Source Database Contains Object Names with Non-ASCII Characters
- Checking Whether the TIME_ZONE Values of the Source and Destination Databases Are the Same
- Checking Whether the COLLATION_SERVER Values of the Source and Destination Databases Are the Same
- Checking Whether the SERVER_UUID Values of the Source and Destination Databases Are the Same
- Checking Whether the SERVER_ID Values of the Source and Destination Databases Are Different
- Checking Whether the Source Database Contains Invalid sql_mode Values
- Checking Whether the SQL_MODE Values of the Source and Destination Databases Are the Same
- Checking Whether the sql_mode Value in the Destination Database Is Not NO_ENGINE_SUBSTITUTION
- Checking Whether the innodb_strict_mode Values of the Source and Destination Databases Are the Same
- Checking Whether the max_wal_senders Value of the Source Database Is Correctly Configured
- Checking Whether the WAL_LEVEL Value in the Source Database Is Correct
- Checking Whether the MAX_REPLICATION_SLOTS Value in the Source Database Is Correct
- Checking Whether the Source Database Is on Standby
- Checking Whether the log_slave_updates Value of the Source Database Is Correctly Configured
- Checking Whether the BLOCK_SIZE Value of the Source Database Is the Same as That of the Destination Database
- Checking Whether the binlog_row_image Value is FULL
- Checking Whether the Transaction Isolation Levels are Consistent
- Checking Whether the lc_monetary Values of the Source and Destination Databases Are the Same
- Checking Whether the Source Database Contains Trigger Names with Non-ASCII Characters
- Checking Whether the Source Database Collections Contain More Than 10 Indexes
- Checking Whether log_bin_trust_function_creators Is Set to On in Both the Source and Destination Databases
- Checking Whether log_bin_trust_function_creators Is Set to On in the Destination Database
- Checking Whether the max_allowed_packet Value of the Destination Database Is too Small
- Checking Whether the Databases and Tables Exist
- Checking Whether session_replication_role of the Destination Database Is correctly Set
- Checking Whether the MongoDB Instance Type Matches the Migration Mode
- Checking the Physical Standby Database
- Checking Whether the Values of group_concat_max_len Are Consistent
- Checking Whether the Character Sets Are Compatible
- Checking Replication Attribute of Primary Key Columns
- Checking Whether the Source and Destination Database Character Sets Are Consistent
- Source DB Instance Statuses
- Destination DB Instance Statuses
- Database User Permissions
- Database Versions
- Networks
-
Database Objects
- Checking Whether the Source Database Contains a MyISAM Table
- Checking Whether the Source Database Contains the Functions or Stored Procedures that the Source Database User Is Not Authorized to Migrate
- Checking Whether the Source Database Tables Use Storage Engines Not Supported by the Destination Database
- Checking Whether the Source Database Tables Contain Primary Keys
- Checking Whether the Source Database Contains Triggers or Events
- Database Configuration Items
- Conflicts
- SSL Connections
- Object Dependencies
- Failure Cases
-
Solutions to Failed Check Items
- Change History
-
User Guide (ME-Abu Dhabi Region)
- Service Overview
- Preparations
- Real-Time Migration
- Backup Migration
-
FAQs
- Product Consulting
- Network and Security
- Permissions Management
-
Real-Time Migration
- When Can I Stop a Migration Task?
- How Do I Maintain the Original Service User Permission System After Definer Is Forcibly Converted During MySQL Migration?
- What Can I Do If the Invoking Permission Problem Occurs After the MySQL Stored Procedure Is Migrated to the Cloud?
- How Do I Ensure that All Services on the Database Are Stopped?
- What Can I Do If MyISAM Tables Are Not Supported by RDS for MySQL?
- What Are the Precautions for Migrating Data from an Earlier Version MySQL to MySQL 8.0?
- How Do I Export and Import Events and Triggers in Batches?
- How Can I Migrate Databases or Tables Whose Names Contain Uppercase Letters?
- Backup Migration
- Data-Level Comparison
-
General Operations
- What Can I Do When Information Overlaps on the DRS Console?
- Is the Destination Instance Set to Read-only or Read/Write?
- How Do I Set Global binlog_format=ROW to Take Effect Immediately?
- How Do I Set binlog_row_image=FULL to Take Effect Immediately?
- How Do I Change the Destination Database Password to Meet the Password Policy?
- Does Bandwidth Expansion Affect the Running DRS Tasks?
- Why Data in MariaDB and SysDB Cannot Be Migrated?
- Constraints and Operation Suggestions on Many-to-One Scenario
- Where Can I View DRS Operation Logs?
- Can a Completed Task Be Restarted?
- What Are the Differences Between Resetting a Task and Recreating a Task?
-
Troubleshooting
-
Solutions to Failed Check Items
- Disk Space
-
Database Parameters
- Checking Whether the Source Database Binlog Is Enabled
- Checking Whether the Source Database Binlog Is Row-Based
- Checking Whether the Binlog Retention Period Is Set on the Source Database
- Checking Whether the Source and Destination Database Character Sets Are Consistent
- Checking Whether the Source Database server_id Meets the Incremental Migration Requirements
- Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity
- Checking Whether the Source Database Contains Object Names with Non-ASCII Characters
- Checking Whether the TIME_ZONE Values of the Source and Destination Databases Are the Same
- Checking Whether the COLLATION_SERVER Values of the Source and Destination Databases Are the Same
- Checking Whether the SERVER_UUID Values of the Source and Destination Databases Are the Same
- Checking Whether the SERVER_ID Values of the Source and Destination Databases Are Different
- Checking Whether the Source Database Contains Invalid sql_mode Values
- Checking Whether the SQL_MODE Values of the Source and Destination Databases Are the Same
- Checking Whether the sql_mode Value in the Destination Database Is Not NO_ENGINE_SUBSTITUTION
- Checking Whether the innodb_strict_mode Values of the Source and Destination Databases Are the Same
- Checking Whether the log_slave_updates Value of the Source Database Is Correctly Configured
- Checking Whether the binlog_row_image Value is FULL
- Checking Whether the Transaction Isolation Levels are Consistent
- Checking Whether the Source Database Contains Trigger Names with Non-ASCII Characters
- Checking Whether log_bin_trust_function_creators Is Set to On in Both the Source and Destination Databases
- Checking Whether log_bin_trust_function_creators Is Set to On in the Destination Database
- Checking Whether the max_allowed_packet Value of the Destination Database Is too Small
- Checking Whether the Databases and Tables Exist
- Checking Whether the Values of group_concat_max_len Are Consistent
- Destination DB Instance Statuses
- Database User Permissions
- Database Versions
- Networks
-
Database Objects
- Checking Whether the Source Database Contains a MyISAM Table
- Checking Whether the Source Database Contains the Functions or Stored Procedures that the Source Database User Is Not Authorized to Migrate
- Checking Whether the Source Database Tables Use Storage Engines Not Supported by the Destination Database
- Checking Whether the Source Database Tables Contain Primary Keys
- Checking Whether the Source Database Contains Triggers or Events
- Database Configuration Items
- Conflicts
- SSL Connections
- Object Dependencies
- Failure Cases
-
Solutions to Failed Check Items
- Change History
-
User Guide (Kuala Lumpur Region)
- Service Overview
- Real-Time Migration
- Backup Migration
-
Real-Time Synchronization
- Data Synchronization Topologies
- To the Cloud
- Out of the Cloud
-
Task Management
- Creating a Synchronization Task
- Viewing the Synchronization Progress
- Viewing Synchronization Logs
- Comparing Items
- Managing Objects
-
Task Life Cycle
- Viewing Task Details
- Modifying Task Information
- Modifying Synchronization Information
- Editing a Synchronization Task
- Resuming a Synchronization Task
- Pausing a Synchronization Task
- Resetting a Synchronization Task
- Modifying the Flow Control Mode
- Stopping a Synchronization Task
- Deleting a Synchronization Task
- Task Statuses
- Operation Reference in Synchronization Scenarios
-
FAQs
-
Product Consulting
- What Is DRS?
- Can DRS Migrate RDS Primary/Standby Instances?
- Does DRS Support Resumable Uploads?
- What Are the Differences Between Data Migration and Synchronization?
- How Do I Solve the Table Bloat Issue?
- Why Cannot I Select RDS Read Replicas on the DRS Console?
- How Does DRS Affect the Source and Destination Databases?
- Network and Security
- Permissions Management
-
Real-Time Migration
- When Can I Stop a Migration Task?
- How Do I Maintain the Original Service User Permission System After Definer Is Forcibly Converted During MySQL Migration?
- What Can I Do If the Invoking Permission Problem Occurs After the MySQL Stored Procedure Is Migrated to the Cloud?
- How Do I Ensure that All Services on the Database Are Stopped?
- What Can I Do If MyISAM Tables Are Not Supported by RDS for MySQL?
- What Are the Precautions for Migrating Data from an Earlier Version MySQL to MySQL 8.0?
- How Do I Export and Import Events and Triggers in Batches?
- How Can I Migrate Databases or Tables Whose Names Contain Uppercase Letters?
- Backup Migration
-
Real-Time Synchronization
- Can DRS Sync Tables of Different Schemas to the Same Schema?
- Can Online DDL Tools Be Used for Real-time Synchronization?
- Which MySQL DDL Statements Can Be Directly Executed in GaussDB(DWS)?
- Why Do I Use the SCAN IP Address to Connect to an Oracle RAC Cluster?
- How Do I Check Supplemental Logging of the Source Oracle Database?
- Data-Level Comparison
-
General Operations
- What Can I Do When Information Overlaps on the DRS Console?
- How Do I Set Global binlog_format=ROW to Take Effect Immediately?
- How Do I Set binlog_row_image=FULL to Take Effect Immediately?
- How Do I Change the Destination Database Password to Meet the Password Policy?
- Does Bandwidth Expansion Affect the Running DRS Tasks?
- Why Data in MariaDB and SysDB Cannot Be Migrated?
- Constraints and Operation Suggestions on Many-to-One Scenario
- Where Can I View DRS Operation Logs?
- Can a Completed Task Be Restarted?
- What Are the Differences Between Resetting a Task and Recreating a Task?
-
Product Consulting
-
Troubleshooting
-
Solutions to Failed Check Items
- Disk Space
-
Database Parameters
- Checking Whether the Source Database Binlog Is Enabled
- Checking Whether the Source Database Binlog Is Row-Based
- Checking Whether the Binlog Retention Period Is Set on the Source Database
- Checking Whether the Source and Destination Database Character Sets Are Consistent
- Checking Whether the Source Database server_id Meets the Incremental Migration Requirements
- Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity
- Checking Whether the Source Database GTID Is Enabled
- Checking Whether the Source Database Contains Object Names with Non-ASCII Characters
- Checking Whether the Source and Destination Database TIME_ZONE Values Are Consistent
- Checking Whether the COLLATION_SERVER Values of the Source and Destination Databases Are the Same
- Checking Whether the SERVER_UUID Values of the Source and Destination Databases Are the Same
- Checking Whether the SERVER_ID Values of the Source and Destination Databases Are Different
- Checking Whether the Source Database Contains Invalid sql_mode Values
- Checking Whether the SQL_MODE Values of the Source and Destination Databases Are the Same
- Checking Whether the sql_mode Value in the Destination Database Is Not NO_ENGINE_SUBSTITUTION
- Checking Whether the innodb_strict_mode Values of the Source and Destination Databases Are the Same
- Checking Whether the max_wal_senders Value of the Source Database Is Correctly Configured
- Checking Whether the WAL_LEVEL Value in the Source Database Is Correct
- Checking Whether the MAX_REPLICATION_SLOTS Value in the Source Database Is Correct
- Checking Whether the Source Database Is on Standby
- Checking Whether the log_slave_updates Value of the Source Database Is Correctly Configured
- Checking Whether the binlog_row_image Value is FULL
- Checking Whether the Transaction Isolation Levels are Consistent
- Checking Whether the lc_monetary Values of the Source and Destination Databases Are the Same
- Checking Whether the Source Database Contains Trigger Names with Non-ASCII Characters
- Checking Whether log_bin_trust_function_creators Is Set to On in Both the Source and Destination Databases
- Checking Whether log_bin_trust_function_creators Is Set to On in the Destination Database
- Checking Whether the max_allowed_packet Value of the Destination Database Is too Small
- Checking Whether the Databases and Tables Exist
- Destination DB Instance Statuses
- Database User Permissions
- Database Versions
- Networks
-
Database Objects
- Checking Whether the Source Database Contains a MyISAM Table
- Checking Whether the Source Database Contains the Functions or Stored Procedures that the Source Database User Is Not Authorized to Migrate
- Checking Whether the Source Database Tables Use Storage Engines Not Supported by the Destination Database
- Checking Whether the Source Database Tables Contain Primary Keys
- Checking Whether the Source Database Contains Triggers or Events
- Database Configuration Items
- Conflicts
- SSL Connections
- Object Dependencies
- Failure Cases
-
Solutions to Failed Check Items
- Change History
-
User Guide (Ankara Region)
- Service Overview
- Preparations
- Real-Time Migration
-
Real-Time Synchronization
- Synchronization Overview
- Data Synchronization Topologies
- To the Cloud
- Out of the Cloud
- Between Self-built Databases
-
Task Management
- Creating a Synchronization Task
- Querying the Synchronization Progress
- Viewing Synchronization Logs
- Comparing Synchronization Items
- Managing Objects
-
Task Life Cycle
- Viewing Task Details
- Modifying Task Information
- Modifying Connection Information
- Modifying the Flow Control Mode
- Editing a Synchronization Task
- Resuming a Synchronization Task
- Pausing a Synchronization Task
- Resetting a Synchronization Task
- Stopping a Synchronization Task
- Deleting a Synchronization Task
- Task Statuses
- Operation Reference in Synchronization Scenarios
- Real-Time Disaster Recovery
-
FAQs
-
Product Consulting
- What Are Regions and AZs?
- What Is DRS?
- Can DRS Migrate RDS Primary/Standby Instances?
- Does DRS Support Resumable Uploads?
- What Is Single-Active/Dual-Active Disaster Recovery?
- What Are the Differences Between Real-Time Migration, Real-Time DR, and Real-Time Synchronization?
- How Do I Solve the Table Bloat Issue During MySQL Migration?
- How Does DRS Affect the Source and Destination Databases?
- Can DRS Migrates Table Structures Only?
- Which Operations on the Source or Destination Database Affect the DRS Task Status?
- Why Cannot Standby Read Replicas on Some Other Clouds Be Used as the Source Database?
- Network and Security
- Permissions Management
-
Real-Time Migration
- When Can I Stop a Migration Task?
- How Do I Maintain the Original Service User Permission System After Definer Is Forcibly Converted During MySQL Migration?
- What Can I Do If the Invoking Permission Problem Occurs After the MySQL Stored Procedure Is Migrated to the Cloud?
- How Do I Ensure that All Services on the Database Are Stopped?
- What Can I Do When Message "can not get agency token" Is Displayed in the Migration Log
- What Can I Do If MyISAM Tables Are Not Supported by RDS for MySQL?
- What Are the Precautions for Migrating Data from an Earlier Version MySQL to MySQL 8.0?
- How Do I Export and Import Events and Triggers in Batches?
- How Can I Migrate Databases or Tables Whose Names Contain Uppercase Letters?
- What Can I Do If There Is an Extra Backslash (\) After a MySQL Account Is Migrated?
-
Real-Time Synchronization
- Can DRS Sync Tables of Different Schemas to the Same Schema?
- Can Online DDL Tools Be Used for Real-time Synchronization?
- Why Do I Use the SCAN IP Address to Connect to an Oracle RAC Cluster?
- How Do I Check Supplemental Logging of the Source Oracle Database?
- Garbled Characters or Synchronization Failure Due to Incompatible Character Sets
- How Do I Specify the Start Point for DRS Incremental Synchronization?
-
Real-Time Disaster Recovery
- What Are RPO and RTO of DRS Disaster Recovery?
- How Do I Select Active Database 1 and 2 for Dual-Active DR?
- What Is the Meaning of Forward and Backward Subtasks in Dual-Active Disaster Recovery?
- Common Exceptions in Real-Time Disaster Recovery
- Is a Primary/Standby Switchover Triggered Automatically or Manually for DR Tasks?
- Can Real-Time DR Be Performed for Specified Databases?
- Why Does a Real-Time DR Task Not Support Triggers and Events?
- Data-Level Comparison
-
General Operations
- What Can I Do When Information Overlaps on the DRS Console?
- Is the Destination Instance Set to Read-only or Read/Write?
- How Do I Set Global binlog_format=ROW to Take Effect Immediately?
- How Do I Set binlog_row_image=FULL to Take Effect Immediately?
- How Do I Change the Destination Database Password to Meet the Password Policy?
- Does Bandwidth Expansion Affect the Running DRS Tasks?
- Why Data in MariaDB and SysDB Cannot Be Migrated?
- Constraints and Operation Suggestions on Many-to-One Scenario
- Where Can I View DRS Operation Logs?
- Can a Completed Task Be Restarted?
- What Are the Differences Between Resetting a Task and Recreating a Task?
- What Do I Do After Changing the Password of the Source or Destination Database?
- What Can I Do If a DRS Task Times Out Due to Too Many Tables?
- Can I Change the Source or Destination Database After a DRS Task Is Created?
- Delay
-
Product Consulting
-
Troubleshooting
-
Solutions to Failed Check Items
- Disk Space
-
Database Parameters
- Checking Whether the Source Database Binlog Is Enabled
- Checking Whether the Source Database Binlog Is Row-Based
- Checking Whether the Binlog Retention Period Is Set on the Source Database
- Checking Whether the Source and Destination Database Character Sets Are Consistent
- Checking Whether the Source Database server_id Meets the Incremental Migration Requirements
- Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity
- Checking Whether the Source Database Contains Object Names with Non-ASCII Characters
- Checking Whether the TIME_ZONE Values of the Source and Destination Databases Are the Same
- Checking Whether the COLLATION_SERVER Values of the Source and Destination Databases Are the Same
- Checking Whether the SERVER_UUID Values of the Source and Destination Databases Are the Same
- Checking Whether the SERVER_ID Values of the Source and Destination Databases Are Different
- Checking Whether the Source Database Contains Invalid sql_mode Values
- Checking Whether the sql_mode Values of the Source and Destination Databases Are the Same
- Checking Whether the sql_mode Value in the Destination Database Is Not no_engine
- Checking Whether the innodb_strict_mode Values of the Source and Destination Databases Are the Same
- Checking Whether the max_wal_senders Value of the Source Database Is Correctly Configured
- Checking Whether the WAL_LEVEL Value in the Source Database Is Correct
- Checking Whether the MAX_REPLICATION_SLOTS Value in the Source Database Is Correct
- Checking Whether the Source Database Is on Standby
- Checking Whether the log_slave_updates Value of the Source Database Is Correctly Configured
- Checking Whether the BLOCK_SIZE Value of the Source Database Is the Same as That of the Destination Database
- Checking Whether the binlog_row_image Value is FULL
- Checking Whether the Transaction Isolation Levels are Consistent
- Checking Whether the lc_monetary Values of the Source and Destination Databases Are the Same
- Checking Whether the Source Database Contains Trigger Names with Non-ASCII Characters
- Checking Whether log_bin_trust_function_creators Is Set to On in Both the Source and Destination Databases
- Checking Whether log_bin_trust_function_creators Is Set to On in the Destination Database
- Checking Whether the max_allowed_packet Value of the Destination Database Is too Small
- Checking Whether the Source Database User Has the Permission to Parse Logs
- Checking Whether the Databases and Tables Exist
- Checking Whether the Supplemental Log Level of the Source Database Meets Requirements
- Checking Whether session_replication_role of the Destination Database Is correctly Set
- Checking the Physical Standby Database
- Checking Whether the Values of group_concat_max_len Are Consistent
- Checking Whether the Character Sets Are Compatible
- Checking Replication Attribute of Primary Key Columns
- Checking Whether the Source and Destination Database Character Sets Are Consistent
- Whether the Selected Table Contains Delay Constraints
- Whether the Source Database Tables Contain Primary Keys
- Whether the Source Table Structure Contains Newline Characters
- Whether There Are Tables Containing Fields of the bytea or text Type in the Synchronization Object
- Whether the max_allowed_packet Value of the Source Database Is Too Small
- block_encryption_mode Consistency Check
- Character Type and Sorting Rule Check in the Destination Database
- Destination DB Instance Statuses
- Database User Permissions
- Database Versions
- Networks
-
Database Objects
- Checking Whether the Source Database Contains a MyISAM Table
- Checking Whether the Source Database Contains the Functions or Stored Procedures that the Source Database User Is Not Authorized to Migrate
- Checking Whether the Source Database Tables Use Storage Engines Not Supported by the Destination Database
- Checking Whether the Source Database Tables Contain Primary Keys
- Checking Whether the Source Database Contains Triggers or Events
- Database Configuration Items
- Conflicts
- SSL Connections
- Object Dependencies
-
Solutions to Failed Check Items
- Change History
-
User Guide (Paris Region)
- General Reference
Copied.
Creating a Workload Replay Task
A workload replay task simulates the service load of the source database on the destination database so you can evaluate the effectiveness and performance of the destination database. It is typically used in the following scenarios:
- Function testing: By creating a workload replay task, you can evaluate how the service load of the source database runs on the destination database before database migration.
- Peak load testing: By specifying the replay thread and speed, you can simulate the peak service load of the source database and analyze the stability of the destination database when workloads increase sharply.
This section uses two RDS for MySQL DB instances in different regions as an example to describe how to replay SQL workload files over the public network.
Video Tutorial
Operation Process
Process |
Description |
---|---|
Sign up for a HUAWEI ID, complete real-name authentication, enable Huawei Cloud services, and prepare the workload files and the destination database, the database connection account, and a network. |
|
Select the source and destination databases as required and create a workload replay task. |
|
During the workload replay, query the progress. |
|
After workload replay is complete, check the replay reporting to learn about the execution of each SQL statement. |
|
After confirming that the workload replay task is no longer used, stop the DRS task. |
Preparations
Before creating a workload replay task, prepare the Huawei account, source and destination databases, database connection accounts, SQL workload files, and network environment by referring to the following steps.
Prepare a Huawei account, create a user, and grant permissions to the user to use DRS.
- Access Huawei Cloud website.
- Click Sign Up and follow the instructions to create your account (your HUAWEI ID).
- Select the service agreement and click Enable.
The system displays a message indicating that Huawei Cloud services have been enabled.
- Perform real-name authentication.
- Individual account: Individual Real-Name Authentication
- Enterprise account: Enterprise Real-Name Authentication
- For fine-grained permissions management, create an Identity and Access Management (IAM) user and user group on the IAM console and grant the user specific operation permissions. For details, see Creating a User and Granting Permissions
Before creating a workload replay task, you need to prepare the source and destination databases.
- The source database in this example is an RDS for MySQL instance in the CN-Hong Kong region. For details, see Buy an RDS for MySQL DB Instance.
Item
Example Value
Description
Region
CN-Hong Kong
To reduce network latency, select the region nearest to you.
Instance name
rds-Replaysrc
Specify a name that will be easy to identify.
DB engine version
MySQL 5.7
-
Instance type
Single
A single instance is used in this example.
To improve service reliability, select a primary/standby instance.
Storage type
Cloud SSD
-
AZ
AZ1
AZ1 is selected in this example.
To improve service reliability, select the primary/standby instance type and deploy the primary and standby instances in different AZs.
Instance class
General-purpose 2 vCPUs | 8 GB
-
EIP
10.154.217.42
Enter an IP address.
- The destination database in this example is an RDS for MySQL instance in the AP-Singapore region. For details, see Buy an RDS for MySQL DB Instance.
Item
Example Value
Description
Region
AP-Singapore
To reduce network latency, select the region nearest to you.
Instance name
rds-Replaytar
Specify a name that will be easy to identify.
DB engine version
MySQL 5.7
-
Instance type
Single
A single instance is used in this example.
To improve service reliability, select a primary/standby instance.
Storage type
Cloud SSD
-
AZ
AZ1
AZ1 is selected in this example.
To improve service reliability, select the primary/standby instance type and deploy the primary and standby instances in different AZs.
Instance class
General-purpose 2 vCPUs | 8 GB
-
Before creating a task, you need to capture SQL workload files of the source database.
- Log in to the management console.
- Click
in the upper left corner of the management console and select CN-Hong Kong.
- Click Service List. Under Databases, click Relational Database Service. The RDS console is displayed.
- On the Instances page, click the name of the source DB instance created in Databases to go to the Overview page.
- In the navigation pane, choose SQL Audits. On the displayed page, click Set SQL Audit above the list. In the displayed dialog box, configure information as required and click OK.
- Audit Logging: Enable
- Retention Period (days): 7
Figure 1 Set SQL Audit
To ensure a smooth workload replay, you are advised to create an independent database account for connecting to the DRS task. It is recommended that the permissions of the destination database user be the same as that of the source database user.
Destination database user
- Connect to an RDS for MySQL instance through DAS.
- Run the following statement to create database user usertar. For details, see Creating a Database Account Through DAS.
CREATE USER 'usertar'@'%' IDENTIFIED BY 'password';
- Run the following statement to grant permissions to usertar:
GRANT SELECT,CREATE,ALTER,DROP,DELETE,INSERT,UPDATE,TRIGGER,REFERENCES,SHOW VIEW,EVENT,INDEX,LOCK TABLES,CREATE VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,RELOAD,REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'usertar'@'%' WITH GRANT OPTION;
Before creating a workload replay task over a public work, you need to apply for an EIP and set security group rules for the source database so that the EIP can access the source database.
- Create an EIP for the workload replay task by referring to Assigning an EIP.
- Configure security group rules for the source database.
Add the EIP in 1 of the DRS instance to the inbound rule of the security group associated with the source RDS for MySQL database, select TCP, and set the port number to that of the source database.
Prepare a Huawei account, create a user, and grant permissions to the user to use DRS.
- Access Huawei Cloud website.
- Click Sign Up and follow the instructions to create your account (your HUAWEI ID).
- Select the service agreement and click Enable.
The system displays a message indicating that Huawei Cloud services have been enabled.
- Perform real-name authentication.
- Individual account: Individual Real-Name Authentication
- Enterprise account: Enterprise Real-Name Authentication
- For fine-grained permissions management, create an Identity and Access Management (IAM) user and user group on the IAM console and grant the user specific operation permissions. For details, see Creating a User and Granting Permissions
Before creating a workload replay task, you need to prepare the source and destination databases.
- The source database in this example is an RDS for MySQL instance in the CN-Hong Kong region. For details, see Buy an RDS for MySQL DB Instance.
Item
Example Value
Description
Region
CN-Hong Kong
To reduce network latency, select the region nearest to you.
Instance name
rds-Replaysrc
Specify a name that will be easy to identify.
DB engine version
MySQL 5.7
-
Instance type
Single
A single instance is used in this example.
To improve service reliability, select a primary/standby instance.
Storage type
Cloud SSD
-
AZ
AZ1
AZ1 is selected in this example.
To improve service reliability, select the primary/standby instance type and deploy the primary and standby instances in different AZs.
Instance class
General-purpose 2 vCPUs | 8 GB
-
EIP
10.154.217.42
Enter an IP address.
- The destination database in this example is an RDS for MySQL instance in the AP-Singapore region. For details, see Buy an RDS for MySQL DB Instance.
Item
Example Value
Description
Region
AP-Singapore
To reduce network latency, select the region nearest to you.
Instance name
rds-Replaytar
Specify a name that will be easy to identify.
DB engine version
MySQL 5.7
-
Instance type
Single
A single instance is used in this example.
To improve service reliability, select a primary/standby instance.
Storage type
Cloud SSD
-
AZ
AZ1
AZ1 is selected in this example.
To improve service reliability, select the primary/standby instance type and deploy the primary and standby instances in different AZs.
Instance class
General-purpose 2 vCPUs | 8 GB
-
Before creating a task, you need to capture SQL workload files of the source database.
- Log in to the management console.
- Click
in the upper left corner of the management console and select CN-Hong Kong.
- Click Service List. Under Databases, click Relational Database Service. The RDS console is displayed.
- On the Instances page, click the name of the source DB instance created in Databases to go to the Overview page.
- In the navigation pane, choose SQL Audits. On the displayed page, click Set SQL Audit above the list. In the displayed dialog box, configure information as required and click OK.
- Audit Logging: Enable
- Retention Period (days): 7
Figure 1 Set SQL Audit
To ensure a smooth workload replay, you are advised to create an independent database account for connecting to the DRS task. It is recommended that the permissions of the destination database user be the same as that of the source database user.
Destination database user
- Connect to an RDS for MySQL instance through DAS.
- Run the following statement to create database user usertar. For details, see Creating a Database Account Through DAS.
CREATE USER 'usertar'@'%' IDENTIFIED BY 'password';
- Run the following statement to grant permissions to usertar:
GRANT SELECT,CREATE,ALTER,DROP,DELETE,INSERT,UPDATE,TRIGGER,REFERENCES,SHOW VIEW,EVENT,INDEX,LOCK TABLES,CREATE VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,RELOAD,REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'usertar'@'%' WITH GRANT OPTION;
Before creating a workload replay task over a public work, you need to apply for an EIP and set security group rules for the source database so that the EIP can access the source database.
- Create an EIP for the workload replay task by referring to Assigning an EIP.
- Configure security group rules for the source database.
Add the EIP in 1 of the DRS instance to the inbound rule of the security group associated with the source RDS for MySQL database, select TCP, and set the port number to that of the source database.
Step 1: Create a Workload Replay Task
This step describes how to set parameters based on the example values in Preparations. For more information about workload replay, see Replay Overview.
- Go to the Create Workload Replay Task page.
- Configure basic information as follows:
Figure 2 Basic information
Parameter
Example Value
Description
Region
AP-Singapore
The region where the current task is deployed.
Project
AP-Singapore
The project corresponds to the current region.
Task Name
DRS-Replay
The name of the workload replay task.
Description
Leave this parameter blank for now.
Task description.
- Configure information about the replay instance.
Figure 3 Replay instance details
Parameter
Example Value
Description
Data Flow
Current cloud
The direction of the workload replay task. The options are Current cloud and To the cloud.
- Current cloud: Both the source and destination databases are Huawei Cloud DB instances.
- To the cloud: The destination database is a Huawei Cloud DB instance and data needs to be transferred to the cloud.
Source DB Engine
MySQL
The DB engine type of the source database.
Workload File Source
Download from Huawei Cloud APIs
Specifies where the workload file in the source database is from.
Destination DB Engine
MySQL
The DB engine type of the destination database.
Network Type
Public network
The network type of the workload replay task.
Destination DB Instance
rds-Replaytar
Select a destination DB instance.
The destination DB instance is rds-Replaytar in Databases.
Replay Instance Subnet
Default subnet
The subnet where the workload replay task is.
Specify EIP
-
Select an EIP for the DRS instance. In this example, it is the EIP created in Network.
- Select an AZ and an enterprise project.
Figure 4 AZ and Enterprise Project
Parameter
Example Value
Description
AZ
AZ1
Select the AZ where you want to create the DRS task.
Enterprise Project
default
If your account is associated with an enterprise project, select the project from the Enterprise Project drop-down list.
For more details, see Enterprise Management User Guide.
Tags
Leave this parameter blank for now.
Tags for the workload replay task. Adding tags helps you better identify and manage your tasks.
- Click Create Now.
Wait for 5 to 10 minutes. If the message "Replay instance created successfully" is displayed, the DRS task is successfully created.
- On the Configure Source and Destination Databases page, specify the source and destination database details.
- Source database settings
- Workload File Source: Download from Huawei Cloud APIs
- DB Instance Name: Select the source DB instance rds-Replaysrc created in Databases.
- Workload Type: Audit log
- Time Range: Select the time range for audit logs in SQL Workload Files.
- Destination database settings
Enter the connection details about the destination database in Connection Accounts.
- Source database settings
- Configure the task.
Figure 5 Task settings
Parameter
Example Value
Description
SQL Type
SELECT
Select the SQL type to be replayed to the destination database. The default value is SELECT. The available options are SELECT, INSERT, UPDATE, DELETE, and DDL.
Replay Mode
Performance
Mode of the workload replay task. You can select Performance or Transaction.
- In performance mode, you can set how many concurrent connections are allowed. SQL statements are replayed to the destination database based on a set number of connections. The SQL execution sequence in the source database may be different from that in the destination database. The replay performance is better.
- In transaction mode, you cannot set how many concurrent connections are allowed. The number of connections is dynamically adjusted based on the connections in the source database logs to ensure that transaction SQL statements in the same connection of the source database are executed in sequence.
Filter out SQLs
-
The system fuzzily matches SQL statements based on the entered condition.
Filter out SQLs Without Conditions
-
This option is used to filter out SQL statements of the SELECT, UPDATE, and DELETE types that do not contain conditions.
Maximum Concurrent Connections
8
The number of replay threads configured for the workload replay task.
Acceleration Configuration
100%
The percentage of the replayed SQLs to the SQLs executed on the source database within the same period.
- Click Test Connection in the Destination Database area to test the connection to the destination database. After the connection test is successful, click Next.
- On the Check Task page, check the workload replay task.
- If any check fails, review the cause and rectify the fault. After the fault is rectified, click Check Again.
- If all check items are successful, click Next.
- On the Confirm Task page, specify Start Time.
Figure 6 Task startup settings
Parameter
Example Value
Description
Start Time
Start upon task creation
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.
Send Notifications
Disable
This parameter is optional. After enabled, select an SMN topic. If the status, latency metric, or data of the workload replay task is abnormal, DRS will send you a notification.
Stop Abnormal Tasks After
14
Any task in the Abnormal state that has run for longer than the period you set here (in days) will automatically stop.
- Confirm that the configured information is correct and click Submit to submit the task.
- After the workload replay task is submitted, check the task status or query the replay progress on the Workload Replay Management page.
- You can click
in the upper right corner to view the latest task status.
- 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 for the task again.
- You can click
Step 2: Query Replay Progress
The replay progress displays the SQL execution status during workload replay, helping you learn about the task status.
- On the Workload Replay Management page, click the target replay task in the Task Name/ID column.
- In the navigation pane, choose Workload Replay Progress to check task progress.
- In the Workload Replay Progress area, you can view the task status, start time, total number of SQL statements, and number of replayed SQL statements.
- In the Statistics Chart area, you can view the total number of SQL statements, number of replayed SQL statements, number of abnormal SQL statements, and number of slow SQL statements in a specified period.
- In the Abnormal SQLs in Workload Replay area, you can view the category and number of SQL statements that fail to be replayed.
- In the Slow SQLs area, you can view the original time and replay time required for executing a SQL statement.
- In the SQL Execution Progress are, you can view the SQL statements that are executing in the destination database during replay.
- After workload replay is complete, check the replay reporting to learn about the execution of each SQL statement.
Step 3: Check Replay Reporting
The replay reporting records the execution time curve of each SQL statement replayed in the destination database, number of replayed SQLs, and replay duration.
- On the Workload Replay Management page, click the target replay task in the Task Name/ID column.
- On the Replay Reporting page, check the report details about the current task.
- In the Statistics Chart area, you can view the total number of SQL statements, number of replayed SQL statements, number of abnormal SQL statements, and number of slow SQL statements replayed in the destination database in a specified period.
Figure 7 Replay statistics chart
- In the Slow SQLs area, you can view the number of SQL statements of each type and the replay duration.
- In the Abnormal SQLs in Workload Replay area, you can view the category and number of SQL statements that fail to be replayed.
Figure 8 SQLs to be replayed
- In the Statistics Chart area, you can view the total number of SQL statements, number of replayed SQL statements, number of abnormal SQL statements, and number of slow SQL statements replayed in the destination database in a specified period.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot