通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair

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

1. 准备资源迁移

1.1. 源代码

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

图片[1] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

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

图片[2] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

1.2. 目标

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

图片[3] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

2. 配置源数据库环境

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

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

图片[4] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

图片[5] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

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

图片[6] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

图片[7] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

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

图片[8] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

图片[9] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

图片[10] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

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

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

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

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

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

sudo yum install gcc jemalloc-devel openssl-devel tcltcl-devel -ysudo wget http://download.redis.io/redis-stable.tar.gzsudo tar xvzf redis-stable.tar.gzcd redis-stablesudo make BUILD_TLS=yessrc/redis-cli -c -h clustercfg.test-20230904.vsntkk.apne1.cache.amazonaws.com --tls -a xxxxxxxxxxxx -p 6379

图片[11] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

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] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

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

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

图片[13] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

图片[14] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

图片[15] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

图片[16] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

图片[17] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

5.3. 写入增量数据并校验

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

图片[18] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

图片[19] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

图片[20] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

图片[21] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

图片[22] - 通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair - MaxSSL

6. 总结

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享