欢迎光临
我们一直在努力

腾讯云服务器备份,腾讯云轻量级应用服务器数据迁移

项目背景

2023年初,突然接到一个老项目迁移的工作任务,总结特点:“老大紧慢”

老:项目已经迭代很久了,时间长,接手的人一波又一波,好多文件都不可考了,

大:整个数据库300G,系统文件等500G

紧:腾讯云服务器快过期了,慢一步就进回收站,让你掏钱,此处省略。。。

慢:带宽有限,20M 10M,下载文件慢,对于大文件如何操作

对于资深(大龄)程序员,不为困难找借口,只为成功想办法。干他

迁移分析

没有代码,只有服务器,难度是肯定的,首先与领导沟通,真实的迁移背景是什么,腾讯云花钱多(肯定不是),了解背景后,花了一下午时间遍历10+台机器,整理出基础方案,协调资源,完成迁移。

一、知己知彼:遍历10+台机器都做了什么?

1. 查看磁盘空间

目的是搞清楚每台机器上的挂载了哪些盘

命令:df -h

2. 查询目录磁盘内的文件

目的是搞清楚目录大文件有哪些,和业务确定优先级

命令:du -sh *

此处一定抓大放小,不要此时就陷入细节,在有限时间里面保证最重要的数据能拷走

3. 查询运行程序进程

目的是搞清楚每台服务器上跑了什么应用,中间件,监控等

命令:ps -ef |more

4. 梳理初步迁移方案

二、资源协调:基于初步分析结果,协调资源具体实施

对于短时间内完成迁移,需要专人去做一项事情,避免顾此失彼,导致文件丢失,迁移不完整;

其中文件迁移可以独立分配专人处理,只需要保证文件一对一,完成压缩,拷贝,大小一致即可;

对于中间件的迁移可以安排专人处理,设计到历史数据的迁移备份;

对于应用部署可以再分配一人处理,应用是微服务架构,需要部署注册中心、配置中心等基础组件,应用的运行依赖中间的部署

三、组织实施:优先级把控,各环节依赖提级

1. 大文件迁移

主要有两种方法:

1)使用rsync同步

命令:yum -y install rsync

拷贝命令:

rsync -rvlt  root@111.111.111.111:/home/data  /home/

2)使用sftp+wget

sftp的安装命令:yum install openssh-clients

服务器端使用方法为:sftp -oPort=36000 test@10.0.11.11

下载命令:yum install -y wget

wget --ftp-user=test --ftp-password=test ftp://10.0.11.11/file/*

2. 中间件-Rabbitmq安装

1)Rabbitmq安装

hostnamectl set-hostname yijie10

2)erlang安装

方式一:rpm包安装方式
STEP 1: Have you installed this repository?
If not, run the installation script, or manually install the repository before installing this package
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.10-1.el7.x86_64.rpm/download.rpm?distro_version_id=140
STEP 2: Install the package
sudo yum install -y erlang-23.3.4.10-1.el7.x86_64

3)socat安装

wget http://www.rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/socat-1.7.3.2-2.el7.x86_64.rpm
rpm -ivh  socat-1.7.3.2-2.el7.x86_64.rpm

4)rabbitmq安装

rpm -ivh erlang-23.3.4.10-1.el7.x86_64.rpm
yum remove erlang
erl -v
rpm -ivh erlang-23.3.4.10-1.el7.x86_64.rpm
erl -v
rpm -ivh rabbitmq-server-3.9.2-1.el7.noarch.rpm

5)Rabbitmq 启动

开机启动

systemctl enable rabbitmq-server
systemctl restart rabbitmq-server
systemctl status rabbitmq-server

6)rabbitmq管理

配置用户和权限

rabbitmqctl list_users
rabbitmqctl add_user admin test124
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
rabbitmqctl delete_user guest
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl change_password admin 'test124'
rabbitmqctl set_user_tags admin administrator
/etc/rabbitmq/rabbitmq.config第一次打开时会自动创建,直接在里面输入内容即可

6) 配置外部访问

vi /etc/rabbitmq/rabbitmq.config修改所在行如下图所示
[{rabbit, [{loopback_users, ["admin"]}]}].

3. 中间件-Mysql安装

生产环境Mysql主从300G数据迁移

四、应用部署(具体应用具体分析)

五、数据割接

六、业务验证

整个迁移过程是很紧张,对于历史目录很难考证,应考尽拷,但是带宽是有限的,我们优先拷贝了中间件有数据的mysql、redis等,然后拷贝了应用部署相关的jar及部署脚本、配置参数文件等,基本保障应用部署能够正常进行,nginx配置要重视,一般都是应用的入口文件,对后面验证有很大帮助。大文件的拷贝也是个问题,使用rsync能够满足需求,拷贝效率也还可以,也可以实现增量拷贝,很方便。

划重点:对于资金充沛的情况下是可以选择镜像恢复的,基本数据是全量的,我们这个方案省了几万块,通过最大拷贝,小马拉大车,

小技巧:可以通过缩减配置(坑1:一定要在过期前设置,过期后无法设置),腾讯云的到期后,说是有两天的期限,实测,只有一天多(坑2:腾讯云到期会送到回收站内,此刻你的服务器已经gg,无法外部链接),拷贝文件尽量在到期之前完成!

超维链习社得道前,砍柴时惦记着挑水,挑水时惦记着做饭;得道后,砍柴即砍柴,挑水即挑水,做饭即做饭。47篇原创内容

公众号

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。