以前用我们自己购买托管或者租用的服务器时,备份的用途主要有两个方面:
- 短期问题是怕硬件突然损坏,更换硬件后,需要有备份能及时恢复;
- 长期问题是留有很久以前的内容,万一需要查找以前的信息可以拿出来。
而从去年把自己的服务器全面转为云服务器后,上面的二个问题分别如下:
- 硬件损坏基本上就不存在了,无论是ECS还是RDS都是有热备份的,硬件出问题会随时由备用机顶替,基本上都是无间断的;
- ECS可以有硬盘快照功能,在需要的时候可以回滚,RDS也有备份周期可以设定,可以恢复到使用中的实例或者临时实例。
从上面来看基本上只剩下一种问题,那就是需要备份比较长时间以前(例如几个月甚至几年前)的内容,在万一需要查找以前信息的时候可以找出来,我们前一段时间一直在按月备份ECS上的数据,将Web目录以及配置文件打包压缩,然后下载到办公室的大容量移动硬盘上,而RDS上的数据刚开始也可以下载到办公室,但随着数据量的增加,备份文件到了几十G、上百G的时候,需要太长时间下载而报错不成功,所以就暂停了下载。
今年以前国内外所有的独立服务器全部切换到阿里云上,Drupal系统也进行了6到7的升级,需要进行一次全面的数据库备份,这几天尝试了一下,可以成功,一些要点记录如下:
- 找阿里云客服咨询过,RDS的备份文件下载地址从生成的时候算起24小时有效,超过24小时就无效了,难怪以前下载时间太长就报错;
- 可以在ECS上留有足够的硬盘空间,采用内网地址下载,速度可以达到10M Byte/s以上甚至达到40M Byte/s的普通硬盘传输瓶颈,这样即使上百G的备份文件,几个小时也可以下载完;
- 原来以为RDS备份文件的内网地址不能在跨区的ECS上使用(备份操作的页面提示是:“目前下载备份文件暂时免费,以后下载备份文件将收取相应的流量费用,ECS与RDS地域相同时,ECS上使用内网下载地址,下载速度和安全性更高”),但实际上发现是可以的,在国内ECS上下载国外RDS的备份文件,使用内网地址一样有效,而且速度也可以达到10M Byte/s左右,Linux ECS下可以使用这个命令来下载:wget "http://rdsbak-ot7.oss-us-west-1-internal.aliyuncs.com/custins435xxx/hins2070xxx_data_20170131223xxx.tar.gz?OSSAccessKeyId=c9gzsqpauj3duw5whwdv4xxx&Expires=1486170xxx&Signature=fRlxHjoCSe5w0UxUOM20CXzkxxx%3D";
- 从国内ECS上的硬盘把RDS备份文件下载到办公室或者家里的移动硬盘上,速度基本上可以达到ECS的外网带宽峰值,例如10M bit/s的带宽可以达到1.2M Byte/s的下载速度;
- 以前一般是一直开着台式机或者笔记本电脑下载到移动硬盘,如果需要好多天的话,耗电很厉害,现在尝试《树莓派Raspberry_Pi上手做内部小型服务器》,把移动硬盘通过USB接口连接树莓派,再把树莓派和路由器用有线连接,功耗、速度都不错;
- 阿里云现在也提供“归档存储”服务,以低廉的价格(0.06元/G月)提供“冷备份”服务,这样100G1年的存储费用也只有72元,比自己购买大容量硬盘的价格也贵不了非常多,可以考虑以后采用,目前阿里云只在深圳、杭州、北京提供,而我们的ECS在青岛和国外,是否可用先要尝试一下。
评论1
阿里云官方文档《RDS MySQL
阿里云官方文档《RDS MySQL 物理备份文件恢复到自建数据库》
wget -c '<数据备份文件外网下载地址>' -O <自定义文件名>.tar.gz