gitlab容器:could not read block 0 in file “base/16385/2702“

gitlab容器:could not read block 0 in file "base/16385/2702"

一:报错场景说明

使用docker在局域网搭建gitlab服务,一直运行正常。有天突然断电,gitlab容器再启动时一直显示unhealthy状态,查看日志报如下错,结果是gitlab网页无法访问,所有仓库资源连接都变成502。

failed: ERROR:  could not read block 0 in file "base/16385/2702"
# 出现此信息则表示数据表文件损坏。这通常是由于异常断电或误操作导致的。这里“16385”是发生问题的数据库的对象id(oid), “2702”表示发生问题的表的文件结点(filenode)
# 如果发生损坏的表以及损坏的页面数量较少,我们可以以牺牲部分数据的代价恢复整体;如果损坏的表数量过多,或者损失的数据非常重要,就需要从备份中恢复数据了。

想着当务之急先备份数据,备份数据时还是报错:

root@monitor:/data/gitlab_docker# docker exec gitlab gitlab-rake gitlab:backup:create
Dumping database ... 
Dumping PostgreSQL database gitlabhq_production ... pg_dump: [archiver (db)] query failed: ERROR:  could not read block 0 in file "base/16385/2702": Input/output error
pg_dump: [archiver (db)] query was: SELECT tgname, tgfoid::pg_catalog.regproc AS tgfname, pg_catalog.pg_get_triggerdef(oid, false) AS tgdef, tgenabled, tableoid, oid FROM pg_catalog.pg_trigger t WHERE tgrelid = '19086'::pg_catalog.oid AND NOT tgisinternal
Backup failed
[FAILED]

百度谷歌找了一堆,最终找到这篇文章得以解决:

https://blog.csdn.net/international24/article/details/89710703

二:解决步骤

下面记录下本次解决的步骤:

1:进入gitlab容器

root@monitor:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值