【本地系统问题】 主机重启DBUS及POLKIT服务无法启动-2022/08/01
1、问题描述
本地虚拟机环境RAC(orcl1,orcl2),因磁盘组扩容需求,挂载磁盘后未正常读取(可能也是因为此时系统异常导致)重启服务器后,系统开机极慢且开机后,网卡状态DOWN,DBUS服务及POLKIT服务均无法启动。
启动期间报错如下:
启动后系统报错日志如下:
使用ifup 手动启动网卡,可以启动。此时系统相关服务状态如下:
2、处理过程
参考链接:
https://blog.csdn.net/weixin_39833509/article/details/122697858
结合系统日志中的错误
Aug 1 16:51:32 orcl1 dbus[12791]: [system] Failed to activate service 'org.freedesktop.login1': timed out
Aug 1 16:51:32 orcl1 dbus[12791]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out
Aug 1 16:56:56 orcl1 dbus[12791]: [system] Activating systemd to hand-off: service name='org.freedesktop.PolicyKit1' unit='polkit.service'
Aug 1 16:57:21 orcl1 dbus[12791]: [system] Failed to activate service 'org.freedesktop.PolicyKit1': timed out
Aug 1 16:57:21 orcl1 dbus[12791]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out
Aug 1 16:57:55 orcl1 dbus[12791]: [system] Activating systemd to hand-off: service name='org.freedesktop.PolicyKit1' unit='polkit.service'
Aug 1 16:58:20 orcl1 dbus[12791]: [system] Failed to activate service 'org.freedesktop.PolicyKit1': timed out
Aug 1 16:58:20 orcl1 dbus[12791]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out
Aug 1 17:00:01 orcl1 dbus[12791]: [system] Activating systemd to hand-off: service name='org.freedesktop.login1' unit='dbus-org.freedesktop.login1.service'
Aug 1 17:00:26 orcl1 dbus[12791]: [system] Failed to activate service 'org.freedesktop.login1': timed out
Aug 1 17:00:26 orcl1 dbus[12791]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out
Aug 1 17:01:01 orcl1 dbus[12791]: [system] Activating systemd to hand-off: service name='org.freedesktop.login1' unit='dbus-org.freedesktop.login1.service'
Aug 1 17:01:26 orcl1 dbus[12791]: [system] Failed to activate service 'org.freedesktop.login1': timed out
Aug 1 17:01:26 orcl1 dbus[12791]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out
Aug 1 17:06:35 orcl1 dbus[12791]: [system] Activating systemd to hand-off: service name='org.freedesktop.PolicyKit1' unit='polkit.service'
Aug 1 17:07:00 orcl1 dbus[12791]: [system] Failed to activate service 'org.freedesktop.PolicyKit1': timed out
Aug 1 17:07:00 orcl1 dbus[12791]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out
查看DBUS链接库ldd /usr/bin/dbus-daemon | grep libexpat
可以看到此时DBUS链接到了oracle的库,极大可能是因为不兼容的问题导致DBUS启动异常。当然oracle的这个库文件也是确实存在的。
接下来需要确认DBUS服务连接指向库文件的记录信息( /etc/ld.so.conf.d/
)
这里面有两个错误一个是路径写的本身有问题,这是因为配置环境变量时$ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1/
结尾的 ‘/’ 导致拼接时多了一个分隔符。
但这个不是主要问题,因为从上面DBUS指向来看即使是正确的路径也无法正常启动DBUS服务。
第二个问题是,该路径下无系统本身库文件/usr/lib64这就导致了系统启动DBUS时遇到一系列报错。
** 解决方案:**
1) 处理oracle.conf文件
我这里直接移动到别的路径,相当于删除。也可以修改这个文件把/usr/lib64加到里面去注意放在原有oracle路径前面
2)重新生成缓存
#ldconfig
这一步建议把之前的缓存先清理掉,但是影响范围不确定
mv /etc/ld.so.cache /etc/ld.so.cache.bak
3)验证DBUS是否链接到预期新库
ldd /usr/bin/dbus-daemon | grep libexpat
4)重启DBUS服务,重启POLKIT服务恢复正常
3、总结
需注意root的配置文件,尤其是库文件指向。
安装Oracle只改oracle用户的,但是如果接监控或者别的需要在root下面配置oracle环境变量时,要添加LD_LIBRARY_PATH,此时一定要看好库指向,/usr/lib64优先而不是oracle的。