①.、案例现象
在root用户下,su切换到一个普通用户oracle下,却发生了如下错误:
oracle数据库意外宕机的分析处理案例
于是,尝试直接通过oracle用户登录系统,发现此时的oracle用户也无法登录了,出现与上面同样的错误.
从上面错误提示可知是权限出现了问题,那么可以从权限入手进行排查,基本思路如下:
用户目录/home/oracle权限问题;
su程序执行权限问题;
程序依赖的共享权限问题;
selinux问题导致;
系统根空间问题.
根据上面的思路,我们进行逐一检查,考虑到su在切换到oracle用户时会读取oracle目录下的环境变量配置文件,所以呢,首先检查/home/oralce目录的权限是否存在问题,
从输出可知,/home/oracle目录的属主是oracle用户,oracle用户对这个目录有"rwx"权限,所以呢,oracle用户目录的权限设置是正确的,可以排除掉这个问题了.
接着检查su执行权限问题:
可见su命令执行权限也没有问题,这个也排除了.
继续检查su依赖的共享库权限,使用ldd命令检查su命令依赖的共享库文件,如下图
根据上面的操作,依次检查su命令依赖的每个库文件的权限,发现也都是正常的,所以呢,共享库的问题也排除了.
根据上面的思路,绩效检查SELinux的设置.
由输出可知,SELinux处于关闭状态,这个原因也排除了.
到这来为止,问题变得朴素迷离,到底是哪里出现问题了呢?作为Linux运维,例行检查系统根分区状态是非常必要的,那么首先检查一个根分区的磁盘空间大小,发现剩余空间还有很多,空间问题也排除了.既然报的错误是权限有问题,那么只要以权限为线索,不偏离这个核心就没错,于是继续尝试检查/home目录下各个用户的权限,如下图.
知道了问题产生的原因,解决问题就非常简单,执行如下命令:
然后就可顺利执行su切换命令.
经验分享
这个问题主要是由于根目录没有执行权限,而Linux下所有的操作都是在根目录下进行的,进而导致/home/oralce目录没有执行权限.其实根目录权限的丢失对于系统中运行的每个用户存在同样的影响.所以呢,在权限出现问题时,一定要注意根目录的权限.
停止oracle server
命令:shutdown [normal|transactional|immediate|abort]
参数说明:
normal:等待用户断开已存在连接,系统发出检查点,然后在同步数据文件、控制文和重做日志文件之后关闭(默认选项).
immediate:取消当前所有sql语句,回退所有未完成事务,然后自动断开,再执行normal.
abort:终止所有sql语句,立即终止实例.不会发出检查点,所以也就不会去同步数据文件、控制文件和重做日志文件.
今天这一节,你可以使用命令:shutdown immediate
解决办法:
重启
SQL shutdown abort
SQL startup
重启解决不了,检查日志是否能够切换
SQL alter system switch logfile;
使用RMAN删除归档日志,清理快速恢复区空间
rman target /
RMAN delete archivelog all;
以上就是土嘎嘎小编为大家整理的oracle挂起怎么解决相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!