【問題處理】偶遇ORA- 01075: you are currently logged on錯誤
今天在建立物理DataGuard過程中,在主庫調整完引數啟動資料庫後,連線資料庫時便遭遇了ORA-01075錯誤,導致資料庫無法登陸,後續工作無法進行。
這個問題不侷限在DataGuard配置這個場景。簡單排查一下這個錯誤,供參考。
1.問題現象
1)登陸時的報錯
[oracle@secdb1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jul 24 20:01:10 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01075: you are currently logged on
2)即便登陸成功在執行SQL命令的時候一樣會收到報錯
sys@secdb> select * from dual;
select * from dual
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-00018: maximum number of sessions exceeded
2.問題分析
單純從ORA-01075報錯資訊本身無法定位問題。
從alert日誌中發現“ORA-00018: maximum number of sessions exceeded”報錯資訊。細查之後發現此時後臺出現大量的歸檔程式,而且資料庫中的processes=50,是由於超出了session限制導致的這個報錯。
資料庫後臺的程式資訊如下:
[oracle@secdb1 ~]$ ps -ef | grep secdb | grep -v grep
oracle 10023 1 0 19:13 ? 00:00:00 ora_pmon_secdb
oracle 10025 1 0 19:13 ? 00:00:00 ora_psp0_secdb
oracle 10027 1 0 19:13 ? 00:00:00 ora_mman_secdb
oracle 10029 1 0 19:13 ? 00:00:00 ora_dbw0_secdb
oracle 10031 1 0 19:13 ? 00:00:00 ora_lgwr_secdb
oracle 10033 1 0 19:13 ? 00:00:00 ora_ckpt_secdb
oracle 10035 1 0 19:13 ? 00:00:00 ora_smon_secdb
oracle 10037 1 0 19:13 ? 00:00:00 ora_reco_secdb
oracle 10039 1 0 19:13 ? 00:00:00 ora_cjq0_secdb
oracle 10041 1 0 19:13 ? 00:00:00 ora_mmon_secdb
oracle 10043 1 0 19:13 ? 00:00:00 ora_mmnl_secdb
oracle 10063 1 0 19:13 ? 00:00:00 ora_p000_secdb
oracle 10065 1 0 19:13 ? 00:00:00 ora_p001_secdb
oracle 10067 1 0 19:13 ? 00:00:00 ora_p002_secdb
oracle 10069 1 0 19:13 ? 00:00:00 ora_p003_secdb
oracle 10071 1 0 19:13 ? 00:00:00 ora_p004_secdb
oracle 10077 1 0 19:13 ? 00:00:00 ora_arc0_secdb
oracle 10079 1 0 19:13 ? 00:00:00 ora_arc1_secdb
oracle 10081 1 0 19:13 ? 00:00:00 ora_arc2_secdb
oracle 10083 1 0 19:13 ? 00:00:00 ora_arc3_secdb
oracle 10085 1 0 19:13 ? 00:00:00 ora_arc4_secdb
oracle 10087 1 0 19:13 ? 00:00:00 ora_arc5_secdb
oracle 10089 1 0 19:13 ? 00:00:00 ora_arc6_secdb
oracle 10091 1 0 19:13 ? 00:00:00 ora_arc7_secdb
oracle 10093 1 0 19:13 ? 00:00:00 ora_arc8_secdb
oracle 10095 1 0 19:13 ? 00:00:00 ora_arc9_secdb
oracle 10100 1 0 19:13 ? 00:00:00 ora_arca_secdb
oracle 10103 1 0 19:13 ? 00:00:00 ora_arcb_secdb
oracle 10105 1 0 19:13 ? 00:00:00 ora_arcc_secdb
oracle 10107 1 0 19:13 ? 00:00:00 ora_arcd_secdb
oracle 10109 1 0 19:13 ? 00:00:00 ora_arce_secdb
oracle 10111 1 0 19:13 ? 00:00:00 ora_arcf_secdb
oracle 10113 1 0 19:13 ? 00:00:00 ora_arcg_secdb
oracle 10115 1 0 19:13 ? 00:00:00 ora_arch_secdb
oracle 10117 1 0 19:13 ? 00:00:00 ora_arci_secdb
oracle 10119 1 0 19:13 ? 00:00:00 ora_arcj_secdb
oracle 10121 1 0 19:13 ? 00:00:00 ora_arck_secdb
oracle 10123 1 0 19:13 ? 00:00:00 ora_arcl_secdb
oracle 10125 1 0 19:13 ? 00:00:00 ora_arcm_secdb
oracle 10127 1 0 19:13 ? 00:00:00 ora_arcn_secdb
oracle 10132 1 0 19:13 ? 00:00:00 ora_arco_secdb
oracle 10135 1 0 19:13 ? 00:00:00 ora_arcp_secdb
oracle 10137 1 0 19:13 ? 00:00:00 ora_arcq_secdb
oracle 10139 1 0 19:13 ? 00:00:00 ora_arcr_secdb
oracle 10141 1 0 19:13 ? 00:00:00 ora_arcs_secdb
oracle 10143 1 0 19:13 ? 00:00:00 ora_arct_secdb
oracle 10173 1 29 19:13 ? 00:00:26 ora_qmnc_secdb
oracle 10229 1 0 19:14 ? 00:00:00 ora_q000_secdb
oracle 10296 10294 0 19:14 ? 00:00:00 oraclesecdb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
可見後臺啟動了非常多的歸檔程式,正是這些程式佔滿了所有50個session,導致系統無法登陸。
3.問題處理
1)停止資料庫
既然已經無法正常登陸到資料庫,只能強制使用作業系統命令將其終止。
$ ps -ef |grep $ORACLE_SID|grep -v grep|awk '{print $2}' | xargs kill -9
$ ipcs -m | grep oracle | awk '{print $2}' | xargs ipcrm shm
嚴重警告:以上命令嚴禁在任何資料庫伺服器上進行嘗試!
關於上面兩條命令的闡述請參考《【Kill】兩條Linux命令徹底殺死Oracle》(http://space.itpub.net/519536/viewspace-619787)
2)修改系統引數processes為500
3)重新啟動資料庫
問題處理完畢。
4.小結
此處遭遇的這個問題比較巧合,後臺正好超過了50個session,在我調整完processes為500之後,後臺session數還是穩定在50左右。
這個案例告訴我們:在專案實施過程之前一定要對每一個引數細細斟酌和考量,不要人為的給自己增加困難。
Good luck.
secooler
10.07.24
-- The End --
這個問題不侷限在DataGuard配置這個場景。簡單排查一下這個錯誤,供參考。
1.問題現象
1)登陸時的報錯
[oracle@secdb1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jul 24 20:01:10 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01075: you are currently logged on
2)即便登陸成功在執行SQL命令的時候一樣會收到報錯
sys@secdb> select * from dual;
select * from dual
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-00018: maximum number of sessions exceeded
2.問題分析
單純從ORA-01075報錯資訊本身無法定位問題。
從alert日誌中發現“ORA-00018: maximum number of sessions exceeded”報錯資訊。細查之後發現此時後臺出現大量的歸檔程式,而且資料庫中的processes=50,是由於超出了session限制導致的這個報錯。
資料庫後臺的程式資訊如下:
[oracle@secdb1 ~]$ ps -ef | grep secdb | grep -v grep
oracle 10023 1 0 19:13 ? 00:00:00 ora_pmon_secdb
oracle 10025 1 0 19:13 ? 00:00:00 ora_psp0_secdb
oracle 10027 1 0 19:13 ? 00:00:00 ora_mman_secdb
oracle 10029 1 0 19:13 ? 00:00:00 ora_dbw0_secdb
oracle 10031 1 0 19:13 ? 00:00:00 ora_lgwr_secdb
oracle 10033 1 0 19:13 ? 00:00:00 ora_ckpt_secdb
oracle 10035 1 0 19:13 ? 00:00:00 ora_smon_secdb
oracle 10037 1 0 19:13 ? 00:00:00 ora_reco_secdb
oracle 10039 1 0 19:13 ? 00:00:00 ora_cjq0_secdb
oracle 10041 1 0 19:13 ? 00:00:00 ora_mmon_secdb
oracle 10043 1 0 19:13 ? 00:00:00 ora_mmnl_secdb
oracle 10063 1 0 19:13 ? 00:00:00 ora_p000_secdb
oracle 10065 1 0 19:13 ? 00:00:00 ora_p001_secdb
oracle 10067 1 0 19:13 ? 00:00:00 ora_p002_secdb
oracle 10069 1 0 19:13 ? 00:00:00 ora_p003_secdb
oracle 10071 1 0 19:13 ? 00:00:00 ora_p004_secdb
oracle 10077 1 0 19:13 ? 00:00:00 ora_arc0_secdb
oracle 10079 1 0 19:13 ? 00:00:00 ora_arc1_secdb
oracle 10081 1 0 19:13 ? 00:00:00 ora_arc2_secdb
oracle 10083 1 0 19:13 ? 00:00:00 ora_arc3_secdb
oracle 10085 1 0 19:13 ? 00:00:00 ora_arc4_secdb
oracle 10087 1 0 19:13 ? 00:00:00 ora_arc5_secdb
oracle 10089 1 0 19:13 ? 00:00:00 ora_arc6_secdb
oracle 10091 1 0 19:13 ? 00:00:00 ora_arc7_secdb
oracle 10093 1 0 19:13 ? 00:00:00 ora_arc8_secdb
oracle 10095 1 0 19:13 ? 00:00:00 ora_arc9_secdb
oracle 10100 1 0 19:13 ? 00:00:00 ora_arca_secdb
oracle 10103 1 0 19:13 ? 00:00:00 ora_arcb_secdb
oracle 10105 1 0 19:13 ? 00:00:00 ora_arcc_secdb
oracle 10107 1 0 19:13 ? 00:00:00 ora_arcd_secdb
oracle 10109 1 0 19:13 ? 00:00:00 ora_arce_secdb
oracle 10111 1 0 19:13 ? 00:00:00 ora_arcf_secdb
oracle 10113 1 0 19:13 ? 00:00:00 ora_arcg_secdb
oracle 10115 1 0 19:13 ? 00:00:00 ora_arch_secdb
oracle 10117 1 0 19:13 ? 00:00:00 ora_arci_secdb
oracle 10119 1 0 19:13 ? 00:00:00 ora_arcj_secdb
oracle 10121 1 0 19:13 ? 00:00:00 ora_arck_secdb
oracle 10123 1 0 19:13 ? 00:00:00 ora_arcl_secdb
oracle 10125 1 0 19:13 ? 00:00:00 ora_arcm_secdb
oracle 10127 1 0 19:13 ? 00:00:00 ora_arcn_secdb
oracle 10132 1 0 19:13 ? 00:00:00 ora_arco_secdb
oracle 10135 1 0 19:13 ? 00:00:00 ora_arcp_secdb
oracle 10137 1 0 19:13 ? 00:00:00 ora_arcq_secdb
oracle 10139 1 0 19:13 ? 00:00:00 ora_arcr_secdb
oracle 10141 1 0 19:13 ? 00:00:00 ora_arcs_secdb
oracle 10143 1 0 19:13 ? 00:00:00 ora_arct_secdb
oracle 10173 1 29 19:13 ? 00:00:26 ora_qmnc_secdb
oracle 10229 1 0 19:14 ? 00:00:00 ora_q000_secdb
oracle 10296 10294 0 19:14 ? 00:00:00 oraclesecdb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
可見後臺啟動了非常多的歸檔程式,正是這些程式佔滿了所有50個session,導致系統無法登陸。
3.問題處理
1)停止資料庫
既然已經無法正常登陸到資料庫,只能強制使用作業系統命令將其終止。
$ ps -ef |grep $ORACLE_SID|grep -v grep|awk '{print $2}' | xargs kill -9
$ ipcs -m | grep oracle | awk '{print $2}' | xargs ipcrm shm
嚴重警告:以上命令嚴禁在任何資料庫伺服器上進行嘗試!
關於上面兩條命令的闡述請參考《【Kill】兩條Linux命令徹底殺死Oracle》(http://space.itpub.net/519536/viewspace-619787)
2)修改系統引數processes為500
3)重新啟動資料庫
問題處理完畢。
4.小結
此處遭遇的這個問題比較巧合,後臺正好超過了50個session,在我調整完processes為500之後,後臺session數還是穩定在50左右。
這個案例告訴我們:在專案實施過程之前一定要對每一個引數細細斟酌和考量,不要人為的給自己增加困難。
Good luck.
secooler
10.07.24
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29067253/viewspace-2145070/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【問題處理】以SYSOPER許可權登入資料庫觸發ORA-01075錯誤資料庫
- ora-故障處理
- Oracle ORA-錯誤表Oracle
- JavaScript 中遇到的錯誤問題,該怎麼處理?JavaScript
- MySQL問題處理——1040錯誤Too many connectionsMySql
- 錯誤處理
- F3-smart錯誤處理修復fail問題案例AI
- 這個新 Go 錯誤處理提案,能解決問題不?Go
- PHP 錯誤處理PHP
- php錯誤處理PHP
- Go 錯誤處理Go
- Swift錯誤處理Swift
- Zabbix錯誤處理
- mysqldump錯誤處理MySql
- 如何處理Docker的錯誤訊息request canceled:Docker代理問題Docker
- vue2.0 練習中報錯問題處理(資料繫結錯誤)Vue
- 錯誤處理:如何通過 error、deferred、panic 等處理錯誤?Error
- 【故障處理】ORA- 2730*,status 12故障分析與處理
- 【ERROR】儲存鏈路問題造成oracle錯誤,ora-600[4193] 問題處理ErrorOracle
- PHP錯誤處理和異常處理PHP
- go的錯誤處理Go
- Python錯誤處理Python
- 【問題處理】Error accessing PRODUCT_USER_PROFILE錯誤一例Error
- 異常錯誤資訊處理
- PHP 核心特性 - 錯誤處理PHP
- 常用模組 PHP 錯誤處理PHP
- laravel9 錯誤處理Laravel
- 淺談前端錯誤處理前端
- Oracle異常錯誤處理Oracle
- ORACLE 異常錯誤處理Oracle
- 15-錯誤處理(Error)Error
- 學習Rust 錯誤處理Rust
- axios 的錯誤處理iOS
- Go語言之錯誤處理Go
- GOLANG錯誤處理最佳方案Golang
- Objective-C:錯誤處理Object
- javascript之處理Ajax錯誤JavaScript
- 搭建dataguard時,錯誤處理