本文通过示例介绍了 RIOT 如何轻松地将数据从 AWS ElastiCache 迁移到云原生内存数据库(如 Tair 和云数据库 Redis 版)。

1. 准备资源迁移

1.1. 源代码

AWS ElastiCache cache.r6g.xlarge。它有三个数据分片,与 Redis 6.2 兼容。

1

AWS EC2 t2.medium CentOS 7(它与 AWS ElastiCache 位于同一 VPC 中,因为 ElastiCache 不支持公网连接。)

2

1.2. 目标

阿里云 Tairtair.rdb.with.proxy.24g。它有三个数据分片,与 Redis 6.0 兼容。(开启公网地址,白名单设置为EC2公网IP地址。)

3

2. 配置源数据库环境

2.1 将源实例的 AWS ElastiCache 参数和 notify-keyspace-events 的值更改为 KEA。

打开 AWS ElastiCache 控制台左侧的参数组,然后根据当前版本创建一个新模板,例如 Redis 6.x。

4

5

2.2 将 notify-keyspace-events 的值更改为 KEA,将 cluster-enabled 的值更改为 yes。

6

7

2.3 在 Elasticache 实例上应用新的参数模板

8


 

9

10

3. 在 EC2 实例上部署 RIOT 工具

sudo yum install java-1.8.0-openjdk -y
wget https://github.com/redis-developer/riot/releases/download/v3.1.5/riot-3.1.5.zip
unzip riot-3.1.5.zip

4. 在 EC2 实例上安装 Redis 客户端

在 EC2 实例上部署 Redis 客户端并连接到 ElastiCache 实例以创建测试数据。

注意:如果已存在包含数据的 ElastiCache 实例,则无需重新创建测试数据。您可以在 EC2 实例上安装 Redis 客户端。

sudo yum install gcc jemalloc-devel openssl-devel tcltcl-devel -y
sudo wget http://download.redis.io/redis-stable.tar.gz
sudo tar xvzf redis-stable.tar.gz
cd redis-stable
sudo make BUILD_TLS=yes
src/redis-cli -c -h clustercfg.test-20230904.vsntkk.apne1.cache.amazonaws.com --tls -a xxxxxxxxxxxx -p 6379

11

5. 开始迁移

5.1. 在 EC2 实例上启动 RIOT 工具

登录 EC2 主机,使用 source 和 target 参数,启动 RIOT 程序同步全量数据和增量数据。

cd /home/centos/riot-3.1.5/bin
./riot -h clustercfg.test-20230904.vsntkk.apne1.cache.amazonaws.com --tls -a xxxxxxxxxxx -c -p 6379 replicate -h r-gs5u6x8xuwywt0q8qnpd.redis.singapore.rds.aliyuncs.com -p 6379 --user=poc --pass=xxxxxxxx -c --mode live --progress log

12

5.2. 登录目标实例 Tair 验证数据

访问 Tair 控制台,通过 DMS 登录数据库,查询数据,检查全量数据是否迁移正常:

13


 

14


 

15


 

16

17

5.3. 写入增量数据并校验

在源实例 Elasticache 中插入增量数据,并在目标实例 Tair 中验证增量数据:

18


 

19


 

20


 

21

22

6. 总结

使用 RIOT,您可以轻松地将数据从 AWS ElastiCache 快速迁移到云原生内存数据库,例如 Tair 和云数据库 Redis 版。与其他方法(如redis-shake)相比,该工具支持全量迁移和增强复制,迁移过程中无需停机,是提高效率的非常好的工具。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐