记一次服务器mysql+redis数据迁移

记一次服务器mysql+redis数据迁移

最近公司准备把原来的新加坡服务器迁到美国,由于公司没有专门的运维,所以只能硬着头皮顶上了。

项目环境:

jdk8+redis5.0.5+mysql5.7
服务器两台,一台作为应用服,一台数据库。这里只针对单机redis和mysql,对于集群环境未试验过,等待大佬指导。

redis备份

redis默认使用dump方式备份,个人认为好处是恢复数据比较快,缺点是可能会出现丢失数据

可选择开启aof备份方式,个人认为好处是几乎不会丢失数据,缺点是恢复数据时可能会稍慢

	原服务器redis采用的是dump+aof备份的方案,具体方式可以参照网上各种博客,好处是几乎不会丢失数据,这里只做简单介绍。
vim redis.conf
只需要修改 appendonly  yes //注:通过vim方式修改需重启redis
或者采用热更新的方式:
链接redis,我这里采用redis manager 可视化工具链接。
控制台输入:	config set appendonly yes	
注意:在redis开启aof+dump双模式备份时,如果采用vim的方式,修改aof后,重启redis可能会出现数据被覆盖的情况(此处已踩坑),请做好数据备份。建议使用热修改的方式。且保证:aof-use-rdb-preamble yes(redis安装时,默认为yes)

redis数据恢复

首先需要再新的服务器中装好redis,请自行百度,这里不做介绍。需要注意的是,redis的版本请使用相同版本。
dump模式的恢复:
	直接把原服务器上的dump文件替换新服务器redis目录下的dump文件,重启redis即可
aof模式的恢复:
	和dump模式类似,需要注意的是,
	要先	vim redis.conf
	设置 appendonly yes 
	需要注意的是,要保证 aof-use-rdb-preamble no
	如果为yes的话,则代表同时开启rdb+aof混合模式
	注: redis安装成功后,默认 aof-use-rdb-preamble yes
rdb+aof混合模式恢复
	注:使用此操作前,请做好数据备份
	1:进入新服务器
	2:停止redis
	3:vim redis.conf
	4:修改 appendonly no
	5:把需要恢复的dump文件替换新服务器上的dump文件
	6:启动redis
	7:链接redis检查数据是否恢复,如未恢复,检查上面的步骤是否存在问题
	8:拷入aof文件
	9:进入redis控制台
	8:config set appendonly yes
	9:等待redis把追加的数据加载到内存中
	10:redis数据恢复完成

mysql 备份

此处采用的全备份,作为一个菜鸡后端肯定是不会shell脚本的,所以找运维朋友要了一个shell脚本 ^_^
https://pan.baidu.com/s/1DCxLiZCEtDglL_PmMzx3gw  提取码:hl65
把脚本中的数据库账号、密码、端口、地址、需要备份的数据库等改成你自己的,然后在linux中启动该脚本即可,需要注意的是,由于脚本在windows中编写的,所以脚本中部分字符的格式与linux中不同,需要通过命令进行格式转化:
vim mysql_backup.sh
:set ff=unix
保存文件
文件赋权: chmod 777 mysql_backup.sh
运行 ./mysql_backup.sh
等待备份完成

此脚本默认备份文件存放目录为 /home/mysqlquan

mysql数据恢复

把备份好的文件拷入新服务器,当然,请确保新服务器中mysql已经安装完成且启动,具体安装方式请自行百度。执行备份前请先建好对应数据库。
解压备份文件: gunzip xxx.gz
得到 xxx.sql文件
通过命令行连接数据库
	mysql -h主机地址 -u用户名 -p
	输入mysql密码
	切换到对应数据库:use database1
	执行恢复命令: source /home/xxx.sql
	等待恢复完成

写到最后,此文用于记录此次赶鸭子上架般的数据迁移踩的坑,希望其他遇到此问题的朋友不要再重复踩坑,第一次写博客,人也比较菜,大佬轻喷

猜你喜欢

转载自blog.csdn.net/XX777666/article/details/106983796