一 背景
启动一台之前重启过的数据库,在进入oracle用户中后,输入sqlplus命令,发现提示没有该命令,数据库无法正常启动。
二 检查过程
查看环境变量:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1
export PATH=$PAHT:$ORACLE_HOME/bin
发现环境变量均有设置,进入相应环境变量:
cd /u01/
ls
发现路径为空,也就是说/u01下没有任何东西。
当时怀疑/u01路径被删除了?但是history以后并没有相关记录。
查看/etc/fstab,发现有如下内容:
/dev/mapper/vg_u01-lv_u01 /u01 ext3 defaults 0 0
也就是说/u01只是一个挂载点,真正的内容在lv_u01这个lvm卷中,于是尝试手动进行挂载:
mount -a
发现无法挂载,查看/dev/mapper/下的文件,并没有vg_u01-lv_u01卷组。因此,第一想法是磁盘掉了,于是使用lsblk命令,发现除了/dev/sda设备以外,还有一个/dev/sdb设备,并且已经分了区,但是该设备并没有标志有lv。因此,无法确定lv_u01是否使用的该设备,因此通过strings的方式进行设备内容确认:
strings /dev/sdb1

从文件内容中发现该设备确实是lv_u01设备;但是为什么没有lv的标签且无法挂载呢?
于是,想要查看lv是否还在:
lvs

lvdisplay

从上面的信息可以看到,确实是lv没有被激活。
三 处理过程
尝试手动激活
vgchange -ay

此时,提示已经激活,再次进行mount -a操作,发现lv_u01已经成功挂载到u01挂载点下。
剩下的动作,按照正常步骤启动数据库即可。
四 原因定位
根据排查发现,该操作系统为SUSE Linux Enterprise Server 11中,该版本中boot.lvm服务自启动是关闭的,导致操作系统重启后lv无法自动激活:
chkconfig -A|grep boot.lvm
进行重新设置:
chkconfig boot.lvm on
问题完美解决。
最后修改时间:2022-06-01 23:45:45
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




