日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

su user oracle does not exist,Linux下oracle用户无法su切换的异常【终极解决方案_生产环境亲测有效】...

發布時間:2025/1/21 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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切换的异常【终极解决方案_生产环境亲测有效】...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。