这篇博文写得比较简短,主要是分享一个实测的数据:同样的备份文件,在阿里云云服务器上恢复需要1小时16分钟,而在阿里云RDS中只需10分钟。
下面是将数据库从云服务器向RDS迁移的操作步骤:
测试用的是5型RDS(8G内存,400G存储,800个最大连接)
1. 在云服务器上对迁移的数据库CNBlogsText进行完全备份,备份前该数据库的恢复模式要是Full。
测试中云服务器上60G数据库的带压缩的完全备份耗时37分钟。
2. 进入阿里云网站上的RD管理控制台,打开“实例应用管理”,切换至“数据库管理”,点击“增加数据库”按钮。
a. 填入将迁移过来的数据库名称
数据库名称竟然不允许大写字母,不知设计者出于什么样的考虑。幸好SQL Server不区分大小写,这里填入小写字母也不影响使用。
b. 然后填入访问这个数据库的用户名与密码。用户名不允许大写字母就算了,连密码也不允许大写,密码不是越复杂越好吗?这里更搞不懂设计者的意图。
c. 填好之后,点击“提交”,然后RDS开始创建数据库。。。
3. 等数据库创建好之后,点击“数据迁入”,获取FTP信息与备份文件需要更改的文件名(比如这里是cnblogstext_1365466291652.bak)。
4. 回到源数据库服务器所在的云服务器,将之前的完全备份文件重命名为cnblogstext_1365466291652.bak。
5. 添加一条路由信息,让FTP走内网(上传速度快)
route -p add RDS_FTP_IP 内网网关
6. 用FTP客户端连接RDS的FTP服务,需要注意的是FTP的加密类型要选择“要求隐式的 FTP over TLS”。
7. 通过FTP上传备份文件,在测试中14G文件不到10分钟完成上传。
8. 上传成功后,在RDS的实例应用管理中会看到上传的文件,如下图:
9. 然后点击“数据导入”,通过手机验证之后,就开始进行导入(实际就是对刚才上传的备份文件进行恢复操作)。
10. 在测试中,在RDS中恢复只需10分钟左右,而之前在云服务器上同样的备份文件恢复耗时1小时16分钟。
真是天壤之别!根据阿里云提供的数据,5型RDS能支撑4000IOPS,而昨天我们的数据库达到600IOPS,云服务器就支撑不住,造成数据库写入超时。
都是服务器,为什么差距这么大呢?RDS没有使用阿里云的虚拟化技术,如果抛开硬件本身的性能差别,RDS与云服务器之间的差距越大,越说明阿里云的虚拟化技术任重而道远。