阿里云跨地域共享镜像与 rds 数据库迁移

这是一篇工作总结性的文章

测试环境和正式的生产环境都在 阿里云 ECS  上,但由不同的账户持有(就是移交给客户)。他们在不同的地域。而且原先的数据库使用的是 ECS 上自建的 MySQL 数据库,现在要迁移到 阿里云的 RDS 。

所以就用到了阿里云跨地域共享镜像。这个对部署来说还是挺方便的。

首先要创建自定义镜像,在实例的操作中可以找到对应的操作。

由于阿里云的自定义镜像不能跨地域使用,所以我们需要复制镜像到目标地域。截止到本文发表时间,复制镜像功能出于公测状态,需要提交工单申请,参考这里 复制镜像。以后应该就不用申请可以直接用了吧。工单陆续交流了接近 2 小时,终于开通了,可能中午吃饭时间吧。还是有点慢的。

复制到目标地域后,就可以分享镜像给指定的用户了。共享镜像 参考这里。
操作很容易,不过要最好看下注意事项。

然后可以登录收到共享的账户,更换系统盘,使用共享的镜像来创建实例了。

阿里云不同地域间的产品内网不互通,订购后不支持换地域。所以 rds 要和云服务器买在一个地域内。不同的可用区容灾能力更高,相同的可用区网络延时更低。参考这里

在阿里云的后台控制面板中,先在数据库连接中,调整网络类型和云服务器一致(都是专有网络或者都是经典网络)

然后要设置白名单,不然无法连接。

创建数据库账户,授权等。

最后在备份恢复中,找到迁移数据库。按照提示一步步走。原来我使用的数据库版本是 MySQL 5.7 ,阿里云的 RDS 为 5.6 ,还是成功迁移了。目前没发现问题。

最后我们更改<magento root>/etc/env.php 中关于数据库连接的部分。

然后重新测试下站点(域名解析什么的就略过了),这下就成了。

但是当我们使用命令行 php bin/magento setup:upgrade 的时候,会提示权限不足。

看起来阿里云 rds 默认的账户权限不够。于是我们创建了高权限账户,然后登陆数据库,通过 SQL 语句来授权。就像这样:

GRANT ALL ON `dbname`.* TO `dbuser`@'%';

这下大功告成了!

发表评论

电子邮件地址不会被公开。 必填项已用*标注