1. 程式人生 > >ORA-01034和ORA-27101的解決方法

ORA-01034和ORA-27101的解決方法

1 先看oracle的監聽和oracle的服務是否都啟動了。啟動oracle監聽:
cmd的命令列視窗下,輸入lsnrctl start,回車即啟動監聽。


2 檢視oracle的sid叫什麼,比如建立資料庫的時候,例項名叫“orcl”,那麼先手工設定一下oralce的sid,cmd命令視窗中,set ORACLE_SID=orcl


3 再輸入sqlplus  /nolog,回車
再輸入 conn / as sysdba;回車


4 再輸入startup,回車.這步是啟動oracle服務。如果startup啟動被告知已經啟動了,可以先輸入shutdown immediate;等shutdown結束之後,再輸入startup。


5 過幾秒鐘等命令執行完成,就能連線了。這個時候,可以輸入"select * from user_tables;"測試一下,看是否有查詢結果。


6 出現ORA-01034和ORA-27101的原因是多方面的:主要是oracle當前的服務不可用,shared memory realm does not exist,是因為oracle沒有啟動或沒有正常啟動,共享記憶體並沒有分配給當前例項.所以,通過設定例項名,再用作業系統身份驗證的方式,啟動資料庫。這樣資料庫就正常啟動了,就不會報ORA-01034和ORA-27101兩個啟動異常了。

今天在測試庫上遇到了ORA-27101的錯誤,當通過客戶端連線到db時返回如下:
[
[email protected]
admin]$ sqlplus system/[email protected]
SQL*Plus: Release 11.1.0.6.0 - Production on Tue Aug 10 11:05:04 2010
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0
對於這個問題第一印象,可能會覺得沒有足夠的記憶體空間,來建立共享記憶體段
1.首先檢查核心引數設定以及alert.log 檔案
fs.file-max = 6553600
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
檢視後都沒有問題,主機有足夠的記憶體,資料庫也已經在啟動狀態:
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
2.之後發現在報錯之後,繼續輸入使用者名稱和密碼確可以登陸
Enter user-name: system
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
3.檢視sqlnet.log日誌
[
[email protected]
log]$ pwd
/u01/app/product/11.1.0/db_1/network/log
[[email protected] log]$ cat sqlnet.log
Directory does not exist for read/write [/u01/app/product/11.1.0/db_1/log] [/u01/app/product/11.1.0/db_1/log/diag/clients]


***********************************************************************
Fatal NI connect error 12541, connecting to:
 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.201.1.134)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=Oracle8)(CID=(
[email protected]
)(HOST=localhost)(USER=oracle))))
  VERSION INFORMATION:
        TNS for Linux: Version 11.1.0.6.0 - Production
        TCP/IP NT Protocol Adapter for Linux: Version 11.1.0.6.0 - Production
  Time: 05-AUG-2010 18:30:51
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12541
    TNS-12541: TNS:no listener
    ns secondary err code: 12560
    nt main err code: 511
    TNS-00511: No listener
    nt secondary err code: 111
    nt OS err code: 0


***********************************************************************
提示找不到listener......
4.檢查listener是否配置正確
[[email protected] alert]$ cat /u01/app/product/11.1.0/db_1/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/product/11.1.0/db_1//network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (ORACLE_HOME = /u01/app/product/11.1.0/db_1)
      (SID_NAME = siebtest)
    )
  )
LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.201.1.134)(PORT = 1521))
  )
[[email protected] ~]$ tnsping test
Used parameter files:
/u01/app/product/11.1.0/db_1/network/admin/sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.201.1.134)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = siebtest)))
OK (0 msec)
listener 配置沒有問題。。。
5.由於例項已經在啟動的狀態,這時候考慮到例項註冊的問題
SQL> show parameter local_listener
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string
發現local_listener沒有值。。。。。
6.設定local_listener引數
SQL> alter system set local_listener='(ADDRESS =(PROTOCOL=TCP)(HOST=10.201.1.134)(PORT=1521)(SID=siebtest))';


System altered.


SQL> alter system register;


System altered.
7.再次登陸成功
[[email protected] alert]$ sqlplus system/[email protected]
SQL*Plus: Release 11.1.0.6.0 - Production on Tue Aug 10 12:51:11 2010
Copyright (c) 1982, 2007, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
 
 總結:
    如果LOCAL_LISTENER丟失,會導致自動例項註冊失敗,資料庫例項不會識別Listener,當Listener連線
資料庫例項的時候,由於Listener沒有註冊,導致了 ORA-27101: shared memory realm does not exist.

相關推薦

轉載:ORA-01034ORA-27101解決方法,oracle無法開啟解決辦法

1 先看oracle的監聽和oracle的服務是否都啟動了。啟動oracle監聽: cmd的命令列視窗下,輸入lsnrctl start,回車即啟動監聽。 2 檢視oracle的sid叫什麼,比如建立資料庫的時候,例項名叫“orcl”,那麼先手工設定一下oralce的sid,

oracle 遠端訪問資料庫 ORA-01034ORA-27101問題的一種解決方法

1.先排除資料庫沒有啟動 先看oracle的監聽和oracle的服務是否都啟動了。啟動oracle監聽: cmd的命令列視窗下,輸入lsnrctl start,回車即啟動監聽。 檢視oracle的

ORA-01034ORA-27101解決方法

1 先看oracle的監聽和oracle的服務是否都啟動了。啟動oracle監聽: cmd的命令列視窗下,輸入lsnrctl start,回車即啟動監聽。 2 檢視oracle的sid叫什麼,比如建立資料庫的時候,例項名叫“orcl”,那麼先手工設定一下oralce的sid

Oracle啟動出現ORA-01034ORA-27101解決方案

在試圖登入pl/sql時,輸入使用者名稱(system/pwd)後,Oracle報告下列錯誤: ERROR: ORA-27101 Shared memory realm does not exist ORA-01034 ORACLE not available &<60; 查閱了相關 ORA-2

ORA-01078: LRM-00109:解決方法

 啟動資料庫的時候 SQL> startup mount; ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/u01/app/

[小e筆記]之錯誤案例——ORA-01034ORA-27101錯誤

作業系統環境redhat5.3    Oracle版本:Oracle11gR2  錯誤描述如下: SQL> startup ORACLE instance started. Total System Global Area  598437888 bytes Fixed

ORACLE之rman備份:ORA-19809ORA-19804的解決方法

操作環境:redhat 6.4  oracle 12c rman備份出錯。之前出現過,好象重新backup database就可以了,今天又出現,紀錄下RMAN-03009: failure of Contrl file and SPFILE Autobackup command o

ora-01034ora-27101錯誤解決

報錯原因: 解決:ora-27101 There may be 2 scenarios, which may lead you to encounter ORA-271011) Invalid ORACLE_HOME and ORACLE_SID(在環境變數裡配置)

ORA-01034 或者 ORA-27101 終極解決辦法(有圖有真相)

當我們的Oracle異常關閉或者其他情況,導致當我們用Plsql登入資料庫時報以下錯誤: ORA-01034: ORACLE not availableORA-27101: shared memory realm does not exist 解決辦法:(在此一Oracle

ORA-01034: ORACLE not available解決

process port ron style 監聽 all rom partition class 問題現象: alter user scott account unlock; ERROR at line 1:ORA-01034: ORACLE not availabl

使用PLSQL客戶端登入ORACLE時報ORA-12502ORA-12545錯誤的解決方案

當使用plsqldev客戶端登入oracle資料庫時,如果對應的tnsnames.ora中是直接使用IP地址來連線,並且未在系統的hosts檔案中繫結主機名時,極易出現ORA-12502及ORA-12545報錯,這兩種錯誤內容分別是: ORA-12502: TNS:listener received no

oracle解決ora-00119ora-00132這個問題

前提:服務全部開啟,監聽也配置好了! 先登入到sqlplus: sqlplus /nolog;  登入資料庫: conn system/manager as sysdba;  然後啟動資料庫: startup;  發現 ora-00119【ora-00119 i

使用to_number函式,提示ORA-01722無效數字的解決方法

使用to_number()函式時,提示ORA-01722:無效數字 的解決方法 原因分析:  1.顯式原因: 即欄位中存在非數字的字元。 解決方法:(1)替換掉非數字的字元。     (2)使用 OR

ORA-00603 ORA-00600: internal error code, arguments: [kdsgrp1]解決過程

1、檢視alert log 報錯如下: Thu Nov  7 17:21:27 2013 Errors in file /eas2/oracle/oraeas/udump/oraeas_ora_12596.trc: ORA-00600: internal error co

ORA-16019: cannot use LOG_ARCHIVE_DEST_1 解決方法

在設定DATA GUARD 時,修改了系統引數,重啟資料庫後出錯: SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> st

ORA-04091錯誤原因與解決方法

最近工作中寫了一觸發器報錯:ORA-04091:table XX  is mutating, trigger/function may not see it。 下面通過官方文件及網友提供資料分析一下錯誤原因及解決方法: 1.檢視oracle官方文件: 原因:觸

一個ORA-16014ORA-00312錯誤的解決

為了測試向一個表中插入1000萬條資料,因為有大量的日誌產生,所以事先手工(非RMAN)刪除了歸檔日誌,以免因空間不足而失敗。在插入資料過程中,資料庫還是down掉了。shutdown後發現數據庫無法開啟。 SQL> alter database open;ERROR

ORA-01722: 無效數字的解決方法

List<Atl> atls = commonDao.findByQuery("from Atl a where a.code ="+code);報錯:ORA-01722: 無效數字List<Atl> atls = commonDao.findByQu

ORA-10458、ORA-01196ORA-01110錯誤解決辦法

ges 啟動報錯 返回結果 mounted shadow https src recover require oracle DG 備庫啟動報錯如下SQL> startupORACLE instance started. Total System Global Area

FRM-18108FRM-10102解決方法

frm-18108 frm-10102 ebs forms errors 在最新安裝Forms Builder中中,在新建form-->使用模板創建表單是,出現錯誤。【1】froms報錯如下:【2】錯誤原因: (1)FORMS_PATH設置不正確。 (2)TEMP