客户的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切换的异常【终极解决方案_生产环境亲测有效】...相关推荐

  1. oracle startup出错,startup Linux下oracle报以下错

    startup Linux下oracle报以下错 ORA-27102:out of memory Linux-X86_64 Error: 28: No space left on device     ...

  2. linux的oracle怎么建库,linux下oracle手工建库过程

    1.创建目录 $ORACLE_BASE/admin/ $ORACLE_BASE/oradata $ORACLE_BASE/flash_recovery_area 2.建初始化参数文件 cd   $OR ...

  3. oracle设置开机启动,linux下oracle设置开机自启动实现方法

    一.在Linux下启动Oracle 登录到CentOS,切换到oracle用户权限 # su – oracle 接着输入: $ sqlplus "/as sysdba" 原本的画面 ...

  4. 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)

    Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  5. linux下安装oracle集群,【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)...

    目录 数据库安装 继oracle集群安装之后,接下来也是最重要的数据库安装,整个数据库安装难度不大,用户以oracle用户身份登录RAC1主节点,对解压后的文件安装.主节点下安装后,其他所有结点自动安 ...

  6. linux oracle新建监听,linux 下 oracle图形界面(需配置监听,创建实例)

    摘要:oracle 图形界面配置监听,创建实例,以下都是我安装是的截图,按步骤一定可以安装成功! CentOS6.7_x64_minimal_desktop的虚拟机一台(安装oracle需要图形界面, ...

  7. linux oracle删除恢复数据恢复,Linux下Oracle误删除数据文件恢复操作

    检查数据文件的位置如下: SQL> select name from v$datafile; NAME --------------------------------------------- ...

  8. 在Linux下adb连接不上android手机的终极解决方案

    2013-07-25 17:19:15|  分类: android|举报|字号 订阅 1.做android开发的过程,碰到了Linux下adb识别不了android设备的问题,刚开始在网上google ...

  9. linux下oracle 9204 soft only,linux 下oracle 9i的安装

    首先,准备安装需要的软件包和补丁包: 从网上下载升级补丁包,用于将Oracle9.2.0升级到9.2.0.4: p3006854_9204_LINUX.zip 所有的补丁说明如下: p3095277_ ...

最新文章

  1. mysql data ibdata1_database - 如何在MySQL中收缩/清除ibdata1文件
  2. php dom xml解析,Php Xml解析之DOMDocument使用方法浅解
  3. 【OpenStack】OpenStack系列9之Compute节点安装
  4. java 缓存清理echo_“kill -9”一时爽,秋后算账泪两行
  5. [Spring5]IOC容器_Bean管理_工厂Bean
  6. web面试常见问题补充
  7. 在Windows10上安装WSL使用binwalk命令
  8. java中Map ListE的用法
  9. python @修饰符_Python修饰符,返回替换了一个或多个参数的函数
  10. QTcpSocket使用QDataStream发送和保存图片文件
  11. IntelliJ IDEA使用技巧——关于版本控制(上)
  12. 牛客练习赛43F Tachibana Kanade Loves Game
  13. 【转】极品免费网站空间申请:000webhost.com免费1.5G美国空间PHP+MySQL
  14. Ember controller
  15. 用鸽 计算机教案,幼儿园音乐教案《鸽子》
  16. 网络正常连接,浏览器无法访问网络
  17. 波士顿科学完成从霸菱亚洲收购科医人外科业务;刘孟元博士加盟克睿基因 | 医药健闻...
  18. 电机控制器培训资料-《如何快准狠的标定永磁同步电机》 品牌:车用电机控制器
  19. 何为JAVA内部类?
  20. 从反反鸡汤谈过犹不及

热门文章

  1. 周志华《机器学习》读书笔记(一)
  2. 2020年搜索推荐系统论文干货集锦
  3. WebRTC 系列之视频辅流
  4. 视频编解码的理论和实践1:基础知识介绍
  5. 【设计模式】前端必懂EventEmitter
  6. 【IBatis.Net】 各种配置说明
  7. ストアドプロシージャ(存储过程)
  8. OpenGL ES 2兼容函数列表
  9. silverlight ListBox 多列图片效果
  10. Linux Oracle10g安装