su user oracle does not exist,Linux下oracle用户无法su切换的异常【终极解决方案_生产环境亲测有效】...
客户的Oracle生产环境数据库准备迁移到云服务器环境,于是先把新的云环境搭建好了dataguard后,准备到客户当前的生产环境做expdp备份,由于有一段时间没登录这个旧环境了,登上去发现一个很离奇的现象,su - oracle无法切换,也没有报错信息!
[root@db1]# pwd
/root
[root@db1]# ps -ef |grep pmon
oracle 11342 1 0 Oct19 ? 00:01:38 ora_pmon_orcl
root 12679 12528 0 16:15 pts/0 00:00:00 grep pmon
[root@db1]# su - oracle
[root@db1]# pwd
/root
[root@db1]#
从上面信息看出,oracle其实是运行正常的,只是无法切换过去,并且oracle用户信息也是存在的,查看/home/oracle,/etc/passwd,/etc/group里都还有oracle的信息。
同时查看secure log,如下
[root@db1]# tail -f /var/log/secure|grep su
Dec 26 22:11:14 18c su: pam_unix(su-l:session): session opened for user oracle by root(uid=0)
Dec 26 22:11:14 18c su: pam_unix(su-l:session): session closed for user oracle
Dec 26 22:12:22 18c su: pam_unix(su-l:session): session opened for user oracle by root(uid=0)
Dec 26 22:12:22 18c su: pam_unix(su-l:session): session closed for user oracle
Dec 26 22:12:30 18c su: pam_unix(su:session): session opened for user oracle by root(uid=0)
Dec 26 22:12:30 18c su: pam_unix(su:session): session closed for user oracle
Dec 26 22:12:45 18c su: pam_unix(su-l:session): session opened for user oracle by root(uid=0)
Dec 26 22:12:45 18c su: pam_unix(su-l:session): session closed for user oracle
Dec 26 22:15:44 18c su: pam_unix(su-l:session): session opened for user oracle by root(uid=0)
Dec 26 22:15:44 18c su: pam_unix(su-l:session): session closed for user oracle
于是进行百度排查,发现大多数说法是更改 /etc/security/limits.conf 里面的soft nofile和hard nofile连接上限值,因为连接数满了,于是尝试进行更改后,问题却依旧没有解决!
[root@db1]# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
这个时候,按照这个思路,如果是连接数太多,我重启系统总可以解决了吧?于是为了快速解决这个问题,尝试reboot重启linux,事后才觉得这个决定有点冲动冒失了!
那是因为重启后,不仅问题依旧没有解决,并且oracle数据库没自动起来(默认是没设置自动启动的),这个时候压力山大啊!因为客户在不断催促业务中断了,于是尝试用root去启动oracle,但最终是失败的,只能用oralce用户来操作!
绝望中想起能否通过重建oracle用户来试试?!
于是网上查过一些资料,的确是可以这么干!但前提是需要确认好旧oracle用户的id和所属用户组id那些信息,于是备份好这些信息后,删除oracle用户,再重新创建:
[root@db1]# userdel oracle
userdel: user oracle is currently used by process 2447
[root@db1]# kill -9 2447
这个时候提示有进程在使用oracle用户,于是kill掉后,使用-r来直接删除,然后再根据备份的信息重建:
[root@db1]# userdel -r oracle
[root@db1]# useradd -u 1101 -g oinstall -G dba oracle
[root@db1]# su - oracle
[oracle@db1]$ pwd
最后看到成功切换到oracle用户的那一刻,终于长舒一口气,毕竟这个操作风险还是挺大的,就怕强行删除用户,会影响关联的oracle目录和数据,还好最终是解决了!以此记录一下,遇到的朋友可以作为参考!
su user oracle does not exist,Linux下oracle用户无法su切换的异常【终极解决方案_生产环境亲测有效】...相关推荐
- oracle startup出错,startup Linux下oracle报以下错
startup Linux下oracle报以下错 ORA-27102:out of memory Linux-X86_64 Error: 28: No space left on device ...
- linux的oracle怎么建库,linux下oracle手工建库过程
1.创建目录 $ORACLE_BASE/admin/ $ORACLE_BASE/oradata $ORACLE_BASE/flash_recovery_area 2.建初始化参数文件 cd $OR ...
- oracle设置开机启动,linux下oracle设置开机自启动实现方法
一.在Linux下启动Oracle 登录到CentOS,切换到oracle用户权限 # su – oracle 接着输入: $ sqlplus "/as sysdba" 原本的画面 ...
- 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)
Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...
- linux下安装oracle集群,【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)...
目录 数据库安装 继oracle集群安装之后,接下来也是最重要的数据库安装,整个数据库安装难度不大,用户以oracle用户身份登录RAC1主节点,对解压后的文件安装.主节点下安装后,其他所有结点自动安 ...
- linux oracle新建监听,linux 下 oracle图形界面(需配置监听,创建实例)
摘要:oracle 图形界面配置监听,创建实例,以下都是我安装是的截图,按步骤一定可以安装成功! CentOS6.7_x64_minimal_desktop的虚拟机一台(安装oracle需要图形界面, ...
- linux oracle删除恢复数据恢复,Linux下Oracle误删除数据文件恢复操作
检查数据文件的位置如下: SQL> select name from v$datafile; NAME --------------------------------------------- ...
- 在Linux下adb连接不上android手机的终极解决方案
2013-07-25 17:19:15| 分类: android|举报|字号 订阅 1.做android开发的过程,碰到了Linux下adb识别不了android设备的问题,刚开始在网上google ...
- linux下oracle 9204 soft only,linux 下oracle 9i的安装
首先,准备安装需要的软件包和补丁包: 从网上下载升级补丁包,用于将Oracle9.2.0升级到9.2.0.4: p3006854_9204_LINUX.zip 所有的补丁说明如下: p3095277_ ...
最新文章
- mysql data ibdata1_database - 如何在MySQL中收缩/清除ibdata1文件
- php dom xml解析,Php Xml解析之DOMDocument使用方法浅解
- 【OpenStack】OpenStack系列9之Compute节点安装
- java 缓存清理echo_“kill -9”一时爽,秋后算账泪两行
- [Spring5]IOC容器_Bean管理_工厂Bean
- web面试常见问题补充
- 在Windows10上安装WSL使用binwalk命令
- java中Map ListE的用法
- python @修饰符_Python修饰符,返回替换了一个或多个参数的函数
- QTcpSocket使用QDataStream发送和保存图片文件
- IntelliJ IDEA使用技巧——关于版本控制(上)
- 牛客练习赛43F Tachibana Kanade Loves Game
- 【转】极品免费网站空间申请:000webhost.com免费1.5G美国空间PHP+MySQL
- Ember controller
- 用鸽 计算机教案,幼儿园音乐教案《鸽子》
- 网络正常连接,浏览器无法访问网络
- 波士顿科学完成从霸菱亚洲收购科医人外科业务;刘孟元博士加盟克睿基因 | 医药健闻...
- 电机控制器培训资料-《如何快准狠的标定永磁同步电机》 品牌:车用电机控制器
- 何为JAVA内部类?
- 从反反鸡汤谈过犹不及