最近剛接觸ORACLE不久,創建個本地環境就遇到了不少麻煩。
今天在啟動ORACLE服務後發現其只點20M,與之前佔用的幾百M比起來非常不正常,果然在連接時出現了報錯:
请输入用户名: scott 输入口令: ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist 进程 ID: 0 会话 ID: 0 序列号: 0
網上找了下資料,才知道原來是數據庫實例沒有啟動。
下一步是用有管理員權限的帳號登陸並啟動實例:
C:\Users\xxxx>sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on 星期四 7月 10 22:34:57 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. SQL> conn /as sysdba 已连接到空闲例程。 SQL> startup ORA-00119: invalid specification for system parameter LOCAL_LISTENER ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL' SQL>
非常不幸地,報了ORA - 00119 和 ORA - 00132的錯誤,看樣子是監聽配置方面出問題了。
下面貼出原來的 TNSNAME.ORA 和 LISTENER.ORA:
TNS:
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL)
(SERVER = DEDICATED)
)
)
LISTENER:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = D:\app\kayang\product\11.2.0\dbhome_1)
(SID_NAME = ORCL)
)
)
LISTENER_ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
通過萬能的互聯網,最終找到了相對比較方便的解決方法:
將上面TNS中的第一個ORCL改為和監聽程序名一樣:
LISTENER_ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL)
(SERVER = DEDICATED)
)
)
重新運行 Startup 以啟動實例,成功:
SQL> startup ORACLE 例程已经启动。 Total System Global Area 1071333376 bytes Fixed Size 1375792 bytes Variable Size 587203024 bytes Database Buffers 478150656 bytes Redo Buffers 4603904 bytes 数据库装载完毕。 数据库已经打开。
此時ORACLE進程又重新佔用了近200M的內存。