centos – 为什么yum索引会被破坏?

偶尔yum的缓存会被破坏,我们会看到如下错误
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error,run database recovery
error: cannot open Packages index using db3 -  (-30974)
error: cannot open Packages database in /var/lib/rpm

解决方法是rm -f / var / lib / rpm / __ db *然后下一个“yum”命令重新生成数据.

我的问题是:可能导致这种情况的原因是什么?是否有一些忽略锁定的常见任务或导致此问题的其他问题?

我们有数百台CentOS机器,没有模式可以看到这个问题.它可能是一个“百万分之一”的问题,经常出现大规模的问题.

注意:我意识到这是一个非常“开放式”的问题,但如果答案找到原因,我会回过头来将问题转化为与特定问题直接相关的更具规范性的问题.

在一般情况下,当更新rpm(一个Berkeley DB键值存储)并且非常敏感时,rpm(或yum)崩溃时会发生这种情况.发生此类崩溃时,rpmdb将处于不一致状态,并发生此错误. / var / lib / rpm中的所有其他文件包含相同的信息,但格式效率较低,因此可以轻松地重建数据库.

您可能在较旧的CentOS系统上看到的两个值得注意的错误可能导致这种情况. The big one,在更改日志中出现的“共享mmap’ed页面回写中令人讨厌和微妙的竞争”,是quietly fixed in a kernel update in 2007.但是这一个presented itself slightly differently比你的报告更多.

one you might see from 2009发生在PackageKit将在不合时宜的时间杀死yum,以及was also fixed.但这更有可能影响具有GUI的桌面系统或服务器.

所有这些错误都早于EL 6,你几乎不会在EL 6或7上看到这种错误,如果你的EL 5系统是最新的,你也不应该看到它. (我不知道EL 4.如果你有一个,在它传播之前杀掉它.)也就是说,任何导致yum或rpm在使用rpmdb时死亡的东西都可能导致它.这包括你最有可能看到的东西,随机宇宙射线翻转位,或者某人因杀死-9而过分热心.

在RHEL 7中,yum在实际事务运行期间捕获更多信号,您将看到消息(禁止关闭).这应该有助于防止大多数情况下某人或某事中断事务并导致此问题.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native
centos6.5下postgres-XC集群安装与配置
CentOS 6使用openssl搭建根CA
CentOS6.6中安装VNC server
CentOS下更新Python最新版本
Centos安装pycurl
CentOS 7 安装PostGIS
CentOS 7.1PXE网络自动化安装
CentOS下ffmpeg与第三方编码编译安装
CentOS 6.4安装配置squid
CentOS6.5 安装配置drbd
CentOS6.4 安装jenkins
centos安装增强工具
CentOS6.4安装配置redis
CentOS 6上部署OpenVPN Server