数据丢失:规范迁移操作以及异地备份的重要性

发布于 2020-04-03  2.21k 次阅读


本文于 2020年4月14日 9:47 更新,注意查看最新内容

前言

算上之前的两次数据丢失,这已经是我第三次数据丢失,除了心累便是心痛了吧,所幸的是,总算在不懈努力下,恢复了丢失的大部分数据(剔除了部分无用数据),接下来总结一下这次事件给我带来的经验和教训吧。

起因

因为之前服务器的即将到期,加上续费价格昂贵(买的时候赶上海外“黑五”,当时用的半价优惠码,续费的时候,不能以优惠价格续费,而且当时并无优惠力度较大活动,所以续费价格对比之前较贵),不得不另寻他处购买其服务器,这其实本来没啥问题,购买新的服务器,然后将旧数据迁移至新服务器,更改域名解析,基本就算迁移完成了。

意外

某天更新网站内容,在提交之后,网站的数据库突然连接不上,前后台都提示数据库连接丢失(具体提示文字记不清了),在多次刷新、清除缓存没有效果后,我登录上服务器,查看情况。

正常情况下,一般是因为数据库“掉”了,只要重启一下服务器就好(之前遇上过这种情况,因为服务器负载暴增,导致数据库停止运行)。

但上服务器面板之后,发现数据库没有问题,重启服务器之后还是依旧无法访问,这个时候就很奇怪了,数据库运行正常,相关账号密码也正确,数据库里的数据也能正常访问,但就是无法连接。

然后就上搜索引擎查找解决方案,一种情况一种情况排查,排查到最后,发现无一符合。

转机

之前因为折腾服务器,认识一大佬,对方专业运维,于是向他求助,简单的描述了一下情况,然后大佬开始一顿骚操作:先看的数据库,然后查的WordPress连接信息,发现都没有问题,于是尝试在首页打了个断点,发现没有用(这一点我完全没意识)。

发现断点没效果之后,我突然想起了一个问题,域名之前进行了第三方托管,我在原平台解析的域名,解析肯定没有生效。

紧接着,大佬查了一下域名解析,发现域名和目标服务器之间并没有连接上,这个时候所有的问题都浮出了水面。

cmd域名相关查询命令

nslookup -qt=NS 域名 查NS记录

nslookup -qt=A 域名 查A记录

nslookup -qt=CNAME 域名 查CNAME记录

随后,我登上要过期还没过期的服务器,果不其然,数据库确实停止运行了,我以为问题到这就结束了,但是意外发生了。

意外

数据库重启没有反应,于是我开始重启服务器,结果这一重启,整个服务器就开始脱机,怎么都连不上,赶紧发工单联系IDC商,IDC商就一句话:我们也连不上,需要重装系统,数据没法保留(???)。

几番交涉,还是无果,最终只得同意重装系统。

规范

只此一遭,深刻觉得规范迁移操作的重要性,假设在迁移之后的第一时间,就把数据已经迁移的服务器停止运行,这样立马就能发现,解析是否生效,是否存在其他的问题,也不至于在更新了两周数据之后才发现,还是在原服务器上更新。

建议迁移服务器的步骤:

1、在新服务器上一模一样搭建旧服务器的环境

2、迁移之前,先备份最新的旧服务器数据

3、将旧服务器的数据完完全全迁移到新服务器

4、将相关域名解析至新服务器后,停用旧服务器

5、根据旧服务器手动设置新服务器的计划任务等

异备

数据是站长的生命,无论站有多么小,请做好异地备份!请做好异地备份!请做好异地备份!

目前我的异地备份是这样做的:

备份数据主要存贮在七牛云(实名认证后,免费10G对象存储)和谷歌云(云盘默认大小15G)。

备份时间主要停留在半夜,因为这个时间点,访问人数较少,计划任务的执行不会影响正常的浏览。

如果网站经常在不同时间段更新,有可能的话,建议分时间段备份,以防出现备份“盲区”,导致数据丢失。

扩展

《数据二次丢失引发的思考:选择一个靠谱IDC以及数据备份的重要性》

《宝塔面板如何把网站数据备份至谷歌云盘Google Drive》


这短短的一生,我们最终都会失去。