异常断电文件损坏docker服务异常处理

问题场景

  • 我们在某地部署信控平台,当初是在产品研发早期,采取的还是Windows服务器部署虚拟机的方式
  • 使用virtualbox导入centos7虚拟机,虚拟机里运行docker服务,使用docker-compose统一管理
  • 客户今天上午反馈,昨天断电了两次,平台没有自动重启没有启动起来,收到执行启动命令也卡主不动
  • 卡主的位置,对应的一条语句是docker network create signal-network,创建网络
    在这里插入图片描述

解决

container

  • 看着页面卡主了,检查了下内存占用和磁盘空间,都没问题,重复执行还是卡主
  • 首先让维保人员,把虚拟机关掉,又重启了一次,毕竟重启解决大部分问题
  • 重启后,还是不行,然后怀疑docker服务有问题,执行docker -v 发现也没反应,还是卡主,确定是docker服务有问题了
    在这里插入图片描述
  • 执行docker服务的重启命令systemctl restart docker,还是不行
  • 想着要先想办法把docker关掉,再启动试试,于是试着分开命令执行,还是不行
systemctl stop docker
systemctl stop docker.socket
systemctl stop docker.service
systemctl stop docker
systemctl restart docker
  • 使用 journalctl - xe查看报错信息,发现containerd没启动起来,使用命令systemctl status containerd也是一样,加上-l查看详细信息
    在这里插入图片描述
  • 这个时候知道事情不简单了,感觉应该是断电导致文件损坏了,先去网上搜索下,解决这个containerd
  • 异常断电,文件损坏,一般都是正在读写的文件,于是按照搜索结果,删除containerd的文件夹里的文件执行命令,containerd 可以了
rm -rf /var/lib/containerd/*
systemctl restart containerd

在这里插入图片描述

docker服务

  • 继续执行docker服务的重启命令systemctl restart docker,还是不行,头大,卡在了启动过程systemctl docker activating (start) ,一直启动不起来
    在这里插入图片描述

  • 感觉像是启动过程中卡主卡死了,于是想着把进程ps -ef|grep docker直接干掉kill -9 xxx xxx ...,再启动试试,还是不行

  • 想着containerd 都解决了,也是实在不想重装虚拟机,就继续搜索解决。systemctl status docker -l继续查看详细报错信息
    -
    在这里插入图片描述

  • 想着是不是网络问题,搜索结果里也有些说是防火墙影响的,先关闭防火墙systemctl stop firewalld,重启虚拟机,再启动docker解决,我试了下,不行

  • 此时docker -v可以了,有输出了,以为好了,很高兴

  • 试了下其他命令如docker images,还是不行,会报错Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon
    在这里插入图片描述

  • systemctl status docker -l查看status,发现新的报错start request repeated too quickly for docker.service
    在这里插入图片描述

  • 使用journalctl -u docker.service继续查看更详细的日志,发现启动某个容器时报错了,就去把容器文件夹都删了,还是不行

  • 没招了,重装系统是不可能的,就把docker卸载了,然后重装,可以了

rm -rf /var/lib/docker

yum remove docker-ce docker-ce-cli containerd.io

rm -rf /etc/docker
rm -rf /etc/systemd/system/docker.service.d
  • 此处还有两个小插曲,一是可能没删干净,准备的rpm包,不能使用命令rpm -ivh *.rpm一次性安装完成,只能一个个执行
  • 第二是,这种重装会将已有的镜像和容器全部删干净,如果没有备份镜像或将可变数据映射到本地卷,数据就会丢失了
  • 我们所有要的数据,都映射到其他目录了,所以可以放心删除和重装,镜像也都有现成的,重新装载即可

数据库服务

  • docker搞定后,发现PostgreSQL数据库文件也损坏了,数据库启动不了,找不到 checkpoint
    在这里插入图片描述

  • 幸好,我每天都对数据库文件夹全量备份,删掉现有的,还原即可

  • 坑爹的是,第一次还原时,忘了把数据库停掉,还原的文件也不对,只好重来

  • 数据库关闭,文件夹情况,还原备份文件,搞定

后续

  • 异常断电,容易造成损坏,Windows服务器套虚拟机更是如此,一定要做好备份工作
    在这里插入图片描述
    在这里插入图片描述

  • 下次如果再出问题,导出一份数据库后,直接还原到这个日期就行

  • 再把数据库也导进去,就是最新状态了(其他缓存和队列里的数据无所谓)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/121913.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【源码】自制链接表管理器

hi,大家好呀! 前几天更新了个视频,教大家做了一个链接表的管理器,今天把文字内容给到大家,至于什么原因需要自己做一个链接表管理器,我在视频中有讲到,因为系统自带的链接表管理器没有筛选功能…

技术分享 | app自动化测试(Android)--显式等待机制

WebDriverWait类解析 WebDriverWait 用法代码 Python 版本 WebDriverWait(driver,timeout,poll_frequency0.5,ignored_exceptionsNone)参数解析: driver:WebDriver 实例对象 timeout: 最长等待时间,单位秒 poll_frequency: 检测的间隔步…

怎么批量获取文件名,并保存到excel?

怎么批量获取文件名?什么叫批量获取文件名,其实也非常好理解,就是面对大量文件是可以一次性的获取所有文件名称,这项技术的应用也是非常常见的,为什么这么说呢?现在很多的文档管理人员或者公司的文员&#…

Go类型嵌入介绍和使用类型嵌入模拟实现“继承”

一、独立的自定义类型 什么是独立的自定义类型呢?就是这个类型的所有方法都是自己显式实现的。 我们举个例子,自定义类型 T 有两个方法 M1 和 M2,如果 T 是一个独立的自定义类型,那我们在声明类型 T 的 Go 包源码文件中一定可以找…

Redis中的渐进式遍历-Scan命令

之前我们学习过遍历命令keys,而keys *是一次性的把整个redis中所有的key都获取到.在不知道当前redis中有多少key的情况下,这个操作是非常危险的,可能会一下子得到太多的key而阻塞redis服务器.从而使其他redis客户端卡顿. 通过渐进式遍历,就可以做到,既可以获取到所有的key,同时…

利用AI快速跨过新手区:用DevChat编写Python程序-CSV导入TDengine

还在用百度搜索编程吗? 直接上 AI,帮助小白快速跨过新手区。 以下用一个物联网最常见的场景做示例演示如何利用 AI 快速编程。 ChatGPT4 是目前最火的 AI 了,但是国内却用不了。不过现在新出的 DevChat 可以让大家尝鲜一番。 以下介绍来自B…

linux生成code文件

1. 设置core文件路径在当前工作目录 echo "core-%e-%p-%t" > /proc/sys/kernel/core_pattern 具体参数 %s - insert signal that caused the coredump into the filename 添加导致产生core的信号 %t - insert UNIX time that the coredump occurred into filen…

scss 实用教程

变量 $ 定义变量 $link-color: blue;变量名可以与css中的属性名和选择器名称相同 使用变量 a {color: $link_color; }$highlight-border: 1px solid $link_color;中划线和下划线相互兼容,即中划线声明的变量可以使用下划线的方式引用,反之亦然。 $li…

Python教程:随机函数,开始猜英文单词的游戏

开始猜英文单词的游戏… 总计生命次数:3次 -----------游戏开始中…----------- ????请猜一个,4位数的单词:mafr 猜错了,再努力一下 -----------你还有2次生命------------ ma?&…

一文带你走进 AIGC(生成式人工智能)世界

AI(人工智能)是一门在过去几十年中不断增长其能力和效用的学科。AI 驱动的工具正逐渐成为主流,例如改进的语音识别、及时翻译以及令人惊叹不止的图像编辑工具,它们使我们能够根据自定义风格轻松地突出显示图像中想要替换的内容。 …

如何下载PDF版本的专利

问题描述:有时下载的专利是CAJ格式,需要用CAJViewer软件才能观看,那么如何下载pdf版本的呢? 问题解决: 方法一: 使用CAJViewer软件进行转换。(注意:这种方法转换的PDF其实就是一个…

Linux环境下安装人大金仓数据库

人大金仓产品简介 金仓数据库管理系统[简称:KingbaseES]是北京人大金仓信息技术股份有限公司(简称人大金仓)自主研发的、具有自主知识产权的商用关系型数据库管理系统(DBMS)。该产品面向事务处理类应用,兼顾各类数据分…

JAVA 版小程序商城免费搭建 多商家入驻 直播带货 商城系统 B2B2C 商城源码之 B2B2C产品概述

1. 涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

idea使用git删除本地提交(未推送)

1、找到reset head 2、打开弹窗,在HEAD后面输入^ 结果为HEAD^ 注释: Reset Type 有三种: Mixed(默认方式),保留本地源码,回退 commit 和 index 信息,最常用的方式Soft 回退到某个版本…

Solidity快速入门之函数输出

返回值return和returns Solidity有两个关键字与函数输出相关:return和returns,他们的区别在于: returns加在函数名后面,用于声明返回的变量类型及变量名;return用于函数主体中,返回想要返回的变量&#x…

JSP通用材料收集归档系统eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 通用材料收集归档系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0&#xff0c…

让BI自动生成零售数据分析报表?用模板

不知道BI零售数据分析怎么做?用模板。 没时间去整理数据、计算零售数据分析指标?用模板。 不知道怎么做出炫酷直观的零售数据分析报表?用模板。 …… 奥威BI零售数据分析模板全新上线,数据分析模型、数据可视图表、关键指标以…

什么是ADC测试,能进行自动化测试吗?

ADC测试是一种电子测试方法,用于评估模拟-数字转换器的性能。ADC(模数转换器)是一种将模拟信号转换为数字信号的电子器件。在ADC测试中,会施加一个已知的模拟信号到ADC的输入端,然后测量其数字输出,通过比较输入信号和输出信号之间…

网络安全(黑客)-零基础小白高效自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…

排序算法之-冒泡

顺序排序算法原理 从头开始遍历未排序数列,遍历时比较相邻的两个元素,前面的大于后面的,则双方交换位置,一直比较到末尾,这样最大的元素会出现在末尾,接着再依次从头开始遍历剩余未排序的元素,…