记录一次系统进行服务器迁移的过程

背景

早上上班,客户群里反馈系统登录不了,根据反馈的系统页面报错信息,可以判断出是服务器磁盘不足导致。由于系统有mysql数据库、上传图片附件、生成pdf文件等占用磁盘空间大的问题,最后通过定位,证实了为图片目录过大,将一点几个T的磁盘分区占满了,为了能保证系统能正常启动,临时将历史图片目录压缩成tar,移到根目录下面。

新机器职责划分

由于不是长久之计,所以与客户反应了情况,申请了几台私有云主机,并将机器职责分别划分为:

系统部署、定时任务、NGINX

数据库

微信公众号

文件服务、服务灾备、数据备份

docker环境配置

由于服务都是docker部署的,所以先部署docker环境,参考我的另一篇文章部署

备份docker镜像

从源服务器备份镜像

命令说明: -o代表需要将镜像备份到的目录 test:2024.09.06.1代表需要备份的镜像名称(这里记住用镜像名称,如果使用惊醒id备份的话,后期reload后镜像出不来)

服务镜像
docker save -o /container_bak/test.tar test:2024.09.06.1

mysql镜像
docker save -o /container_bak/mysql.tar mysql:2024.09.06.1

redis镜像
docker save -o /container_bak/redis.tar redis:2024.09.06.1

载入docker镜像

在目标服务器上,通过sftp链接源服务器后,将备份的镜像文件下载过来,进入tar所在目录,载入

服务镜像
docker load -i test.tar

mysql镜像
docker load -i mysql.tar

redis镜像
docker load -i redis.tar

docker save -o /container_bak/redis.tar de25a81a5a0b
docker load -i redis.tar

运行容器

服务镜像

docker run -d -v test_data:/test -v /data/test/upload:/uploadFile --net=host --restart=on-failure:1 -e “SPRING_PROFILES_ACTIVE=prod” --name test test:2024.09.06.1

mysql镜像
docker run -d -v /data/mysqldata:/var/lib/mysql -v /runa/mysqlconf:/etc/mysql --restart=always -e MYSQL_ROOT_PASSWORD=“qR#r&FC0IHg1O%8@TAqa” -e TZ=Asia/Shanghai --network host --name mysql mysql:5.7.28

redis镜像
docker run -d -v /test/redis/data:/data -v /test/redis/redis.conf:/usr/local/etc/redis/redis.conf -v /runa/redis/redis.log:/usr/local/etc/redis/redis.log --restart=always --network host --name redis redis:5.0.6 redis-server /usr/local/etc/redis/redis.conf

通过sftp下载备份的文件

登录sftp
sftp root@192.168.x.x

拷贝文件

将源主机/data下所有目录及文件拷贝到当前主机的/test目录下

执行命令

get -r /data /test/

参数说明

-r 代表需要拷贝目录及其下所有文件

/data 源服务器目录

/test 目标机器目录

期间遇到的问题

如何挂在新磁盘

查看磁盘状态

lsblk

分区

fdisk -l

写入配置

vi /etc/fstab

重启机器

reboot

sftp不通

A主机连不上B主机22端口,请在B主机上面查看

vi /etc/hosts.allow

systemctl restart sshd

防火墙

查看防护墙状态

firewall-cmd --state

加白名单

firewall-cmd --permanent --zone=trusted --add-source=172.x.x.x

放开端口

firewall-cmd --permanent --zone=public --add-port=3306/tcp

重新加载

firewall-cmd --reload

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值