本文介绍如何通过火山引擎的数据库传输服务 DTS 将华为云的分布式缓存服务 DCS 单机或主备的实例数据迁移至火山引擎。
注意事项
本文仅适用于迁移华为云实例类型为单机、主备的实例。
DTS 在执行全量数据迁移时将占用源端和目标端一定的资源,可能会导致数据库服务器负载上升。如果数据库业务量较大或服务器规格较低,可能会加重数据库的压力,甚至导致数据库服务不可用。建议在执行数据迁移前评估业务压力,在业务低峰期执行数据迁移。
对于迁移失败的任务,DTS 会根据错误重试时间内自动恢复。当您需要将业务切换至目标实例时,请务必立即结束或释放该任务,避免该任务自动恢复后,导致源端数据覆盖目标端的数据。
多 DB 迁移场景下,需注意源数据库与目标数据库间的 DB 映射关系,避免出现非预期的数据覆盖。
华为云 DCS 的 Redis 4.0、Redis 5.0 和 Redis 6.0 版本不支持绑定弹性 IP,因此无法直接通过公网访问。
准备工作
数据库类型 | 准备工作 | 说明 |
---|
源端 | 开启 psync 和 sync 命令 | 您需要在华为云的控制台内提交工单申请开启目标实例的 psync 和 sync 命令。 |
放开 0.0.0.0/0 网段 | 登录华为云的云服务器 ECS 控制台。 在顶部菜单栏,选择地域。 说明 地域需要和华为云待迁移目标实例的地域保持一致。 在左侧导航栏,单击安全组。 在安全组页面,单击创建安全组。 在创建安全组面板,配置以下参数信息: 单击确定。
|
创建云服务器 | 登录华为云的云服务器 ECS 控制台。 在顶部菜单栏,选择地域。 说明 地域需要和华为云待迁移目标实例的地域保持一致。 在左侧导航栏,单击弹性云服务器。 在弹性云服务器页面,创建云服务器,部分参数如下所示。 单击下一步:网络配置。 在网络配置配置向导页面,配置参数,部分参数如下所示: 单击下一步:高级配置。 在高级配置配置向导页面,配置参数。 单击下一步:确认配置。 在确认配置配置向导页面,配置参数,然后单击立即购买。
|
登录 ECS | 成功创建云服务器后,获取公网 IP,确认是否能 ping 通 ECS 的公网 IP 地址。 ping 通 ECS 的公网 IP 后,登录 ECS。
|
安装 CLI 工具 | 执行以下命令,安装 CLI: wget https://download.redis.io/releases/redis-6.0.9.tar.gz
执行以下命令,解压 CLI: tar xzf redis-6.0.9.tar.gz
执行以下命令,进入安装 CLI 的文件中: cd redis-6.0.9/src
执行以下命令,编译 CLI: make
执行以下命令,安装 CLI 依赖: make install
|
在 ECS 上安装并配置 Nginx | 安装 Nginx 执行以下命令,添加 Nginx 到 yum 源。 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
执行以下命令,查看是否成功添加 Nginx。 yum search nginx
执行以下命令,安装 Nginx。 sudo yum install -y nginx
执行以下命令,安装 stream 模块。 yum install nginx-mod-stream --skip-broken
执行以下命令,启动 Nginx。 sudo systemctl start nginx.service
执行以下命令,设置 Nginx 为开机自动运行。 sudo systemctl enable nginx.service
在本地浏览器中输入服务器地址(ECS 公网 IP 地址),查看是否安装成功。 若显示为 Welcome to nginx! ,则表示成功安装 Nginx。
|
配置 Nginx 执行以下命令打开配置文件。 cd /etc/nginx
执行以下命令,修改配置文件。 vi nginx.conf
在配置文件中增加以下内容,如果存在多个 Redis 实例需要公网连接,可以配置多个 server,使用 proxy_pass 为实例的连接地址。 stream {
server {
listen 8081;// 监听端口
proxy_pass redis-900ae****-a9e3-45ec-804d-17f2******.cn-north-1.dcs.myhuaweicloyd.com:6379;// Redis 实例的连接地址。
proxy_socket_keepalive on;
proxy_timeout 60m;
proxy_connect_timeout 60s;
}
}
执行以下命令,重启 Nginx。 service nginx restart
执行以下命令,查看是否成功启动。 netstat -an
若 8080 和 8081 两个端口都在监听状态,则表示成功启动 Nginx。 执行以下命令,验证是否成功连接 Redis 实例。 redis-cli -h <ECS 的公网 IP> -p <监听端口号> -a <redis 实例密码>
执行以下命令,查看源端存在的 Key 的数量。 info keyspace
|
修改源端实例安全组 | |
目标端 | | 创建缓存数据库 Redis 版数据库和设置默认账号密码。详细操作,请参见创建实例和设置默认账号密码。 |
连接实例并查看源端的数据量 | 连接实例。详细操作,请参见通过私网连接实例。 执行以下命令,查看目标端中 Key 的数量。 info keyspace
|
操作步骤
具体的参数配置,请参见公网自建 Redis 迁移至火山引擎版 Redis。
结果验证
执行以下命令,查看目标端中 Key 的数量,如果源端的数据按需求全部迁移至目标端,则迁移成功。
info keyspace