3.15日 腾讯云迁移到阿里云的割接
事先将域名备案到腾讯云
将https证书也提前导入一份到腾讯云。
先将业务应用迁移一份到腾讯云,并用测试域名提前进行测试。
测试数据迁移过程。测试了一下 将阿里的全库在跳板机上进行备份,备份完成之后导入腾讯云的服务器备份需要3小时,恢复需要8小时。将网速升到了10兆,恢复时间缩短为3小时。
在3.15号白天在网站和app挂出晚上停机维护的公告。晚上24点之后进行迁移。
首先 关闭阿里云slb的监听,确保迁移途中没有用户可以请求服务器。
关闭定时任务和脚本
由于迁移任务需要由我一个人完成,所以能用脚本代替的尽量不要手动,能定时启动的尽量不要手动。
mysql迁移
使用mysqldump 命令迁移,测试的时候输出命令耗时的时间,用来推测迁移大致需要花费的时间。
mysqldump -E -R -u root -p$password -h $host $dbname>/mnt/0315.sql
echo $SECONDS >>/tmp/log.txt
mysql -u root -p$password -h $host $dbname </mnt/0315.sql
echo $SECONDS >/tmp/log.txt
es数据迁移 同样也可以输出备份恢复时间
跳板机使用elasticdump
echo ‘开始从阿里云ecs备份导出’
elasticdump --input=http://$ali_ip:9200/$index_name --output=/Devops/$name.json
echo '开始恢复导入腾讯云ecs'
elasticdump --input=/Devops/$name.json --output=http://$tx_ip:9200
数据应该是没有问题的。
mongo
echo "开始备份阿里云mongo"
mongodump --host $ip:$port -u root -p $password --authenticationDatabase=admin --db=$dbname -o /Devops/mongo/dump_0315
echo "开始恢复mongo至腾讯"
mongorestore --host $ip:$port -u mongouser -p $password --authenticationDatabase=admin --dir=/Devops/mongo/dump_0315
mongo迁移过去之后 需要手动创建用户
redis
通过阿里云redis备份恢复redis至ecs,此处为测试的图片
直接恢复rdb文件
到阿里云的数据安全处下载最新的全量备份文件(24点的时候,手动进行一次备份)
下载crs-port
https://pan.baidu.com/s/1TtQN-T-1VTmJofMh17qC7Q
./crs-port restore -n 16 -i /tmp/2.8/dump.rdb -t 172.17.16.9:6379 -A Hangzhou123
如果上面恢复过程出现问题,可以尝试先恢复到本地,如果没有问题,再save之后 再导入到腾讯云。步骤如下
./redis-port restore --input=/tmp/hins5893459_data_20190306111745.rdb --target=localhost:6379 --auth=Hangzhou@123 --rewrite
安装好本地redis
下载redis-port
https://pan.baidu.com/s/1tQT6-jyt51TFEZndBa8P2A
恢复数据
redis-port restore --input=/tmp/back/hins4697397_data_20190222141612.rdb --target=localhost:6379 --auth=password --rewrite
恢复出来的redis数据大小可能小于当前数据库的大小,原因是因为备份是备份的没有过期的key,但是内存占用还是有已过期未逐出的key。
将自建redis的数据save保存到本地
将dump文件拷贝至跳板机
在腾讯云上恢复redis数据
./crs-port restore -n 16 -i /usr/local/dump.rdb -t $ip:$port -A $password
提前添加好域名的slb转发。
静态图片使用scp,oss文件采用腾讯自带的oss迁移到cos的功能。
完成上面步骤等待测试之后,修改dns解析,将阿里云的按量的服务释放,包月的服务取消自动续费,迁移就完成了。自己迁移的时候证书忘记导了,slb转发直接把测试域名换成了生产域名,否则腾讯云修改和添加slb规则那不是一般的慢,提交一个等个10s。再说一下费用,主要是数据库,阿里云用的是独享的32G腾讯云用的是22G,内存腾讯的数据库比较高,阿里云原价是1.3W,腾讯2.5W一个月。结果费用腾讯贵了1W多。报表从2小时,提升到1.5小时。感觉性价比并不高。mongo 最低配置腾讯需要900一个月,阿里云的最低配置可以更低一些,90一个月。真是被当猪杀。