Data Transmission Service (DTS) allows you to perform one-way synchronization between cluster instances across Alibaba Cloud accounts. This feature is applicable to scenarios such as resource migration or merging, and business architecture adjustment across Alibaba Cloud accounts.
Prerequisites
If the source ApsaraDB for Redis instance is a Community Edition instance, the engine version is 4.0 or 5.0. If the source ApsaraDB for Redis instance is an Enhanced Edition (Tair) instance, the engine version is 5.0.
NoteThe engine version of the destination ApsaraDB for Redis instance can be 4.0 or 5.0. The engine version of the destination ApsaraDB for Redis instance must be the same as or later than that of the source ApsaraDB for Redis instance. Before you synchronize data between two ApsaraDB for Redis instances that use different engine versions, check the compatibility of the two versions. For example, you can create a destination ApsaraDB for Redis instance that adopts the pay-as-you-go billing method to verify the compatibility between the source and destination instances. Then, you can release this instance or change the billing method of the instance to subscription.
The source or destination instance is a cluster, standard, or read/write splitting classic instance.
The source or destination instance is a standard cloud-native instance. A cluster cloud-native instance cannot be configured as the source or destination instance.
The source instance is deployed in a virtual private cloud (VPC). If the source ApsaraDB for Redis instance is deployed in the classic network, you can change the network type to VPC. For more information, see Switch the network type from classic network to VPC.
SSL encryption is disabled for the source instance. For more information, see Configure SSL encryption.
The available storage space of the destination instance is larger than the total size of the data in the source instance.
To ensure compatibility between the source and destination instances, if an ApsaraDB for Redis Enhanced Edition (Tair) instance is configured as the source instance, the destination instance must be an ApsaraDB for Redis Enhanced Edition (Tair) instance. This is because ApsaraDB for Redis Enhanced Edition (Tair) is integrated with more Redis modules than ApsaraDB for Redis Community Edition.
The appendonly parameter is set to yes if a persistent memory-optimized instance is configured as the source instance.
The source instance is not a storage-optimized ApsaraDB for Redis Enhanced Edition (Tair) instance. A storage-optimized ApsaraDB for Redis Enhanced Edition (Tair) instance can be used only as the destination instance.
Background information
In this example, two ApsaraDB for Redis instances are created by different Alibaba Cloud accounts. You want to synchronize data from the instance of Account A to the instance of Account B. The following figure shows the architecture of the synchronization solution.
The following table describes how to configure a one-way data synchronization task for this scenario.
Step | Description |
1. Use Account A to which the source instance belongs to log on to the Resource Access Management (RAM) console and grant the required permissions to a RAM role. For more information, see the Preparations section of this topic. | When you configure the RAM role, set Account B as the trusted account and authorize the RAM role to access the cloud resources of Account A. |
2. Use Account B to which the destination instance belongs to log on to the DTS console and configure the data synchronization task. For more information, see the Procedure section of this topic. | DTS can read information about the source ApsaraDB for Redis instance across Alibaba Cloud accounts. |
Supported source and destination databases
The following table describes the supported databases when you use DTS to perform one-way synchronization between ApsaraDB for Redis instances across Alibaba Cloud accounts.
Source database | Destination database |
|
|
Limits
Category | Description |
Limits on the source database |
|
Other limits |
|
Billing
Synchronization type | Task configuration fee |
Schema synchronization and full data synchronization | Free of charge. |
Incremental data synchronization | Charged. For more information, see Billing overview. |
Commands that can be synchronized
Edition | Command |
ApsaraDB for Redis Community Edition instance |
|
ApsaraDB for Redis Enhanced Edition (Tair) instance |
|
PUBLISH operations cannot be synchronized.
If you run the EVAL or EVALSHA command to call Lua scripts, DTS cannot identify whether these Lua scripts are executed on the destination instance. This is because the destination instance does not explicitly return the execution results of Lua scripts during incremental data synchronization.
When DTS runs the SYNC or PSYNC command to transfer data of the LIST type, DTS does not clear the existing data in the destination instance. As a result, the destination instance may contain duplicate data records.
Preparations
Required. Obtain the IDs of the Alibaba Cloud accounts to which the source and destination instances belong.
NoteSkip the step if you have obtained the IDs of the Alibaba Cloud accounts to which the source and destination instances belong.
Log on to the Account Management console by using the Alibaba Cloud account to which the source or destination instance belongs.
Optional. In the left-side navigation pane, click Basic Information.
View and record the value of the Account ID parameter.
Create a RAM role.
Log on to the RAM console by using the Alibaba Cloud account to which the source instance belongs.
In the left-side navigation pane, choose .
On the Roles page, click Create Role.
On the Create Role page, set the Select Trusted Entity parameter to Alibaba Cloud Account and click Next.
In the Configure Role step, configure parameters for the RAM role.
Parameter
Description
RAM Role Name
The name of the RAM role. In this example, ram-for-dts is used.
NoteThe name must be 1 to 64 characters in length and can contain letters, digits, and hyphens (-).
Note
Optional. The description for the RAM role.
Select Trusted Alibaba Cloud Account
Select Other Alibaba Cloud Account and enter the ID of the Alibaba Cloud account to which the destination instance belongs.
Click OK.
Grant permissions to the created RAM role.
Click Input and Attach.
On the Permissions tab, click Precise Permission.
In the Precise Permission panel, set Type to System Policy.
In the Policy Name field, enter AliyunDTSRolePolicy.
In the message that appears, click OK.
Click Close.
Modify the trust policy.
Optional. On the Roles page, find the created RAM role and click its name.
On the details page of the RAM role, click the Trust Policy tab.
On the Trust Policy tab, click Edit Trust Policy.
Copy the following code to the code editor:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<Alibaba Cloud account ID>:root" ], "Service": [ "<Alibaba Cloud account ID>@dts.aliyuncs.com" ] } } ], "Version": "1" }
Replace
<Alibaba Cloud account ID>
in the preceding code with the ID of the Alibaba Cloud account that is used to create the DTS task.Click Save trust policy document.
Procedure
Use the Alibaba Cloud account to which the destination ApsaraDB for Redis instance belongs to log on to the new DTS console and go to the Data Synchronization page.
Log on to the Data Management (DMS) console.
In the top navigation bar, move the pointer over DTS.
Choose .
On the right side of Data Synchronization Tasks, select the region in which the data synchronization instance resides.
NoteIf you use the new DTS console, you must select the region in which the data synchronization instance resides in the top navigation bar.
On the Data Synchronization page, click Create Task. In the Create Task wizard, configure the source and destination databases.
WarningAfter you configure the source and destination databases, we recommend that you read the Limits that are displayed on the page. Otherwise, the task may fail or data inconsistency may occur.
Section
Parameter
Description
N/A
Task Name
The name of the DTS task. DTS automatically generates a task name. We recommend that you specify a descriptive name that makes it easy to identify the task. You do not need to specify a unique task name.
Source Database
Select an existing DMS database instance
The instance that you want to use. You can choose whether to use an existing instance based on your business requirements.
If you select an existing instance, DTS automatically populates the parameters for the database.
If you do not select an existing instance, you must configure parameters for the source database.
Database Type
The type of the source database. Select ApsaraDB for Redis Enhanced Edition (Tair).
Access Method
The access method of the source database. Select Alibaba Cloud Instance.
Instance Region
The region in which the source ApsaraDB for Redis instance resides.
Replicate Data Across Alibaba Cloud Accounts
Specifies whether to synchronize data across Alibaba Cloud accounts. In this example, Yes is selected.
NoteThe two accounts can be an Alibaba Cloud account on the China site (aliyun.com) and an Alibaba Cloud account on the International site (alibabacloud.com).
Alibaba Cloud Account
The ID of the Alibaba Cloud account to which the source ApsaraDB for Redis instance belongs.
NoteTo obtain the ID of the Alibaba Cloud account, you can log on to the Account Management console by using this account. The account ID is displayed on the Basic Information page.
RAM Role Name
The name of the RAM role that you created by following the instructions in the Preparations section of this topic.
Instance ID
The ID of the source ApsaraDB for Redis instance.
Database Password
The database password of the source ApsaraDB for Redis instance. The database account that corresponds to the password must have the read permissions. If you forget the password, you can reset the password. For more information, see Change or reset the password.
If you use the default account whose username is the same as the instance ID, you need to enter only the password.
If you use a custom account, specify the password in the
<Custom account username>:<Password>
format. Example: testaccount:Test1234.
NoteThis parameter is optional and can be left empty if no database password is set for the source ApsaraDB for Redis database.
Destination Database
Select an existing DMS database instance
The instance that you want to use. You can choose whether to use an existing instance based on your business requirements.
If you select an existing instance, DTS automatically populates the parameters for the instance.
If you do not select an existing instance, you must configure parameters for the destination database.
Database Type
The type of the destination database. Select ApsaraDB for Redis Enhanced Edition (Tair).
Access Method
The access method of the destination database. Select Alibaba Cloud Instance.
Instance Region
The region in which the destination ApsaraDB for Redis instance resides.
Instance ID
The ID of the destination ApsaraDB for Redis instance.
Database Password
The database password of the destination ApsaraDB for Redis instance. The database account that corresponds to the password must have the read permissions. If you forget the password, you can reset the password. For more information, see Change or reset the password.
If you use the default account whose username is the same as the instance ID, you need to enter only the password.
If you use a custom account, specify the password in the
<Custom account username>:<Password>
format. Example: testaccount:Test1234.
In the lower part of the page, click Test Connectivity and Proceed.
If the source or destination database is an Alibaba Cloud database instance, such as an ApsaraDB RDS for MySQL or ApsaraDB for MongoDB instance, DTS automatically adds the CIDR blocks of DTS servers to the whitelist of the instance. If the source or destination database is a self-managed database hosted on an Elastic Compute Service (ECS) instance, DTS automatically adds the CIDR blocks of DTS servers to the security group rules of the ECS instance, and you must make sure that the ECS instance can access the database. If the database is deployed on multiple ECS instances, you must manually add the CIDR blocks of DTS servers to the security group rules of each ECS instance. If the source or destination database is a self-managed database that is deployed in a data center or provided by a third-party cloud service provider, you must manually add the CIDR blocks of DTS servers to the whitelist of the database to allow DTS to access the database. For more information, see Add the CIDR blocks of DTS servers.
WarningIf the CIDR blocks of DTS servers are automatically or manually added to the whitelist of the database or instance, or to the ECS security group rules, security risks may arise. Therefore, before you use DTS to synchronize data, you must understand and acknowledge the potential risks and take preventive measures, including but not limited to the following measures: enhancing the security of your username and password, limiting the ports that are exposed, authenticating API calls, regularly checking the whitelist or ECS security group rules and forbidding unauthorized CIDR blocks, or connecting the database to DTS by using Express Connect, VPN Gateway, or Smart Access Gateway.
Configure the objects to be synchronized and advanced settings.
Parameter
Description
Synchronization Types
The synchronization types. By default, Incremental Data Synchronization is selected. You must also select Full Data Synchronization. After the precheck, DTS synchronizes all the existing data of the selected objects from the source database to the destination database. The data is the basis for subsequent incremental synchronization.
NoteFull data synchronization is supported only for ApsaraDB for Redis Enhanced Edition (Tair) instances.
Synchronization Topology
The synchronization topology of the data synchronization task. Select One-way Synchronization.
Processing Mode of Conflicting Tables
Precheck and Report Errors: checks whether data exists in the destination database. If no data exists in the destination database, the precheck is passed. If data exists in the destination database, an error is returned during the precheck, and the data synchronization task cannot be started.
Ignore Errors and Proceed: skips the Check the existence of objects in the destination database. check item.
WarningIf you select Ignore Errors and Proceed, data loss may occur in the destination database because data records in the source database overwrite the data records that have the same keys in the destination database. Proceed with caution.
Source Objects
Select one or more objects from the Source Objects section and click the icon to add the objects to the Selected Objects section.
NoteYou can select only databases as the objects to be synchronized. Keys cannot be selected as the objects to be synchronized.
Selected Objects
If you want to select a database to which data is synchronized from DB 0 to DB 255 or filter the data to be synchronized by prefix, you can use the object name mapping feature or the filtering feature. In the Selected Objects section, right-click the database that you want to synchronize. In the Edit Schema dialog box, configure the parameters. For more information, see Map object names and Set filter conditions.
NoteYou cannot map multiple object names at a time.
Click Next: Advanced Settings to configure advanced settings.
Data Verification Settings
For more information about how to configure the data verification feature, see Configure data verification.
Advanced Settings
Parameter
Description
Set Alerts
Specifies whether to configure alerting for the data synchronization task. If the task fails or the synchronization latency exceeds the specified threshold, alert contacts will receive notifications. Valid values:
No: does not enable alerting.
Yes: configures alerting. In this case, you must also configure the alert threshold and alert contacts. For more information, see Configure monitoring and alerting when you create a DTS task.
Retry Time for Failed Connections
The retry time range for failed connections. If the source or destination database fails to be connected after the data synchronization task is started, DTS immediately retries a connection within the time range. Valid values: 10 to 1440. Unit: minutes. Default value: 720. We recommend that you set this parameter to a value greater than 30. If DTS reconnects to the source and destination databases within the specified time range, DTS resumes the data synchronization task. Otherwise, the data synchronization task fails.
NoteIf you specify different retry time ranges for multiple data synchronization tasks that have the same source or destination database, the shortest retry time range takes precedence.
When DTS retries a connection, you are charged for the DTS instance. We recommend that you specify the retry time range based on your business requirements. You can also release the DTS instance at your earliest opportunity after the source and destination instances are released.
Retry Time for Other Issues
The retry time range for other issues. For example, if the DDL or DML operations fail to be performed after the data synchronization task is started, DTS immediately retries the operations within the time range. Valid values: 1 to 1440. Unit: minutes. Default value: 10. We recommend that you set this parameter to a value greater than 10. If the failed operations are successfully performed within the specified time range, DTS resumes the data synchronization task. Otherwise, the data synchronization task fails.
ImportantThe value of the Retry Time for Other Issues parameter must be smaller than the value of the Retry Time for Failed Connections parameter.
Enable Throttling for Full Data Migration
During full data synchronization, DTS uses the read and write resources of the source and destination databases. This may increase the load on the database servers. You can configure the Queries per second (QPS) to the source database, RPS of Full Data Migration, and Data migration speed for full migration (MB/s) parameters for full data synchronization tasks to reduce the load on the destination database server.
NoteThis parameter is displayed only if Full Data Synchronization is selected for the Synchronization Types parameter.
Enable Throttling for Incremental Data Synchronization
Specifies whether to enable throttling for incremental data synchronization. You can enable throttling for incremental data synchronization based on your business requirements. To configure throttling, you must configure the RPS of Incremental Data Synchronization and Data synchronization speed for incremental synchronization (MB/s) parameters. This reduces the load on the destination database server.
Environment Tag
The environment tag that is used to identify the DTS instance. You can select an environment tag based on your business requirements. In this example, no environment tag is selected.
Extend Expiration Time of Destination Database Key
The extended time period for keys synchronized from the source database to the destination database to remain valid. Unit: seconds. If specific commands such as the following commands are used, we recommend that you set this parameter to 600 to ensure data consistency.
EXPIRE key seconds PEXPIRE key milliseconds EXPIREAT key timestamp PEXPIREAT key timestampMs
Configure ETL
Specifies whether to enable the extract, transform, and load (ETL) feature. For more information, see What is ETL? Valid values:
Yes: configures the ETL feature. You can enter data processing statements in the code editor. For more information, see Configure ETL in a data migration or data synchronization task.
No: does not configure the ETL feature.
Save the task settings and run a precheck.
To view the parameters to be specified when you call the relevant API operation to configure the DTS task, move the pointer over Next: Save Task Settings and Precheck and click Preview OpenAPI parameters.
If you do not need to view or have viewed the parameters, click Next: Save Task Settings and Precheck in the lower part of the page.
NoteBefore you can start the data synchronization task, DTS performs a precheck. You can start the data synchronization task only after the task passes the precheck.
If the data synchronization task fails the precheck, click View Details next to each failed item. After you analyze the causes based on the check results, troubleshoot the issues. Then, rerun the precheck.
If an alert is triggered for an item during the precheck:
If an alert item cannot be ignored, click View Details next to the failed item and troubleshoot the issue. Then, run a precheck again.
If an alert item can be ignored, click Confirm Alert Details. In the View Details dialog box, click Ignore. In the message that appears, click OK. Then, click Precheck Again to run a precheck again. If you ignore the alert item, data inconsistency may occur, and your business may be exposed to potential risks.
Wait until the Success Rate becomes 100%. Then, click Next: Purchase Instance.
On the buy page, configure the Billing Method and Instance Class parameters for the data synchronization instance. The following table describes the parameters.
Section
Parameter
Description
New Instance Class
Billing Method
Subscription: You pay for a subscription when you create a data synchronization instance. The subscription billing method is more cost-effective than the pay-as-you-go billing method for long-term use.
Pay-as-you-go: A pay-as-you-go instance is billed on an hourly basis. The pay-as-you-go billing method is suitable for short-term use. If you no longer require a pay-as-you-go data synchronization instance, you can release the instance to reduce costs.
Resource Group Settings
The resource group to which the data synchronization instance belongs. Default value: default resource group. For more information, see What is Resource Management?
Instance Class
DTS provides instance classes that vary in synchronization speed. You can select an instance class based on your business requirements. For more information, see Instance classes of data synchronization instances.
Subscription Duration
If you select the subscription billing method, specify the subscription duration and the number of data synchronization instances that you want to create. The subscription duration can be one to nine months, one year, two years, three years, or five years.
NoteThis parameter is available only if you select the Subscription billing method.
Read and select the Data Transmission Service (Pay-as-you-go) Service Terms.
Click Buy and Start. In the dialog box that appears, click OK.
You can view the progress of the task in the task list.