轻松一刻

本站事故复盘

言七墨 · 12月1日 · 2019年 611次已读

经过

  1. 2019年11月23日上午9点左右,在没有手动备份的前提下,升级了 MySql 数据库(从5.1到5.7)
  2. 半小时后,升级结束,网站无法登陆,显示“error establishing a database connection”
  3. 当时没多想,以为是升级后不兼容导致的,又切换到了5.1版本,网站还是报同样的错误
  4. 当时由于有别的更重要的事,故先放弃了折腾
  5. 下午14点左右,还未回家,尝试用手机登陆宝塔面板继续解决,搞了半天无果,故询问宝塔管理员,他让我在服务器上执行ps aux|grep mysql,可是手机端没有尝试过ssh登陆,故暂时放下了手机
  6. 下午17点左右赶回家,开始查看原因,最后发现 MySql 压根没有安装成功,我又在原版本5.1和新版本5.7之间尝试切换了几次,都无法连接 phpmyadmin…
  7. 晚上20点左右,打算重装宝塔,先备份数据库,瞬间备份完成,当时心惊了一下,赶紧查看备份好的文件,才几十B,完了,数据全没了..
  8. 赶紧查看每周通过 shell 脚本备份的数据库压缩包,什么鬼,才几百B,解压,发现里面竟然只有一张用户表..
  9. 2年的站就这样被自己搞没了…

反思

  1. 在没有搞清楚 MySql 如何升级时,就胡乱升级,站搞没了,也是活该呀!
  2. 下面开始甩锅,强行安慰自己一波!
  3. 过度相信第三方面板的能力,之前使用 shell 脚本备份数据库时,没有检查过备份功能是否好用。
  4. 升级 MySql 是在宝塔面板(3.几版本的宝塔)上执行的,在我升级 MySql 前,竟然没有任何提示,对我这不懂的小白来说,也是相当的不友好。现在安装了新版的宝塔面板(5.9.1版本),MySql升级有了“提前备份数据库的红色提醒”..

修复过程

  1. 将网站文件下载到本地
  2. 重装服务器系统
  3. 安装最新版的宝塔面板
  4. 安装 wordpress
  5. 从网站文件的缓存中恢复部分老数据
  6. 恢复的过程中,才发现当时做的网站已经背离了自己的初衷
  7. 故抛弃了很多篇缓存过的文章
  8. 好好思考当时真正要做这个网站的初衷
  9. 重新做站..

改善措施

  1. 新站做好后,还是使用 shell 脚本备份数据库,先手动备份一次,发现这次是真正备份了数据库的全部数据,故启用了两个备份 shell 脚本,一个是备份到服务器,一个是备份到自己的七牛云上,每周备份一次,保留最新的三份。
  2. 备份网站文件到服务器,也是先手动备份一次,发现备份的文件是没问题的,每周执行一次,保留最新的三份。
  3. 给服务器做了个镜像,以后准备每周手动制作一次,保留最新的两份。

以自己的初衷好好做站:学习沉淀 | 奋力前行

相关文章
暂无相关文章!
2 条回应
  1. 轩沫说2019-12-8 · 12:04

    宝塔论坛上也有一个人跟你的情况相似
    bt。cn/bbs/thread-41191-1-1.html

    • 言七墨2019-12-8 · 12:10

      这个帖子我看到过,其实,我这个是纯净的服务器,只是老版宝塔在升级 MySql 之前并未提示要备份,自己又没有升级 MySql 的经验,以为点击了更新就可以更新了(老版的操作面板还是不够友好),结果数据没了..