ora-12514的错误的原因有很多。但无外乎这几种:
1)、 ORA-12541: TNS: 没有监听器
显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。启动监听器:
$ lsnrctl start
或
C:lsnrctl start
2)、 ORA-12154: TNS: 无法处理服务名
检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(Windows下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix下/network/admin/tnsnames.ora)里每项服务的首 行服务名称前不能有空格。
3)、 ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的SERVICE_NAME
打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。同时检查sqlnet.ora,例如如果想要采用简便连接方式连接就需要在NAMES.DIRECTORY_PATH参数中添加EZCONNECT。
4)、Ora-12514:TNS:监听程序当前无法识别链接描述符中请求的服务
该问题是由于缺少监听器的SID_LIST描述项引起的,采用netca进行配置的时候经常会遇到该问题,listener.ora示例如下
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/product/9.2.0.4)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = SAMPLE.COM)
(ORACLE_HOME = /opt/oracle/product/9.2.0.4)
(SID_NAME = SAMPLE)
))
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = tcy.com)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)))
原文:http://blog.youkuaiyun.com/zhanghai412/article/details/7947460
ORA-01034: ORACLE not available
解决方法一:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
进程 ID: 0
会话 ID: 0 序列号: 0
因为这个小小的错误,折腾了我好几个小时,特记录如下。
上网搜索了下解决方案,如下:
sqlplus "sys/password as sysdba"
连接成功,提示"已连接到空闲例程"
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 535662592 bytes
Fixed Size 1375792 bytes
Variable Size 293601744 bytes
Database Buffers 234881024 bytes
Redo Buffers 5804032 bytes
数据库装载完毕。
ORA-03113: 通信通道的文件结尾
进程 ID: 5412
会话 ID: 5 序列号: 5
出现一个新错误:ORA-03113: 通信通道的文件结尾;分析可能由于昨晚数据库强制关闭,导致文件状态可能不一致,因为正常关闭数据库会同步校验各文件,使得重新启动的时候文件时间点一致。
找到解决方案如下:
SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 535662592 bytes
Fixed Size 1375792 bytes
Variable Size 293601744 bytes
Database Buffers 234881024 bytes
Redo Buffers 5804032 bytes
数据库装载完毕。
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# NEXT_TIME
---------------- ------------- -------------- ------------ -------------
1 1 340 52428800 512 1 NO
INACTIVE 8474486 02-4月 -11 8522856 02-4月 -11
3 1 342 52428800 512 1 NO
INACTIVE 8555222 06-4月 -11 8565162 11-4月 -11
2 1 343 52428800 512 1 NO
CURRENT 8565162 11-4月 -11 2.8147E+14
SQL> alter database open resetlogs
2 ;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效
SQL> recover database until time '2011-04-11 12:12:12'
完成介质恢复。
SQL> alter database open resetlogs;
数据库已更改。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 535662592 bytes
Fixed Size 1375792 bytes
Variable Size 293601744 bytes
Database Buffers 234881024 bytes
Redo Buffers 5804032 bytes
数据库装载完毕。
数据库已经打开。
解决方法:二
在试图登录pl/sql时,输入用户名(system/pwd)后,Oracle报告下列错误:
ERROR:
ORA-27101 Shared memory realm does not exist
ORA-01034 ORACLE not available &<60;
查阅了相关
ORA-27101 Shared memory realm does not exist
ORA-01034 ORACLE not available &<60;
的说明,解释为ORACLE_HOME或者ORACLE_SID设置不正确。
但检查bash_profile以后没有发现错误;
錯誤點,沒有開啟oracle服務;
解決辦法,直接開啟oracle相關數據庫的服務;
或按照下面的步驟操作:
lsnrctl start
sqlplus '/as sysdba'
sql> startup
emctl start dbconsole
isqlplusctl start