修复停电后服务器故障


简介

停电后,esxi重启,出现以下问题

  • vsphere center到重做日志已损坏
  • centos7 system损坏
  • 上台centos7部署的nextcloud中的mariadb损坏

解决方案

vsphere center

直接采用快照回滚,然后重新连接esxi,修改配置,进行快照

centos7 system损坏

为保险起见,先用kali——live-cd挂载进去,拿到了data中的数据,发现数据可以拿出,放到其他上面备份,发现系统盘不可读
经过检查,是/dev/mapper/centos-root出了问题
开机加入rescue模式
或者

rw single=/sysroot/bin/sh

之后使用xfs_repair修复

ls -l /dev/mapper;
xfs_repair /dev/mapper/centos-root;
xfs_repair -L /dev/mapper/centos-root;
init 6

docker部署的mariadb损坏

首先修改docker-compose.yml

services:
  db:
    image: mariadb
    #command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    command: --innodb-force-recovery=2

进入备份nextcloud数据库

docker exec -it nextcloud_db_1 /bin/bash

mysql -uroot -p

mysqlcheck --all-databases -uroot -p

mysqldump -h 127.0.0.1 -u root -ppassword nextcloud > nextcloud.sql;

修改回docker-compose.yml,并删除一些脏数据

rm -i ib*;
rm core.*;

这时候mariadb就可以正常启动了,先删除nextcloud数据库的文件然后恢复数据库

rm -rf ./nextcloud/*

mysql -uroot -p

drop database nextcloud;

create database nextcloud;

use nextcloud;

source nextcloud.sql;

修复全部完成,打好快照备用。

后记

有时间应该弄一个自动叠带快照的脚本,每隔一定时间自动打一次快照,并且自动保存最新的3-5个快照。


文章作者: xyzz
文章链接: http://www.xyzzpwn.top
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 xyzz !
 上一篇
github action的一些用法及hexo自动部署 github action的一些用法及hexo自动部署
简介主要用github action做了两个自动化部署 github pages的自动部署 利用github仓库进行docker的自动build,并且定时跟新 利用docker镜像恢复dockerfile github pages的自动
2020-08-15
下一篇 
hexo主题更换加npm升级 hexo主题更换加npm升级
更换hexo主题从yilia换到matery所有大写在github page会出现错误,所以更改名称 cd themes; git clone https://github.com/blinkfox/hexo-theme-matery.g
2020-08-14
  目录