记一次阿里云服务器迁移经验

前因:因阿里云服务器到期,续费价格昂贵,最终选择在阿里云注册个新账号享受新用户福利,然而产生需要迁移服务器的情况。

准备工作:保证新服务器和旧服务器在同一地域,同一网络,磁盘和旧服务器保持一致的配置,如果之前进行过磁盘扩容,后面也要保证一样的配置(概括:相同配置 相同地域)。

注意:尽量同一地域!尽量同一地域!尽量同一地域! 可以方便很多!

 

第一步:使用阿里云制作磁盘镜像,最好在无任何用户操作的时候进行制作,可以保证镜像数据的准确,制作完成后分享镜像到新的账户下。

第二步:新服务器重装系统,从共享镜像中安装旧服务器制作出的镜像。

第三步:如果服务(代码)中牵扯到使用IP的地方需要重新配置并且打包。

 

上述步骤均为在夜间或者无任何操作时的方案

但是在实际迁移过程中难免出现用户操作,首先导致的就是数据库的数据不一致,平常的做法是通过navicat这类工具导出数据脚本,再从新的服务器导入,但是如果用户量非常大的情况下,来回导数据就需要大量时间,可以在1小时内完成数据库迁移的方式总结如下:

1.通过命令导出数据库脚本 大约1分钟   (这里会看到命令窗口一直卡在这个命令,这时候千万记住不是卡死了,是正在备份,你可以前往你指定的路径看文件是否创建出来,大小也在逐渐增长)

//导出整库
mysqldump -u [username] -p [databasename] > filename.sql
//导出单独某张表
mysqldump -u [username] -p [databasename] [tablename] > filename.sql

更多命令 本图来自:https://blog.csdn.net/weixin_30783913/article/details/94914762

 

 

 2.按照准备工作新旧服务器虽然不在一个账号下,但是在同一地域,同一网络,通过阿里云建立内网,互传文件,内网传输的速度你懂得。

  建立共享的文档 : https://help.aliyun.com/document_detail/65936.html?spm=a2c4g.11186623.4.1.56964c07B09B58  

  共享完成之后可以通过ping测试一下内网地址是否连通 (不通可以去看看安全组,直接全部放开吧,迁移完再重新设置)

 3.通过命令拉取旧服务器备份好的sql脚本

scp -P 2223 root@47.20.30.30:/root/test.tar.gz /home/test.tar.gz

 -p为端口 如果是默认的22则不填写,47.20.30.30是IP这里如果前面建立了共享就可以直接使用内网的IP /root/test.tar.gz 被拉取的资源路径(也就是旧服务器的) /home/test.tar.gz拉取到哪里(也就是新服务器你要把拉取的文件放在哪里)

4.导入sql脚本  (这个花费的时间要取决于你的数据大小,我8G的数据库用时在15分钟后以内,记住如果终端窗口没反应不是卡死,也是在导入数据,千万不要以为卡住了,提前结束,要不然又得重来,要有耐心。)

mysql -uroot -p database < filename.sql

5.然后如果其他文件的时效性出现不准确,就需要根据业务进行迁移,不过这时候基本上迁移的数据很少了,比如这段时间用户上传的图片这类的。打包拖过来就是了。

如果是牵扯到nginx这类的有自己的配置文件,里面配置了IP这些的,则需要重启下服务。

6.域名重新解析,这里可能是因为dns缓存的问题,导致更换解析后,我这边还是访问不到,和不稳定,但是30分钟左右基本完全恢复。

 

本人在使用到注册中心时遇到的一个问题,如果有相似的情况可以参考:

使用到的是consul,因为服务器刚迁移过来,旧服务器也没有停机,导致新服务器中的服务也在旧服务器的注册中心注册了一遍(如果在迁移后立马修改了各个服务的配置文件则不会出现),然后出现了服务器不可用等乱七八糟的情况,

这里因为我对微服务不是很懂,没办法给很清楚的解释。但是解决方法可以可以停止旧服务器,新服务器重启注册中心,检查各个服务的配置文件。


posted @ 2021-11-29 11:54  洋三岁  阅读(877)  评论(0编辑  收藏  举报
友情链接: 梦想农夫