环境:
1、在重启、宕机后,rpm的数据库非常可能会损坏,具体表现在使用yum、rpm命令的时候会报错(如图)
2、此项bug仅存在于redhat系系统中-使用yum、rpm命令的系统
处理办法:
适用于redhat系的:centos、redhat、kylin、openelure等等系统 1、手动处理
#清除已经损坏的rpmdb数据库,以防死锁。或者你直接删掉也可以,我是搞备份
mkdir -p /var/lib/rpm/old_rpm
mv /var/lib/rpm/__db.* /var/lib/rpm/old_rpm
#进行数据库的重建
rpm -vv --rebuilddb
重新建立缓存
yum clean all && yum makecache
2、ansible自动化运维(仅提供task)
- name: mkdir path
shell: mkdir -p /var/lib/rpm/old_rpm
- name: delete old databases
shell: mv /var/lib/rpm/__db.* /var/lib/rpm/old_rpm
- name: rebulidrpm
shell: rpm -vv --rebuilddb > /data/iomp_base/logs/rpm.log 2>&1
- name: update yum
shell: yum clean all && yum makecache