故障现象:
Harbor 登录时显示:核心服务不可用.
2. 排查思路
- 可以通过浏览器打开登录页面,所以判断服务应该是起来了.
- 在输入密码后报错,所以判断可能是登录验证时的错误,需要排除密码错误.
- 尝试重启Harbor来解除故障,毕竟重启大法可以解决大多数的问题.
- 查看/var/log/harbor下的日志检查具体原因.
3. 查找故障原因
3.1 确定用户名密码
vi harbor.yml
复制代码
这里我们确认了并不是密码错误造成的.
3.2 重启Harbor服务
docker-compose down
docker-compose up -d
复制代码
故障依旧
3.3 查看Harbor日志
3.3.1 core日志
tail /var/log/harbor/core.log
复制代码
太棒了,我们得到了关键信息:
Fatal error loading the DB: Invalid argument. Exiting.
那么事情就变得简单了.
4. 解决故障
4.1 故障原因分析
redis提供两种方式进行持久化. 1.是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化) 2.是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件)。 在redis服务重启的过程中,redis会自动加载dump.rdb文件以恢复上一次的状态,由于rdb文件版本高于redis服务器版本,导致rdb文件读取失败,服务无法启动,删除该文件就能解决这个故障。
4.2 故障排除
删除dump文件并重启Harbor
find / -name dump.rdb
rm -rf /data/harbor/redis/dump.rdb
docker-compose down
docker-compose up -d
复制代码
5. 恢复正常
作者:仇沁
链接:https://juejin.cn/post/7108631208653193224
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 标签:dump,Harbor,redis,---,故障,rdb,harbor From: https://www.cnblogs.com/netflix/p/17047624.html